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:

variablen abspeichern
Gehe zu Seite Zurück  1, 2
 
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
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 26.04.2006, 20:50    Titel: Antworten mit Zitat

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



Anmeldungsdatum: 24.10.2004
Beiträge: 9
Wohnort: Manisa / Türkei

BeitragVerfasst am: 26.04.2006, 23:09    Titel: Antworten mit Zitat

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


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

BeitragVerfasst am: 27.04.2006, 08:31    Titel: Antworten mit Zitat

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



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 27.04.2006, 09:40    Titel: Antworten mit Zitat

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 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael



Anmeldungsdatum: 24.10.2004
Beiträge: 9
Wohnort: Manisa / Türkei

BeitragVerfasst am: 27.04.2006, 18:31    Titel: Antworten mit Zitat

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



Anmeldungsdatum: 24.10.2004
Beiträge: 9
Wohnort: Manisa / Türkei

BeitragVerfasst am: 27.04.2006, 18:34    Titel: Antworten mit Zitat

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



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 27.04.2006, 21:46    Titel: Antworten mit Zitat

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
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
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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