Ich habe keine Ahnung wieso ich die Datei nicht löschen kann, hoffe ihr findet den Fehler .
Ich möchte aus einer File of Record bestimmte Werte löschen.
Indem ich den Wert, der gelöscht werden soll , auf ' ' setze und anschließen alle anderen
Werte in eine neue Hilfsdatei schreibe.
Danach lösche ich die erste Datei und nenne die Hilfsdatei um.
Delphi-Quellcode:
type
personen = record
name,vorname,telenr,adresse : String[20];
end;
procedure TForm1.Button2Click(Sender: TObject);
var person,hilfe : File of personen;
daten,ds : personen;
i : Integer;
b,nix : String;
begin
AssignFile(person, 'Person.dat');
if FileExists('Person.dat') then
ReSet(person)
else
ReWrite(person);
seek(person, listbox1.ItemIndex);
daten.name:='';
daten.vorname:='';
daten.telenr:='';
daten.adresse:='';
write(person, Daten);
AssignFile(hilfe, 'hilfe.dat');
if FileExists('hilfe.dat') then
ReWrite(hilfe);
for i:=0 to filesize(person)-1 do
begin
seek(person, i);
read(person,daten);
edit1.text:=daten.name;
b:=edit1.text;
nix:='';
if b<>nix then
begin
ds.name:=daten.name;
ds.vorname:=daten.vorname;
ds.telenr:=daten.telenr;
ds.adresse:=daten.adresse;
write(hilfe, ds);
end;
end;
closefile(person);
if FileExists('person.dat') then
Erase(person); // <------ In dieser Zeile ist der Fehler !
closefile(hilfe);
rename(hilfe,'person.dat');
listbox2.Clear;
listbox1.Clear;
AssignFile(person, 'Person.dat');
if FileExists('Person.dat') then
ReSet(person)
else
ReWrite(person);
for i:=0 to filesize(person)-1 do
begin
seek(person, i);
read(person, daten);
listbox1.Items.Add(daten.name);
listbox2.Items.Add(daten.vorname);
end;
closefile(person);
end;
Hoffe ihr könnt mir helfen danke im voraus.