Einzelnen Beitrag anzeigen

RhodosGuard

Registriert seit: 13. Jun 2012
3 Beiträge
 
#9

AW: Versuch hinter dem Dateiende zu lesen

  Alt 13. Jun 2012, 09:10
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 ....
  Mit Zitat antworten Zitat