![]() |
Textdateien bestimmte Zeile löschen.
Guten Tag
Bei meinem Programm speichert man eine TreeView Konfiguration als Textdatei ab. Die namen der gespeicherten Dateien stehen in einer ComboBox zum Abruf bereit. Ich möchte nun die gespeicherten Dateien auch wieder Löschen können per Knopfdruck. Bzw. das wären ja dann Textzeilen die gelöscht werden. Ich habe schon echt viel ausprobiert und kriegs einfach nicht hin das man eine beliebig ausgewählte Zeile/Datei löschen kann. Kann mir jemand helfen? Greez |
AW: Textdateien bestimmte Zeile löschen.
Zitat:
Delphi-Quellcode:
das wäre z.B. eine Möglichkeit
mystringlist:=tstringlist.create;
mystringlist.LoadfromFile('MeineDatei'); if myStringlist.Indexof('gesuchterString)>-1 then myStringlist.Delete(myStringlist.Indexof('gesuchterString)); myStringlist.Savetofile(MeineDatei'); myStringlist.Free; oder du kopierst alle Zeilen aus einer Textdatei in eine andere Textdatei wenn die gelesene Zeile nicht gleich dem zu löschenden Wert ist, oder...... Gruß K-H |
AW: Textdateien bestimmte Zeile löschen.
Stimmt,
Delphi-Quellcode:
ist eigentlich noch besser. Ich hätte es spontan über String-Arrays gemacht:
TStrings
Delphi-Quellcode:
uses System.IoUtils, System.Types;
procedure löscheZeile(const fileName: String; const deleteLine: Integer); var originalLines: TStringDynArray; newLines: TStringDynArray; originalLineIndex: Integer; newLineIndex: Integer; begin originalLines := TFile.ReadAllLines(fileName); SetLength(newLines, Length(originalLines) - 1); newLineIndex := 0; for originalLineIndex := Low(originalLines) to High(originalLines) do if (originalLineIndex <> deleteLine) then begin newLines[newLineIndex] := originalLines[originalLineIndex]; Inc(newLineIndex); end; TFile.WriteAllLines(fileName, newLines); end; |
AW: Textdateien bestimmte Zeile löschen.
Zitat:
Es stellt sich zunächst die Frage was eigentlich gelöscht werden soll. Die einzelnen Konfigurationsdateien der Treeview auf der Festplatte oder nur der Eintrag (also der Dateiname) in der ComboBox? |
AW: Textdateien bestimmte Zeile löschen.
Ich habe die Beschreibung ehrlich gesagt auch nicht verstanden, aber immerhin die Überschrift. :stupid:
|
AW: Textdateien bestimmte Zeile löschen.
[OT]
Zitat:
Es gibt Arbeitgeber die brauchen Gedankenleser und Hellseher, keine Programmierer! :glaskugel: Gruß K-H [/OT] |
AW: Textdateien bestimmte Zeile löschen.
Delphi-Quellcode:
:stupid:
procedure löscheZeile(const FileName: String; const DeleteLine: Integer);
var Lines: TArray<String>; begin Lines := TFile.ReadAllLines(FileName); Delete(Lines, DeleteLine); TFile.WriteAllLines(FileName, Lines); end; Und dann natürlich noch ReadLn und WriteLn, wobei man die eine Zeile überspringt. (nicht speichert) Zitat:
drum sagte ich mir "nee, keine Lust das jetzt zu verstehen .... ich geh erstma Mittag essen" :roll: |
AW: Textdateien bestimmte Zeile löschen.
Bei ihm steht aber XE6. Nicht XE7 :lol:
|
AW: Textdateien bestimmte Zeile löschen.
Werbung :zwinker:
Aber ein Array-Delete hatte ich mir seit vielen Jahren eh schon selber gebaut und seit 2009 auch als
Delphi-Quellcode:
. :angel:
TArray<string>.Delete(Lines, DeleteLine);
|
AW: Textdateien bestimmte Zeile löschen.
Zitat:
![]() Wieso erlenst du nicht erst einmal die Grundlagen der Delphi-Programmierung, indem du das eine und/oder andere Tutorial durcharbeitest? Dabei würdest du nämlich ein grundlegendes Verständnis für Delphi und die verfügbaren Komponenten entwickeln. Einfach so draufloslegen und nach zwei drei Wochen glauben, man könne programmieren, geht mit Sicherheit frontal in die Hose :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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