Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi text zwischen zwei einträgen auslesen (https://www.delphipraxis.net/8370-text-zwischen-zwei-eintraegen-auslesen.html)

Delphi_Coder 3. Sep 2003 10:56


text zwischen zwei einträgen auslesen
 
Diese Funktion sucht im TMemo nach den beiden Strings vS und nS und gibt des Text dazwischen aus.
:dance: Ich will damit HTML Dateien durchsuchen und den Text zwischen zwei Tags auslesen. Nur funktioniert das bei größeren Dateien nicht.

Vielleicht kann mit jemand von euch helfen.

Delphi-Quellcode:
function zText(vS: String; nS: String; M:TMemo):String;
var
  vI,nI: Integer;
  I:   Integer;
  S:   String;
begin
  Result:='';
  S:=M.Lines.Text;

  vI:=Pos(vS,S);
  nI:=Pos(nS,S);

  if (vI<>0) or (nI<>0) then
  begin
    for I:=vI+Length(vS) to nI-1 do
      begin
        Result:=Result+S[I];
    end;
  end;
end;
danke schon im vorraus

Wormid 3. Sep 2003 13:13

Re: text zwischen zwei einträgen auslesen
 
Sind denn vS und nS jeweils eindeutig und ist nI größer als sI?

Gruß

Wormid

Delphi_Coder 4. Sep 2003 07:39

Re: text zwischen zwei einträgen auslesen
 
ja das schon, ich hab es ja getestet.
nur das problem ist dass es wunderbar funktioniert. aber sobald ich als nS oder vS mehr als ein Zeichen eingebe gibt dir Pos - Funktion nur mehr 0 zurück. und ich weiß nicht warum.
:coder:
gibt es vielleicht eine alternative zu Pos oder weiß jemand wo mein fehler liegt?

Wormid 4. Sep 2003 12:33

Re: text zwischen zwei einträgen auslesen
 
Also, bei mir funktioniert die Routine eigentlich einwandfrei...

Delphi-Quellcode:
  ShowMessage(zText('<title>', '</title>', Memo1));
Ich habe das mal so getestet und da kam der korrekte Titel der Seite bei raus, deren Quelltext ich in das Memo1 eingefügt hatte.

Gruß

Wormid

Delphi_Coder 4. Sep 2003 12:50

Re: text zwischen zwei einträgen auslesen
 
:freak: ja ansich funktioniert der code ja auch.
nur halt nicht immer. wenn ich z.B. große dateien habe dann gibt Pos immer 0 zurück und ich weiß nicht wieso.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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