 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nullchecker
Anmeldungsdatum: 03.08.2013 Beiträge: 34
|
Verfasst am: 27.06.2014, 12:46 Titel: Geänderte Arrays abspeichern |
|
|
Das Abspeichern von geänderten Arrays will nicht klappen. Innerhalb meines Programmes kann ich Daten (Einträge) ändern (was auch innerhalb des Programmes funktioniert). Nun sollen diese Änderungen natürlich bei Beendigung des Programmes übernommen werden. Das allerdings klappt nicht. (Hinweis: Die Datei "bonsai1.txt" existiert schon bei Programmaufruf, alle Felder sind mit einem "*" versehen.)
So beginne ich das Programm:
Code: | REM Daten einlesen
OPEN dateiname FOR INPUT AS #nr
FOR x = 0 TO 250
INPUT #nr, bon(x, 1), bon(x, 2), bon(x, 3), bon(x, 4), bon(x, 5), bon(x, 6), bon(x, 7), bon(x, 8), bon(x, 9)
NEXT x |
So endet es:
Code: | Case 7
CLS
LOCATE 1, 0
Print"Programm beenden"
LOCATE 3, 0
PRINT"DATEN WERDEN ABGESPEICHERT"
REM Daten in Datei schreiben
OPEN dateiname FOR Output AS #nr
FOR x = 0 TO 250
WRITE #nr, bon(x, 1), bon(x, 2), bon(x, 3), bon(x, 4), bon(x, 5), bon(x, 6), bon(x, 7), bon(x, 8), bon(x, 9)
NEXT x
CLOSE #nr
END |
Allerdings werden die Änderungen nicht übernommen, d.h. beim nächsten Programmaufruf sind wieder alle Felder mit dem "*" belegt. Was mache ich falsch? _________________ Mein Brett vor`m Kopf bringt mich heute wieder um |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 27.06.2014, 13:52 Titel: |
|
|
Da deine Datei zumindest in diesen beiden Codefragmenten nie vor dem Speichervorang geschlossen wird, wäre das eine mögliche Fehlerquelle. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Nullchecker
Anmeldungsdatum: 03.08.2013 Beiträge: 34
|
Verfasst am: 27.06.2014, 14:18 Titel: |
|
|
Ich habe jetzt noch ein zusätzliches "CLOSE" hinzugefügt, es ändert nichts.(Zumal in der Referenz auch geschrieben wird, dass das "CLOSE" automatisch erfolgt und lediglich gutem Programmierstil entspricht). _________________ Mein Brett vor`m Kopf bringt mich heute wieder um |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 27.06.2014, 14:30 Titel: |
|
|
Beim Programmende werden alle offenen Dateien geschlossen, aber nicht, wenn du versuchst, dieselbe Datei zweimal zu öffnen. Die Datei muss erst geschlossen werden, bevor du sie neu öffnest. Guten Programmierstil sollte man übrigens auch bei kleinen Programmen befolgen, sonst kommen schnell so kleine Fehler zustande, wo es länger dauert, den Fehler zu finden, als die ganze Sache sauber aufzuschreiben.
Prüfe doch mal den Rückgabewert des zweiten OPEN-Aufrufs, um den Fehlercode zu erhalten. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Nullchecker
Anmeldungsdatum: 03.08.2013 Beiträge: 34
|
Verfasst am: 27.06.2014, 14:37 Titel: |
|
|
ZITAT:
Code: | Prüfe doch mal den Rückgabewert des zweiten OPEN-Aufrufs, um den Fehlercode zu erhalten. |
Wie mache ich das? _________________ Mein Brett vor`m Kopf bringt mich heute wieder um |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
|
Nach oben |
|
 |
Nullchecker
Anmeldungsdatum: 03.08.2013 Beiträge: 34
|
Verfasst am: 27.06.2014, 14:47 Titel: |
|
|
Lieb gemeint, aber ich verstehe die Referenz nicht. _________________ Mein Brett vor`m Kopf bringt mich heute wieder um |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 27.06.2014, 14:59 Titel: |
|
|
Also hier hast du noch verstanden, was das heißt. Nur dass du diesmal nicht den Rückgabewert mit IF auf 0 prüfen sollst, sondern ihn z.B. einfach mal mit PRINT ausgeben, um zu schauen, welcher Fehlercode zurückgegeben wird. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Nullchecker
Anmeldungsdatum: 03.08.2013 Beiträge: 34
|
Verfasst am: 27.06.2014, 19:32 Titel: |
|
|
Ich weiss nicht weshalb, habe das Progamm nochmals getestet, jetzt klappt es ohne das ich etwas geändert habe.
Eine Frage noch: Ich arbeite mit Win 7. Ab und zu kommt es vor das ich die bas-Datei compilieren und ausführen möchte, es erscheint aber nur ein schwarzer Bildschirm und ich muss mit der Windows-Taste abbrechen. Kann es da vielleicht einen Zusammenhang geben, das es zu Fehlfunktionen kommt? _________________ Mein Brett vor`m Kopf bringt mich heute wieder um |
|
Nach oben |
|
 |
|
|
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.
|
|