Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ausgeben bestimmter informationen aus txt datei (https://www.delphipraxis.net/53071-ausgeben-bestimmter-informationen-aus-txt-datei.html)

mr.unbekannt 13. Sep 2005 16:21

Re: ausgeben bestimmter informationen aus txt datei
 
also du musst bestimte teile suchen lassen bis zu ienem bestimmten zeichen, am besten ein sonmderzeichen! durch die funktion pos(was,wo); und dann eben copy(wo, von wo, bis wo) musste eben nen biscle stückeln, ich für mich würde es anderes herauslesen, wie ich es dir beschrieben habe!

Mr_G 13. Sep 2005 17:47

Re: ausgeben bestimmter informationen aus txt datei
 
Man könnte es auch so machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var List: TStringList;
    Zeile: Integer;
begin
  List := TStringList.Create;
  List.LoadFromFile('D:\zug.txt');
  Zeile := List.IndexOf('|| Status: Mission 1 ||');
  if Zeile > -1 then
    Memo1.Lines.Add(List[Zeile]);
end;
Zu beachten ist dabei jedoch was die OH sagt:
Zitat:

Mit IndexOf können Sie das erste Vorkommen eines Strings, der mit dem String S übereinstimmt, ermitteln. Ein String stimmt mit S überein, wenn er mit S identisch ist oder – wenn CaseSensitive false ist – sich nur bezüglich der Groß-/Kleinschreibung von S unterscheidet.

IndexOf gibt den auf Null basierenden Index des Strings zurück. Daraus ergibt sich folgendes Schema: Wenn S mit dem ersten String in der Liste übereinstimmt, gibt IndexOf den Wert 0 zurück. Wenn S der zweite String in der Liste ist, wird –1 zurückgegeben usw. Entspricht S dem zweiten String, gibt IndexOf 1 zurück usw. Existiert keine Fundstelle in der Stringliste, gibt IndexOf -1 zurück.

Scumi 15. Sep 2005 19:10

Re: ausgeben bestimmter informationen aus txt datei
 
Okay, ich bin langsam ein wenig in Delphi drin. Folgendermaßen sieht das grad bei mir aus (erstmal nur für den ersten gesuchten Wert)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var datei: textfile;
    puffer: string;
    anfang: integer;
    ende: integer;

begin
 assignfile(datei,'D:/zug.txt');
 reset(datei);
 readln(datei, puffer);
 anfang:= pos('Status:', Puffer);
 ende := pos('||', Puffer) + 8;
 Memo1.Lines.Add(copy(Puffer, anfang, ende - anfang + 1));
 delete(Puffer, 1, ende);
 closefile(datei);

end;
Statt das Delphi mir "Mission 1" anzeigt, wie gewollt kommen lediglich die ersten 9 Zeichen aus der ersten Zeile in das Memofeld (-[o]- ---). Bekommte das trotz unzähliger Versuche nicht weg.

Gruß

Mr_G 15. Sep 2005 19:18

Re: ausgeben bestimmter informationen aus txt datei
 
Da die Zeichen "||" mehrmals vorkommen und du mit pos immer nur das erste Vorkommen findest würde ich es eher so machen:
Delphi-Quellcode:
anfang:= pos('Status: Mission 1', Puffer);
ende := anfang + Length('Status: Mission 1');
"Status: Mission 1" könntest du dann z.B. auch durch eine Variable ersetzen...

Scumi 15. Sep 2005 19:22

Re: ausgeben bestimmter informationen aus txt datei
 
Mission 1 ist nicht unbedingt gegeben. Könnte auch Mission 2 sein, das wird ja eigentlich gesucht zwischen "Status:" und dem hinteren "||"

Rastaman 15. Sep 2005 19:28

Re: ausgeben bestimmter informationen aus txt datei
 
Also wie ich das verstehe, willst du Sachen aus einer TXT auslesen.
Dann fragst du ab, ob der String auch so aussieht wie er aussehen soll.
Aber wozu dann die Textdateien?
Wenn der eh nich variabel sein kann der Text, dann benutz doch erst gar keine TextDateien.
Wenn ich was falsch verstanden habe, dann benutz einfach INI Dateien :mrgreen:

Scumi 15. Sep 2005 19:35

Re: ausgeben bestimmter informationen aus txt datei
 
Na der soll doch grade Variabel sein...Nur bestimmte Dinge kommen immerwieder vor.

Beispiel:

|| Status: Mission 1 ||
|| Mission: Neuanfang ||

Hinter "Mission:" könnte auch irgendwas anderes stehen, als "Neuanfang". Es sind jedesmal andere auszulesende Textdateien, weshalb es ja das *.txt Format sein soll (bzw ist).

Gruß

Rastaman 15. Sep 2005 21:25

Re: ausgeben bestimmter informationen aus txt datei
 
Guck dir mal Ini-Files an.
Damit geht das einfacher.
Ansonsten nimm Records.

Zacherl 15. Sep 2005 21:34

Re: ausgeben bestimmter informationen aus txt datei
 
Stimmt. INI Dateien sind (behaupte ich einfach) die einfachste Art Daten in einer Textdatei zu speichern und wieder daraus zu lesen. Warum sich also mit dem Extrahieren einzelner Strings verkünsteln?

Florian


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

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 by Thomas Breitkreuz