Einzelnen Beitrag anzeigen

klausmaus

Registriert seit: 18. Sep 2008
17 Beiträge
 
#17

Re: StringGrid Zeile per Mausclick auslesen

  Alt 1. Okt 2008, 13:47
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?
  Mit Zitat antworten Zitat