Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 20.09.2006, 00:28 Titel: Speziellen Quellcode kürzen! |
|
|
Hallo!
Meine Frage ist ob man diesen Quellcode noch kürzen kann?
Code: | OPEN "c:\SPRACHE.INI" FOR INPUT AS #1
1000 IF EOF(1) THEN GOTO 1001
INPUT #1, TD9
GOTO 1000
1001
CLOSE #1
IF TD9 <> 10 THEN TD2 = 0 ELSE TD9 = 10
IF TD9 = 10 THEN 1201
1201
|
Wenn ja wie, so dass das Programm noch fehlerfrei funktioniert?
Mit freundlichen Grüßen
ALWIM _________________ SHELL SHUTDOWN -s -t 05
Zuletzt bearbeitet von ALWIM am 20.09.2006, 04:48, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.09.2006, 03:07 Titel: |
|
|
kann man..
Code: | OPEN "c:\SPRACHE.INI" FOR INPUT AS #1
WHILE NOT EOF(1)
INPUT #1, TD9
WEND
CLOSE #1
|
die letzten drei zeilen hab ich jetzt weggelassen weil die so einfach keinen sinn ergeben wie du sie da hingeschrieben hast. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 21.09.2006, 13:30 Titel: |
|
|
Hallo
Na ja, die drittletzte macht schon einen Sinn, nur die beiden letzten kann man sich sparen.
Aber mal was anderes, ALWIM. Wieso willst du das unbedingt gekürzt haben, ist doch eh schon nicht sehr lang? Wenn ich mir deine anderen Beiträge, die Benennung der Variablen (td2, td9) und die Nummern ansehe, die du als Srungmarken benutzt (1000,1201 usw.) beschleicht mich der Verdacht, dass du diesen Codeschnipsel in irgendeinem Programm gleich wieder dutzendfach mit copy & paste wiederholst statt mit Schleifen und Arrays zu arbeiten. Das wäre aber sicher der effektivere Weg zu kürzeren Programmen. Vielleicht liege ich ja auch falsch, aber auch die Grösse deiner "Turmboy"-Dateien lässt nicht unbedingt auf einen kompakten Programmierstil schliessen.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 22.09.2006, 02:53 Titel: |
|
|
Hallo!
Naja der Quellcode von Turmyboy ist schon ziemlich lang.
Ca. 1300 Zeilen im Hauptprogramm!
Hatte immer wieder Probleme damit und man sollte schon versuchen die Zeilennummern wenns geht irgendwie zu entfernen. Und schön sieht es auch nicht aus wenn man so etwas in einem Quellcode findet!
Ich benutze schon Unterprogramme sofern es geht aber ich kann die Größe des Quellcodes fast nicht mehr kleiner machen!
Turmyboy ist schon kompakt, aber nicht alles!
Ich programmiere halt noch zu Omas Zeiten!!!
Wegen der Größe von Turmyboy habe ich seperate EXE-Dateien (Hilfe, Editor, [Installation]) angelegt, die ursprünglich mal im Turmyboy Hauptprogramm drinnen waren.
Was soll ich denn sonst machen wenn mein Quellcode wächst und wächst und wächst?
Ja, es wäre schön wenn es nur 20 KB wären!!!
Die Spielstandsabspeicherung hat auch einiges verschlungen!
Mit freundlichen Grüßen
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 22.09.2006, 13:28 Titel: |
|
|
Hallo
ALWIM hat Folgendes geschrieben: | Was soll ich denn sonst machen wenn mein Quellcode wächst und wächst und wächst? |
Das ist ein Beispiel aus deinem Turmboy-Beitrag in den Projektvorstellungen:
Code: | SHELL "copy LEVEL1.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL1.TBL >NUL"
SHELL "copy LEVEL2.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL2.TBL >NUL"
SHELL "copy LEVEL3.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL3.TBL >NUL"
SHELL "copy LEVEL4.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL4.TBL >NUL"
SHELL "copy LEVEL5.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL5.TBL >NUL"
SHELL "copy LEVEL6.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL6.TBL >NUL"
SHELL "copy LEVEL7.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL7.TBL >NUL"
SHELL "copy LEVEL8.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL8.TBL >NUL"
SHELL "copy LEVEL9.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL9.TBL >NUL"
SHELL "copy LEVEL10.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL10.TBL >NUL"
SHELL "copy LEVEL11.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL11.TBL >NUL"
SHELL "copy LEVEL12.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL12.TBL >NUL"
SHELL "copy LEVEL13.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL13.TBL >NUL"
SHELL "copy LEVEL14.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL14.TBL >NUL"
SHELL "copy LEVEL15.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL15.TBL >NUL"
SHELL "copy LEVEL16.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL16.TBL >NUL"
SHELL "copy LEVEL17.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL17.TBL >NUL"
SHELL "copy LEVEL18.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL18.TBL >NUL"
SHELL "copy LEVEL19.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL19.TBL >NUL"
SHELL "copy LEVEL20.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL20.TBL >NUL"
SHELL "copy LEVEL21.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL21.TBL >NUL"
SHELL "copy LEVEL22.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL22.TBL >NUL"
SHELL "copy LEVEL23.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL23.TBL >NUL"
SHELL "copy LEVEL24.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL24.TBL >NUL"
SHELL "copy LEVEL25.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL25.TBL >NUL"
SHELL "copy LEVEL26.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL26.TBL >NUL"
SHELL "copy LEVEL27.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL27.TBL >NUL"
SHELL "copy LEVEL28.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL28.TBL >NUL"
SHELL "copy LEVEL29.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL29.TBL >NUL"
SHELL "copy LEVEL30.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL30.TBL >NUL"
SHELL "copy LEVEL31.TBL " + "C:\TURMYBOY\LEVELS\" + "LEVEL31.TBL >NUL" |
Wenn du sowas hast, wo immer das gleiche gemacht wird und sich nur ein kleiner Teil der Anweisung ändert, solltest du überlegen, ob du das nicht auch in eine Schleife packen kannst. So liesse sich z.B. der ganze Code oben durch folgendes ersetzen:
Code: | FOR a = 1 TO 31
datei$ = "LEVEL" + RIGHT$(STR$(a), LEN(STR$(a)) - 1) + ".TBL"
text$ = "copy " + datei$ + " C:\TURMBOY\LEVELS\" + datei$ + " >NUL"
SHELL text$
NEXT |
Und schon hast du aus 31 Zeilen fünf gemacht. Der nächste Schritt wäre dann zu überlegen, ob es überhaupt Sinn macht, für jedes Level eine eigene Datei zu benutzen. Du könntest vielleicht auch die Leveldaten immer im gleichen Format alle in einer Datei abspeichern. Wenn jeder Datensatz eine bekannte Länge hat, kennst du ja auch dessen Position in der Datei und kannst gezielt nur diesen Abschnitt lesen oder beschreiben. Auf diese Weise könntest du im Prinzip auch alles, was du zum Spielen brauchst in eine einzige Datei packen. Das könnte das ganze Installieren ziemlich vereinfachen.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 22.09.2006, 20:33 Titel: |
|
|
Ohne allzu viele Worte zu verlieren: Zu diesen Thread passt wieder einmal wunderbar mein berühmter Artikel zu Einsteigerfehler hinein... _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 22.09.2006, 20:39 Titel: |
|
|
Man sollte deine Artikel mal irgendwie bekannter machen, da sie für Anfänger sowie Fortgeschrittene meist viel Neues enthalten und, wenn ich mal so sagen darf, trotzdem kaum beachtet werden.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|