![]() |
Nur die erste Zeile aus einer Textdatei löschen
Hi,
ich habe eine etwa 1MB große Textdatei. Aus dieser Text Datei muss ich jetzt die erste Zeile löschen und die Datei unter dem selben Namen wieder speichern. Es soll dabei keine neue Datei angelegt werden, sondern wirklich nur die erste Zeile soll gelöscht werden. In eine Stringlist kann ich die Datei nicht einlesen, ad eine Stringlist nicht mit 1MB grossen Dateien umgehen kann. Gbt es irgend eine geschickte Lösung dafür? Ich werde es auf alle Fälle weiter probieren, wäre aber sehr dankbar für Vorschläge. Danke euch allen Tyrael |
Re: Nur die erste Zeile aus einer Textdatei löschen
ich hab mal ein ähnliches problem gehabt, da hab ich folgendes gemacht:
ich hab ein TMemo aufs formular gestellt, (width=0, height=0, visible=false) Memo1.Lines.LoadFromFile(DateiName); Memo1.Lines.Delete(0); Memo1.Lines.SaveToFile(DateiName); Dann hab ichs mit TStrings probiert, da hat's nicht geklappt, keine ahnung, wieso! Es ist nicht eine schöne u. saubere methode, aber bei mir funzt es so! |
Re: Nur die erste Zeile aus einer Textdatei löschen
Danke für deinen Hilfeversuch, aber das klappt bei mir nicht da meine Datei 1MB groß ist. TMemo kann nicht mit Dateien umgehen, die größer als 64K sind. Genauso siehts es bei TStrings aus, auch leider die Grenze bei 64K.
Hat irgend jemand einen anderen Vorschlag bitte ??? Grüße Tyrael |
Re: Nur die erste Zeile aus einer Textdatei löschen
TStringlist. Oder mit assignfile und readline und writeln einlesen und schreiben und dabei die erste Zeile überspringen.
Mal so aus dem Kopf:
Delphi-Quellcode:
var
s: String; InF, OutF: Textfile; begin Assignfile(InF, InFile); reset(InF); AssignFile(OutF, OutFile); rewrite(OutF, OutFile); readline(InF, s); while not EOF(InF) do begin readlne(InF, s); writeln(OutF, s); end; CloseFile(InF); CloseFile(OutF); end; |
Re: Nur die erste Zeile aus einer Textdatei löschen
Das ist nicht weiter schlimm. Du must dann halt mit 2 Dateien hantieren. Aus der einen liest Du und in die zweite wird geschrieben. Die erste Zeile aus der "Lesedatei" mußt Du dann eben weglassen. Also
Delphi-Quellcode:
readln (Datei1,st);
writeln (Datei2,st); |
Re: Nur die erste Zeile aus einer Textdatei löschen
Hm, ich habe es jetzt so ausprobiert und es klappt auch....
...aber, jetzt muss ich ja jedesmal wenn ich die erste Zeile löschen will 1MB Daten von einer Datei zur anderen transportieren, was zeitaufwendig ist. Klappen tut es, aber ich frage mich, ob es nicht die Möglichkeit gibt, 1. Datei öffen 2. erste Zeile ansprechen 3. erste Zeile löschen 4. Date speichern ohne einen Datentransport durchzuführen. Danke vielmals für eure Bemühungen Grüße Tyrael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz