AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Textdateien bestimmte Zeile löschen.

Ein Thema von M1ndgr4ve · begonnen am 13. Mär 2015 · letzter Beitrag vom 17. Mär 2015
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
M1ndgr4ve

Registriert seit: 3. Mär 2015
Ort: Bern
29 Beiträge
 
Delphi XE6 Professional
 
#1

Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:19
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
Basti
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:32
Ich habe schon echt viel ausprobiert und kriegs einfach nicht hin das man eine beliebig ausgewählte Zeile/Datei löschen kann.
Und was hast du ausprobiert?

Delphi-Quellcode:
mystringlist:=tstringlist.create;
mystringlist.LoadfromFile('MeineDatei');
if myStringlist.Indexof('gesuchterString)>-1 then
myStringlist.Delete(myStringlist.Indexof(
'gesuchterString));
myStringlist.Savetofile(MeineDatei');
myStringlist.Free;
das wäre z.B. eine Möglichkeit
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:34
Stimmt, TStrings ist eigentlich noch besser. Ich hätte es spontan über String-Arrays gemacht:

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;
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#4

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:41
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?
Diese Beschreibung Deines Vorhabens ist wirr, wie immer.

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?
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:50
Ich habe die Beschreibung ehrlich gesagt auch nicht verstanden, aber immerhin die Überschrift.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:51
[OT]

Diese Beschreibung Deines Vorhabens ist wirr, wie immer.
Kommt darauf an wo man arbeitet, da ist man manchmal einiges gewohnt.
Es gibt Arbeitgeber die brauchen Gedankenleser und Hellseher, keine Programmierer!

Gruß
K-H
[/OT]
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#7

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 12:59
Delphi-Quellcode:
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)


Diese Beschreibung Deines Vorhabens ist wirr, wie immer.
Klang teilweise so, als wenn in den Tree-Zeilen Dateinamen stehen und man die Dateien löschen will,
drum sagte ich mir "nee, keine Lust das jetzt zu verstehen .... ich geh erstma Mittag essen"
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Mär 2015 um 13:02 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 13:01
Bei ihm steht aber XE6. Nicht XE7
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#9

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 13:03
Werbung

Aber ein Array-Delete hatte ich mir seit vielen Jahren eh schon selber gebaut
und seit 2009 auch als TArray<string>.Delete(Lines, DeleteLine); .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Mär 2015 um 13:07 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Textdateien bestimmte Zeile löschen.

  Alt 13. Mär 2015, 13:22
Kann mir jemand helfen?Greez
Du meinst jetzt wirklich helfen, wie man es dort vor einigen Tagen bereits versucht hat?

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 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