Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zeilen aus datei löschen (https://www.delphipraxis.net/24765-zeilen-aus-datei-loeschen.html)

StefanDP 26. Jun 2004 16:47

Re: Zeilen aus datei löschen
 
Zitat:

Zitat von Chewie
Du liest die Datei ein und leerst dann die Datei auf der Platte. Dann schreibst du die Daten wieder in die Datei, das, was du löschen willst, schreibst du dann einfach nicht.

so hab ichs gemeint!

halt mit backup

Pseudemys Nelsoni 26. Jun 2004 16:49

Re: Zeilen aus datei löschen
 
Zitat:

Du liest die Datei ein und leerst dann die Datei auf der Platte. Dann schreibst du die Daten wieder in die Datei, das, was du löschen willst, schreibst du dann einfach nicht.
Hallo Chewie,

Kannst du mir sagen wo ich sie am besten reinlade? Wie gesagt das ganze ist ohne VCL und daher habe ich sowas wie stringlist nicht 8)

Zitat:

oder, um einen Datenverlust zu vermeiden, kannst Du die neue, gekürzte Datei, auch erst einmal temporär anlegen.
Wenn diese fertig erstellt ist, dann die alte löschen, und die neue entsprechend umbenennen.
Hallo Christian,

auch eine gute Idee, mal sehen wie ich das alles per api realisiere :mrgreen:


Danke euch beiden schonmal. :thuimb:

Chewie 26. Jun 2004 17:04

Re: Zeilen aus datei löschen
 
Nimm irgendeinen Puffer, der groß genug ist, um die ganze Datei zu speichern. Am einfachsten dürfte ein Array of Byte sein.

Luckie 27. Jun 2004 09:41

Re: Zeilen aus datei löschen
 
Habe ich mich denn so unverständlich ausgedrückt? :shock: Etwas Pseudocode, da ich kein Delphi hier habe:
Delphi-Quellcode:
var
  F_Old, F_New: TextFile;
  FilenameOld, FilenameNew: String;
  s: String;
begin
  if FileExists(FilenameOld) then
  begin
    AssignFile(F_Old, FilenameOld);
    Reset(F_Old);
    AssignFile(F_New, FilenameNew);
    Rewrite(F_New)
    while not EOF(F_Old) do
    begin
      readln(F, s);
      if s <> '' then
        writeln(F_NEW, s);
    end;
    CloseFile(F_Old);
    CloseFile(F_New);
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.
Seite 2 von 2     12   

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