Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateienlesen und schreiben mit readln und writeln (https://www.delphipraxis.net/19417-dateienlesen-und-schreiben-mit-readln-und-writeln.html)

F.W. 2. Apr 2004 21:50


Dateienlesen und schreiben mit readln und writeln
 
Hallöchen wiedermal!

Ich möchte mithilfe von Readln(F: TextFile, S: String) (der so) und so weiter eine Datei bearbeiten.

Einige Werte wurden vorher aus der Datei gelesen, dabei handelt es sich jeweils um komplette Zeilen, alle, die mit "bind" anfangen.
Jetzt wurden diese Werte bearbeitet und sollen wieder in die Datei, die alten bind-Zeilen aber weg!

Ich hab's so probiert:
Delphi-Quellcode:
var
 F: Textfile;
 I: Integer;
 S: String;
begin
   try
 AssignFile(F, FN.Text);
 Reset(F);
 While Eof(F) = False do begin
     Read(F, S);
     if Pos('bind', S) = 1 then // hier wird geprüft, ob die Zeile eine "bind"-Zeile ist
        Writeln; // wenn ja, dann soll diese Zeile gelöscht werden, ich weiß aber nicht wie man das macht
 end;
 for I := 0 to Liste.Items.Count-1 do // am Zeilenende werden die veränderten Werte wieder angefügt
     Writeln(F, 'bind "'+Liste.Items[I].Caption+'" "'+Liste.Items[I].SubItems[0]+'"');

   finally
 CloseFile(F);
   end;
end;
Wie heißt der Befehl zum Zeile Löschen oder wie könnte ich es anders lösen?

Luckie 3. Apr 2004 02:39

Re: Dateienlesen und schreiben mit readln und writeln
 
Denk mal andersrum. Les alle Zeilen und schreib alle, Zeilen außer die die du nicht willst.

yankee 3. Apr 2004 08:45

Re: Dateienlesen und schreiben mit readln und writeln
 
Delphi-Quellcode:
var F,G:textfile;
    s:string;
assignFile(F,'Dat1.txt');
reset(F);

assignFile(G,'Dat2.txt');
rewtite(G);

while not eof(F) do
begin
    readln(F,s);
    if Pos(bind,S) <> 1 then writeln(G,S);
end;
Ungetestet, probier'S mal.

F.W. 3. Apr 2004 12:08

Re: Dateienlesen und schreiben mit readln und writeln
 
Die Datei muss den gleichen Namen behalten.

Ich könnte erstmal auch nur die Zeilen überschreiben, da nur selten etwas dazukommen wird, und dadurch nichts anderes wichtiges überschrieben wird. Aber wie überschreibe ich die Zeile? Ich muss ja auch erstmal testen, ob "bind" in ihr vorkommt.
Delphi-Quellcode:
 Read(F, S);
 if Teste(S) then Writeln(F, SNeu);
???

Luckie 3. Apr 2004 12:34

Re: Dateienlesen und schreiben mit readln und writeln
 
Lad das Ding doch in eine Stringliste, wenn es nicht unbedingt mit readln und writeln sein muss.

F.W. 3. Apr 2004 15:16

Re: Dateienlesen und schreiben mit readln und writeln
 
Nagut, dann mach ich's halt so, ich wollt's halt mal anders probieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz