Hi,
wir haben von unserem Lehrer eine "einfache" Aufgabe bekommen, wo der Vor- und Nachname in einer Datei gespeichert werden soll.
Soweit so gut, hab das genau nach der Anleitung von ihm alles geschrieben. Bekomme aber beim compilieren die Fehlermeldung "Typ TAdresse benötigt Finalization". Hab auch schon die Suche benutzt, wo ich fündig gewurden bin, dass das Array nicht so gut mit String Werten arbeiten kann, da die länge undefiniert ist?!
Kann ich nicht einfach Nachname und Vorname im Record als single deklarieren? Müsste dann ja nur in der Methode "einlesen" die single-werte in string umwandeln. Klappt aber alles nicht...
Vielen Dank auf jedenfall schonmal für die Hilfe!
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: 62: 63: 64:
| TAdresse = record Nachname:string; Vorname:string; end;
TDatenbank = class Einzeladresse: TAdresse; Adressen: array of TAdresse; Adressdatei:string;
procedure einlesen(VAR EditNachEin, EditVorEin:TEdit); procedure speichern; end;
var Form1: TForm1; DB:TDatenbank;
implementation
procedure TDatenbank.einlesen(VAR EditNachEin, EditVorEin:TEdit); begin Einzeladresse.Nachname := EditNachEin.Text; Einzeladresse.Vorname := EditVorEin.Text; end;
procedure TDatenbank.speichern; VAR datei:file of TAdresse; begin assignfile(datei, Adressdatei); if FileExists(Adressdatei) then begin reset(datei); seek(datei, filesize(datei)); end else begin rewrite(datei); end; write(datei, Adressdatei); closefile(datei); end;
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject); begin DB := TDatenbank.Create; end;
procedure TForm1.ButtonAufnehmenClick(Sender: TObject); begin DB.einlesen(EditNachname, EditVorname); if DB.Adressdatei = '' then begin SaveDialog.Execute; DB.Adressdatei:=SaveDialog.Filename; end; DB.speichern; end; end. |