Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
spawn
Anmeldungsdatum: 09.08.2005 Beiträge: 45
|
Verfasst am: 26.04.2006, 20:50 Titel: |
|
|
ok - ich denke, dass ich erstmal alle relevanten zeilen einlese und alles unwichtige daraus lösche. ist zwar sehr umständlich aber im Moment weis ich nicht wie ichs anders lösen soll.
Guido |
|
Nach oben |
|
 |
Michael
Anmeldungsdatum: 24.10.2004 Beiträge: 9 Wohnort: Manisa / Türkei
|
Verfasst am: 26.04.2006, 23:09 Titel: |
|
|
Schau dir einfach mal die Befehle LSET und PUT an. Die wurden ja noch nicht erwähnt.
Ausducken kannste ja dann indem du statt PRINT LPRINT machst mit Unterstüzung von LOCATE USING etc.
Ich habe nach dem Gleichen Prinzip eine Adressendatenbank aufgebaut mit vielen Eingabefeldern je Person.
Die Angabe in Zeile 5155 sollte natürlich nicht Zeilenumbruch sondern der Bildschirm wird angehalten wenn mehr als 18 Zeilen angezeigt werden - sonst würden die Daten ja noch oben hin weiterlaufen ohne das man sie lesen konnte.
Kannste einfach ja mal einen Test mit der Version machen - die Daten sind in der Datei: Termin.dat abgelegt.
Tschüssle und viel Spass
Michael |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 27.04.2006, 08:31 Titel: |
|
|
Michael hat Folgendes geschrieben: | Code: | 5160 IF satznr = 18 OR satznr = 36 OR satznr = 54 OR satznr = 72 THEN GOTO 5180 ELSE GOTO 5161
5161 IF satznr = 90 OR satznr = 108 OR satznr = 126 OR satznr = 144 THEN GOTO 5180 ELSE GOTO 5162
...
5173 IF satznr = 954 OR satznr = 972 OR satznr = 990 OR satznr = 1008 THEN GOTO 5180 ELSE GOTO 5200 |
|
Hier wieder einmal ein nettes Beispiel passend zu diesem Artikel: All diese vielen IF-THENs kannst Du durch ein einziges
Code: | 5160 IF satznr MOD 18=0 THEN GOTO 5180 ELSE GOTO 5200 |
ersetzen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 27.04.2006, 09:40 Titel: |
|
|
BTW:
Code: | 5160 ... THEN GOTO 5180 ELSE GOTO 5161
5161 IF ... |
Wenn die Bedingung in Zeile 5160 FALSCH ergibt, macht das Programm automatisch mit Zeile 5161 weiter, die ELSE-Klausel ist also überflüssig (gilt auch für Folgezeilen).
@Michael:
Tipp: Die von dir verwendete GOTO-Spaghetti-Struktur macht schon dieses relativ einfache Programm schwer leserlich. Und schwer wartbar: Wenn du etwa auf die Idee kommst, vor Zeile 5180 eine weitere Zeile einzufügen, weil du etwa in einer DO ... LOOP-Schleife auf einen bestimmten Tastendruck prüfen willst, musst du schon einen Haufen Sprungbefehle ändern, und wehe, du vergisst auf einen... Bei größeren Projekten wirst du dir damit ziemlich viele - vermeidbare - Schwierigkeiten einhandeln. Besser, du steigst gleich auf strukturierte Programmierung um. _________________ lG
pinkpanther  |
|
Nach oben |
|
 |
Michael
Anmeldungsdatum: 24.10.2004 Beiträge: 9 Wohnort: Manisa / Türkei
|
Verfasst am: 27.04.2006, 18:31 Titel: |
|
|
dreael:
Klarer Fall - da hast du auf jeden Fall Recht.
pinkpanther:
Und das Gleiche gilt auch für dich.
Es ist ein sehr altes Programm, und ich war damals überhaupt froh, das ich Daten speichern-suchen-ändern-ausgeben konnte. Heute wird wahrscheinlich auch keiner mehr mit Zeilennummern arbeiten.
Als es dann funktionierte und ohne Probleme lief ( das Program habe ich heute noch in Verwendung ) - lies ich es eben nach dem Grundsatz: NEVER CHANGE A WORKING SYSTEM in der alten Version.
Jetzt mache ich Programme hauptsächlich in Purebasic und da hat man dann auch einen anderen Programmstil.
Trotzdem möchte ich entschuldigen wenn ich als "schlechtes" Beispiel einen Code gezeigt habe - der Hauptgedanke war eben das mit den Daten speichern-suchen-ändern-ausgeben zu zeigen - oder vielleicht habe ich es - wie schon angedeutet einfach ein gutes Beipiel, wie man eben nicht machen soll, gemacht.
Tschüssle
Michael |
|
Nach oben |
|
 |
Michael
Anmeldungsdatum: 24.10.2004 Beiträge: 9 Wohnort: Manisa / Türkei
|
Verfasst am: 27.04.2006, 18:34 Titel: |
|
|
dreael:
Klarer Fall - da hast du auf jeden Fall Recht.
pinkpanther:
Und das Gleiche gilt auch für dich.
Es ist ein sehr altes Programm, und ich war damals überhaupt froh, das ich Daten speichern-suchen-ändern-ausgeben konnte. Heute wird wahrscheinlich auch keiner mehr mit Zeilennummern arbeiten.
Als es dann funktionierte und ohne Probleme lief ( das Program habe ich heute noch in Verwendung ) - lies ich es eben nach dem Grundsatz: NEVER CHANGE A WORKING SYSTEM in der alten Version.
Jetzt mache ich Programme hauptsächlich in Purebasic und da hat man dann auch einen anderen Programmstil.
Trotzdem möchte ich entschuldigen wenn ich als "schlechtes" Beispiel einen Code gezeigt habe - der Hauptgedanke war eben das mit den Daten speichern-suchen-ändern-ausgeben zu zeigen - oder vielleicht habe ich es - wie schon angedeutet einfach ein gutes Beipiel, wie man eben nicht machen soll, gemacht.
Tschüssle
Michael |
|
Nach oben |
|
 |
spawn
Anmeldungsdatum: 09.08.2005 Beiträge: 45
|
Verfasst am: 27.04.2006, 21:46 Titel: |
|
|
hi, vielen dank für Eure ratschläge.
Das mit dem Variablen auslesen hab ich jetzt so gelöst (da alle Txt´s das selbe schema beinhalten):
Code: |
Let x1 = VAL(MID$(dat1$,27))
let x1§= MID$(dat$,45)
|
wobei dat$ die gesamte zeile ist - den Rest lösche ich einfach raus
klappt super
@Michael
bei mir kann man die txt mit Pfeiltasten (hoch, runter) auswählen.
ich habe auch nur 17 Zeilen zur Verfügung.
aber ich habe einen Bildlauf gebastelt.
jede Datei ist in einer (Feld)Variablen gespeichert - die datei die ausgewählt ist ist dann in blauer Schrift - die anderen in grün.
mit den Pfeiltasten kann man dann hoch und runter und wenn man unten angekommen ist und noch eine weiter geht wird die erste nicht mehr angezeigt und dafür unten eine mehr.
MFG Guido |
|
Nach oben |
|
 |
|