Datei Einträge aktualisieren

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Holger123

Betreff: Datei Einträge aktualisieren

BeitragMi, Sep 12, 2007 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

ich möchte gerne eine Datei Erweitern in dem ich weitere drei Datenfelder in EINER Reihe in die eine Datei schreibe bzw ranhänge.
Leider wird die Datei immer wieder neu mit den letzten Einträgen überschrieben, ausserdem sind die drei immer untereinander, sie sollen zb. mit einem Komma getrennt werden.
Ich habe schon in Tuts gesucht, leider ist auch seit gestern robsite.de offline, heute läuft sie auch nicht richtig.

Was mache ich da falsch ?

Hier mal ein Beispiel was ich meine.

Code: [AUSKLAPPEN]

.Prog
a=a+1
 
Name$=Input$("Name? ")
Strasse$=Input$("Strasse? ")
Telefon$=Input$("Telefon? ")


file= OpenFile("C:/Programme/Blitz3D/EIGEN/SPIEL-DATEi-/mydata.dat")
WriteLine(file, Name$)
WriteLine(file, Strasse$)
WriteLine(file, Telefon$)
CloseFile(file)

If a<3 Then Goto Prog

 



So soll die Datei dann nach den drei durchläufen aussehen.

Code: [AUSKLAPPEN]


Dieter, Hauptstrasse, 0176-345434
Klaus, Zellstrasse, 0176-34543453453
Rainer, Nassstrasse, 0176-3445345334



Danke für eure Hilfe

BladeRunner

Moderator

BeitragMi, Sep 12, 2007 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
WriteLine(file, Name$+", "+Strasse$+", "+Telefon$)

Was das überschreiben betrifft: ql:filepos, ql:seekfile
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Holger123

BeitragMi, Sep 12, 2007 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Danke, ich werde mal danach schauen !

Gruß Holger
 

Holger123

BeitragMi, Sep 12, 2007 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
So ganz verstehe ich die Sache aber noch nicht, wenn ich jetzt die Zählvariable (a) nehme die pro Durchgang eins hochzählt, müsste das doch eigentlich funktionieren..?


Code: [AUSKLAPPEN]

.Prog
a=a+1
 
Name$=Input$("Name? ")
Strasse$=Input$("Strasse? ")
Telefon$=Input$("Telefon? ")

file= OpenFile("mydata.dat")

SeekFile(file, a)

WriteLine(file, Name$+", "+Strasse$+", "+Telefon$)
CloseFile(file)

If a<3 Then Goto Prog

BladeRunner

Moderator

BeitragMi, Sep 12, 2007 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, tut es nicht, denn Du erhöhst die Position dann um 1 BYTE, sprich um ein Zeichen. Was Du brauchst ist das Ende der Datei, und das findest du mit Filesize. Dann wird der nächste Eintrag ans Ende angehängt.


Eine weitere Alternative wäre es die Datei erst zu schliessen wenn alle Einträge erfolgt sind. Das birgt aber die Gefahr des Datenverlustes, sollte dein Programm aus irgendeinem Grund abschmieren.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Silver_Knee

BeitragMi, Sep 12, 2007 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
seekfile brauch eine byteangabe dh. pro buchstabe +1 und pro "Enter" +2
 

Holger123

BeitragMi, Sep 12, 2007 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte entschuldigt, ich stelle mich wohl ein bischen blöd an !?

Jetzt habe ich es so probiert, funktioniert aber nicht :

Code: [AUSKLAPPEN]

.Prog
a=a+1
 
Name$=Input$("Name? ")
Strasse$=Input$("Strasse? ")
Telefon$=Input$("Telefon? ")

file= OpenFile("C:/Programme/Blitz3D/EIGEN/SPIEL-DATEi-/mydata.dat")

SeekFile file,FileSize(file)

WriteLine(file, Name$+", "+Strasse$+", "+Telefon$)
CloseFile(file)

If a<3 Then Goto Prog

BladeRunner

Moderator

BeitragMi, Sep 12, 2007 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
OnlineHilfe hat Folgendes geschrieben:
Achtung! Falls diese Ausgabedatei noch nicht existiert, dann kommt es bei einem Schreib-/Leseversuch zu einem Fehler. OPENFILE ist darum besonders für Änderungen gut geeignet. Neue Dateien können sofort mit WRITEFILE geschrieben werden.


Du bmusst initial prüfen ob die Datei schon existiert.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group