Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringList nach bestimmten Inhalt durchsuchen und ausgeben (https://www.delphipraxis.net/109494-stringlist-nach-bestimmten-inhalt-durchsuchen-und-ausgeben.html)

Drome 2. Mär 2008 18:39


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.

  • Hallo
    Holla
    Hihoo Lala Musik Sonne 164614543 456asf fgd3f4asfd4a3fdff
    Fussel fdf5sdgfa4fg5d4h5s4hg65fgh
    Staubsauger s4dfs35fg43g54df356g4sd564gh
    Sonne s3df4s65df4s35d4f35sd4gf3d5s4fg56d34fg5sd4d6f5g435 dfg4as3d4fs
    Bild DSa35fr4 F664L644Ö6LÖ4AF8KLAM43ÖLS634AF46KJ6445
    Vase
    Regal

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;

DeddyH 2. Mär 2008 18:41

Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
 
Was Du suchst, ist Pos.

Klaus01 2. Mär 2008 18:43

Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
 
... und copy

Grüße
Klaus

DeddyH 2. Mär 2008 18:47

Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
 
Jepp, als 2. Schritt ;)

omata 2. Mär 2008 18:49

Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
 
Vielleicht so...

Delphi-Quellcode:
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;
Gruss
Thorsten

Drome 2. Mär 2008 19:18

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?

mkinzler 2. Mär 2008 19:20

Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
 
Es scheint sich um eine Binär- oder Unicode-Datei zu handeln

Drome 2. Mär 2008 21:16

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?

Drome 3. Mär 2008 13:29

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:
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;
Was mache ich falsch? ( Die Textdatei result.txt und das Editfeld 1 bleiben leer )

shmia 3. Mär 2008 13:44

Re: StringList nach bestimmten Inhalt durchsuchen und ausgeb
 
Um binäre Daten zu laden, ist folgende Funktion sehr nützlich:
Delphi-Quellcode:
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;
Wenn man eine Stringlist verwendet, können die Daten verfälscht werden, das CR/LF und CR als Zeilenumbruch interpretiert werden.

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.
Seite 1 von 2  1 2      

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