Hi...
ich kenne mich mit dem Speichern und lesen in oder aus einer datei nicht wirklich aus.
Habe nun eine kleine datenbank geschrieben, bei der die daten auf die festplatte gespeichert werden sollen und beim start des programms sollen daten gelesen werden.
ich gebe hier vorerst nur die proceduren, die das Speichern und lesen betreffen, an:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61:
| implementation var x: Integer;
type TPerson = record Name: String[20]; Vorname: String[20]; Strasse: String[30]; PLZ: String[10]; Ort: String[30]; end;
var f: File of TPerson; var verz: String; var Buch: array[1..10] of TPerson; {$R *.dfm}
procedure datei_neu; begin {$I-} Rewrite(f); {$I+} if IOResult <> 0 then Showmessage('Fehler beim Erzeugen einer neuen Datei'); end;
procedure datei_schreiben; var i: Integer; begin {$I-} Reset(f) ; if IOResult <>0 then Showmessage('Fehler beim Lesen'); for i:= 1 to 10 do read(f, Buch[i]); end;
procedure datei_lesen; var i: Integer; begin {$I-} Reset(f) {$I+}; in ein umändert, wird der fehler nicht mehr angezeigt. Allerdings erscheint nun das Fenster "Fehler beim Lesen" } if IOResult <> 0 then Showmessage('Fehler beim Lesen'); for i:= 1 to 10 do read(f,Buch[i]); end;
procedure TForm1.DAT_LOAD(Sender: TObject); var i: integer; begin verz:= ExtractFilePath(ParamStr(0)) + 'personen.dat'; AssignFile(f, verz); {$I-} Reset(f) {$I+}; if IOResult <> 0 then begin i:= Application.MessageBox('Datei neu anlegen?' , ' ', 52); if i= 6 then datei_neu else halt; end else datei_lesen; end; |
Bei dem versuch nun etwas in die neu erstellte datei zu laden (das erstellen funktioniert) wird mir nun gesagt, dass versucht wird noch hinter dem dateiende zu lesen... ?_?
Wäre super, wenn mir einer von euch weiterhelfen könnte
mfg barney
Moderiert von
AXMD: Code- durch Delphi-Tags ersetzt.