AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zeile aus Datei in Textdatei schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Zeile aus Datei in Textdatei schreiben

Ein Thema von Xenonz · begonnen am 15. Dez 2005 · letzter Beitrag vom 16. Dez 2005
Antwort Antwort
Xenonz

Registriert seit: 21. Sep 2005
64 Beiträge
 
#1

Zeile aus Datei in Textdatei schreiben

  Alt 15. Dez 2005, 23:06
Hallo!
Ich habe eine Batch Datei, die mit Delphi aufgerufen wird. Nun möchte ich jedoch den Code durch Delphi eigene Mittel ersetzen. Wie kann ich eine Zeile aus einer Textdatei suchen und diese Zeile in eine andere Textdatei (kann auch eine .ini sein) einfügen? Mit batch sah das ganze so aus:

FIND /N /I "name" personen.txt >> namen.txt

Mfg Xenonz
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Zeile aus Datei in Textdatei schreiben

  Alt 16. Dez 2005, 06:19
Ich würde mir die Datei in eine StringList laden und dann die einzelnen Zeilen durchgehen, bis du die Zeile gefunden hast.

Delphi-Quellcode:
procedure FindInFile(SrcFile : String; DestFile : String; TextToFind : String);
var
  sl_Src,
  sl_Dest : TStrings;
  idx : Word;
begin
  sl_Src:=TStringList.Create;
  sl_Dest:=TStringList.Create
  try
    sl_Src.LoadFromFile(SrcFile);
    //sl_Dest.LoadFromFile(DestFile) //Wenn an die alte Datei angehangen werden soll
    for idx:=0 to sl_Src.Count-1 do
    begin
      //Jetzt kommts drauf an, wie du suchen willst:
      if (AnsiContainsStr(sl_Src[idx],TextToFind)) then //case-sensitiv
      //if (AnsiContainsText(sl_Src[idx],TextToFind)) then //nicht case-sensitiv
        sl_Dest.Add(sl_Src[idx]);
    end;
  finally
    sl_Src.Free;
    sl_Dest.Free;
  end;
end;
Hier fehlt jetzt die Fehlerüberprüfung. Und außerdem ist das eine Resourcen/Rechenzeit-Verschwendung wenn du viele Sachen aus der Datei finden wills. Aber in etwa so, sollte es gehen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Zeile aus Datei in Textdatei schreiben

  Alt 16. Dez 2005, 08:23
ich würde die Datei Zeile für Zeile einlesen und dann schauen, ob die gelesene Zeile passt.
somit musst du nicht erst die ganze Datei einlesen.
Delphi-Quellcode:
    
var
  F: TextFile;
  S: string;
begin
    AssignFile(F, FileName);
    Reset(F);
    repeat
      Readln(F, S); { Erste Zeile der Datei lesen }
    until S = gesuchteZeile;
    CloseFile(F);
end;
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Xenonz

Registriert seit: 21. Sep 2005
64 Beiträge
 
#4

Re: Zeile aus Datei in Textdatei schreiben

  Alt 16. Dez 2005, 15:16
Danke schon einmal für die Antworten!
Also im Moment sieht das ganze wie folgt aus:

Delphi-Quellcode:
var
  F,D: TextFile;
  S: string;
begin
    AssignFile(F, 'test.txt');
    Reset(F);
    repeat
      Readln(F, S);
    until S = 'haha';
    CloseFile(F);

    AssignFile(D, 'neu.txt');
    Reset(D);
    writeln(D, S);
    CloseFile(D);
end;
Dabei spuckt der Compiler jedoch einen Fehler aus: ElnOutError .

Ein weiteres Problem war, dass in dieser Zeile auch noch andere Zeichen vorkommen dürfen als nur 'haha'. Wie kann man also anstatt S = 'haha' überprüfen ob haha in s vorhanden ist?

Mfg Xenonz
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Zeile aus Datei in Textdatei schreiben

  Alt 16. Dez 2005, 15:37
Zitat von Xenonz:

Ein weiteres Problem war, dass in dieser Zeile auch noch andere Zeichen vorkommen dürfen als nur 'haha'. Wie kann man also anstatt S = 'haha' überprüfen ob haha in s vorhanden ist?

Mfg Xenonz
mit pos (...)
schau mal in der Delphi-Hilfe nach.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Xenonz

Registriert seit: 21. Sep 2005
64 Beiträge
 
#6

Re: Zeile aus Datei in Textdatei schreiben

  Alt 16. Dez 2005, 16:01
Danke!
Also dieses Problem ist nun gelöst mit:
until (pos('haha',S) > 0); Nun noch das schreiben in eine Datei. Wieso treten bei mir diese Fehler auf?
  Mit Zitat antworten Zitat
Xenonz

Registriert seit: 21. Sep 2005
64 Beiträge
 
#7

Re: Zeile aus Datei in Textdatei schreiben

  Alt 16. Dez 2005, 16:08
Soo!
Ich habe gerade bemerkt, dass Reset nicht zum schreiben öffnet!
So sieht nun das ganze fertig aus:

Delphi-Quellcode:
var
  F, D : TextFile;
  S: string;
begin
    AssignFile(F, 'test.txt');
    Reset(F);
    repeat
      Readln(F, S);
    until (pos('haha',S) > 0);
    CloseFile(F);

    AssignFile(D, 'neu.txt');
    append(D);
    writeln(D, S);
    CloseFile(D);
end;
Danke für die Hilfe!
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:37 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