Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Speziellen Quellcode kürzen!

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 20.09.2006, 00:28    Titel: Speziellen Quellcode kürzen! Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.09.2006, 03:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 21.09.2006, 13:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 22.09.2006, 02:53    Titel: Antworten mit Zitat

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!!! lachen lachen lachen

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 22.09.2006, 13:28    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 22.09.2006, 15:34    Titel: Antworten mit Zitat

Skilltronic hat Folgendes geschrieben:
Und schon hast du aus 31 Zeilen fünf gemacht.

...und außerdem wieder mehr Speicher zur Verfügung.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 22.09.2006, 20:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.09.2006, 20:39    Titel: Antworten mit Zitat

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. lächeln neutral
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz