![]() |
StringList nach bestimmten Inhalt durchsuchen und ausgeben
Also, mein Problem ist, ich möchte eine Datei in eine StringList laden, und sie Dann nach 2 bestimmten Stichworten durchsuchen, und alles was zwischen diesen Stichworten steht in einem Edit Feld ausgeben.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: string; begin StringList := TStringList.Create; StringList.LoadFromFile('C:\Textfile.txt'); //* hier komme ich nicht weiter und habe auch noch keine Lösung gefunden, weder hier im Forum noch wo anders. Ich möchte die StringList nach dem Worte Hihoo durchsuchen und wenn es gefunden wurde alles was z.B. 90 stellen hinter dem Wort steht in dem Editfeld1 ausgeben. *// Edit4.Text := s; end; |
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Was Du suchst, ist Pos.
|
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
... und copy
Grüße Klaus |
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Jepp, als 2. Schritt ;)
|
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Vielleicht so...
Delphi-Quellcode:
Gruss
procedure TForm.ButtonClick(Sender: TObject);
var StringList:TStringList; posi:integer; s:string; begin StringList := TStringList.Create; try StringList.LoadFromFile('C:\Textfile.txt'); s:=StringList.Text; delete(s, 1, pos('<Startwort>', s) + length('<Startwort>') - 1); Edit4.Text := copy(s, 1, pos('<Endewort>', s) - 1); finally StringList.free; end; end; Thorsten |
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Ok, das Problem wäre gelöst, doch jetzt kommt hier ein neues:
Die Datei enthält solche Zeichen und Zahlen: ”¥—ÐmU»Mêò¯¶è»{óo4ùÙ cR†f–Õ®žïI—+;7À¤åé5ÞÅfâ"«Í±«ò…u¯šEéê‡TNõ}ÛrJ öõ§)<Á,.)VëÒÛ Üíº+#Î`T¤¾H~~AgZ¯FJ¼àcZx¤ƒ®CM«úÔdjaö¿5»îcc¦±|Ñ4>Íp; úOb·Rq{³óU¹íá¿ÇγBz½ç/E¬ù^ÄûÖ/¬nXï3µw:î´öài"9¡AXÆy°2\T1Lüô|@@CÒ\ÚÅó'ñ)¯!TÇ¥ #ΰaÑzn±éXJØXžm›ÏAõþ*¨ ½ÐÄòÃw^5ÈQòˆ$¨®£<êåTƤêýgŒ!…ˆ€m@œô0iEŸ—¡ÍÛ xÜË×÷ l¢s”ªÍkš.ac¿Q,ø\“Gë!¬jÂ&Ÿß^XÍtÏ*/{„ÈÃE}ÂëÍî9¡ŽMZ—XXA‰!fi)zïx¡d|¾¾ëežµÖ¢ÄÈÊJ‰n›åð» Ò]ËHq‹› 5øDr†.añ GÀ×t˜´ÀÀ·€Ô…ÿaç¢ûF€—«»ØšJ)rVSH™Í S3œõV?Ÿ½,¨Äz`ºæ{Û was mache ich jetzt, ich suche aber in dieser Datei eben eine Stelle, die auch aus Großbuchstaben, Kleinebuchstaben und Zahlen besteht. Kann mir da einer Helfen? |
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Es scheint sich um eine Binär- oder Unicode-Datei zu handeln
|
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Kann sein, ich weiß es aber nicht, gibt es eine Möglickeit, dort einen bestimmten Inhalt der aus Großbuchstaben und Zahlen besteht auszulesen, und in ein Editfeld zu schreiben?
|
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
OK, mit der oben genannten Lösung klappt es auf C:, aber irgendwie will er keine Dateien von meiner Festplatte D: in die StringList laden.
Delphi-Quellcode:
Was mache ich falsch? ( Die Textdatei result.txt und das Editfeld 1 bleiben leer )
procedure TForm1.Button1Click(Sender: TObject);
var slist: TStringList; s: String; begin slist := TStringList.Create; slist.LoadFromFile('D:\Test.txt'); s:=slist.Text; delete(s, 1, pos('Hihoo', s) + length('Hihoo') - 1); Edit1.Text := copy(s, 1, pos('Vase', s) - 1); slist.SaveToFile('D:\result.txt.txt'); slist.Free; end; |
Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
Um binäre Daten zu laden, ist folgende Funktion sehr nützlich:
Delphi-Quellcode:
Wenn man eine Stringlist verwendet, können die Daten verfälscht werden, das CR/LF und CR als Zeilenumbruch interpretiert werden.
function FileToString(const FileName: string): AnsiString; // aus der JCL
var fs: TFileStream; Len: Integer; begin fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); try Len := fs.Size; SetLength(Result, Len); if Len > 0 then fs.ReadBuffer(Result[1], Len); finally fs.Free; end; end; Und dann so:
Delphi-Quellcode:
var
s: string; idx : integer; begin s := FileToString('C:\Textfile.txt'); // binär-Datei auf String einlesen idx := Pos('Hihoo', s); // hier weitere Stringverarbeitung ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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