Habe denselben Fehler und Blicke grad net was da falsch ist
Ist mein projekt für Informatik und nunja ich verzweifel da dran.
Mein Problem ist, dass das Programm entweder das Wort nicht bis ans Ende kopiert, oder ich den Datei-Fehler erhalte.
Setze ich bei der Procedure löschen Filesize(woert)-2 ein kopiert mir es das nicht auf den letzten Platz, wenn ich Filesize(woert)-1 eingebe bekomme ich 'Versuch hinter dem Dateiende zu lesen.
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var key:String[25];
i:integer;
h:integer;
begin
Assignfile(woert,'Wörterbuch.dat');
reset(woert);
key:=Inputbox('Abfrage','Welches Wort löschen?(bitte das englische Wort eingeben)','');
for i := 1 to filesize(woert) do begin
read(woert,Woerterbuch);
if key=Woerterbuch[i].Englisch then begin
h:=i;
löschen(h);
exit;
end
else
showmessage('Das Wort steht nicht im Wörterbuch');
end;
closefile(woert);
end;
Procedure löschen(h:integer);
var m,Prüfung:Twoerterbuch2;
j:integer;
Warnung:String[1];
begin
assignfile(woert,'Wörterbuch.dat');
reset(woert);
for j := h to Filesize(woert)-1 do begin
Read(woert,Woerterbuch);
m[j]:=Woerterbuch[j];
Woerterbuch[j]:=Woerterbuch[j+1];
Woerterbuch[j+1]:=m[j];
write(woert,Woerterbuch);
end;
seek(woert,(Filesize(woert))-1);
truncate(woert);
closefile(woert);
end;
Ich blick es nicht ....