Hat etwas länger gedauert.
Zunächst mal danke für die Tipps. Als ich am Basteln war stellte ich fest:
Fehler in der Denke!
Ich mache Folgendes:
-Edits auslesen
-Datensätze in Datei schreiben
-anschließend wieder auslesen und im StringGrid ausgeben
Ergo: Durch Löschen im StringGrid ändert sich ja nichts am Dateiinhalt. Da ich nicht alles ummodeln wollte bin ich auf folg. Prozedur gekommen:
Delphi-Quellcode:
procedure TForm1.DatenLoeschenClick(Sender: TObject);
var i:SmallInt;
begin
seek(ChemDat,0);
Assignfile(ChemDatH,'Hilf');
rewrite(ChemDatH);
for i:=0 to Stelle-1 do
begin
read(ChemDat,Chem) ;
write(ChemDatH,Chem);
end;
seek(ChemDat,Stelle+1);
while not eof (Chemdat) do
begin
read(ChemDat,Chem);
write(ChemDatH,Chem);
end;
// bis hierhin klappts
seek(ChemDat,0) ;
seek(ChemDatH,0);
begin
read(ChemDatH,Chem);
write(ChemDat,Chem);
closefile(ChemDatH);
end;
end;
Funktioniert auch fast. Datensatz wird gelöscht. In der "Hilfsdatei" ChemDatH fehlt dann der gelöschte Datensatz.
Mit der den letzten Read/Write-Befehlen will ich die aktualisierten Daten wieder in die Ursprungsdatei schreiben. Das tuts aber nicht. Weshalb?
2.Frage: Wie krieg ich die "Hilfsdatei" wieder gelöscht?
3.Frage: Mir scheint das Hin-und Herschreiben etwas umständlich zu sein. Gibts eine elegante Variante?