Autor Beitrag
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Fr 02.01.04 15:31 
Hallo DF,

ich möchte mit PosEx einen String (Quelltext einer HTML-Seite) nach einem gewissen Substring durchsuchen lassen und dadurch herausfinden, wie oft der Substring in dem String enthalten ist.
Wie mache ich das mit PosEx? Leider bekomme ich das einfach nicht hin.
Ich weiß, dass es was mit dem Offset zu tun hat, aber ich weiß noch nicht mal genau was das ist!?

Kann mir irgendjemand helfen?
Wäre sehr dankbar!

Greetz

Moderiert von user profile iconPeter Lustig: Topic Verschoben
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 02.01.04 17:50 
Titel: Offset-Erklärung
Hallo!

Also ein Offset wäre inb diesem Fall dann wohl die Position, an der mit der Suche begonnen werden soll. (Ich hab hier jetzt kein Delphi und kenne Die Funktion nicht)
Vielleicht hilft Dir das ja schon...

Ich würde mal vermuten, dass Du für einen weiteren Aufruf den Offset hinter die letzte Fundstelle setzen musst!

Ciao,
S.J.
JustusJonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Fr 02.01.04 18:42 
Das ist mir so weit schon klar, aber ich muss ja auch eine Schleife darum setzen? Aber was für einen Zähler soll ich da am besten benutzen?
Ich raff's irgendwie überhaupt nicht! :(

Greetz
cbs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: Sa 03.01.04 13:19 
hi, ich schreibe mir grade einen Html Parser und benutze auch PosEx, zum suchen der Tags zb.

wenn du die anzahl eines strings in einem string suchen möchtest geht das mit posex zb so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var 
  Found: Boolean;
  Index, CntStr: Integer;
begin
  Index:= 1;
  CntStr:= 0;
  repeat
    Found:= false;
    Index:= PosEx(SearchStr, Html, Index);
    if Index > 0 then begin
      Inc(CntStr);
      Index:= Index + Length(SearchStr);
      Found:= true;
    end;
  until Found = false;
end;


hab den code eben mal so zusammengebastelt. kann also noch fehler enthalten.

du suchst einfach nach dem string und beginnst an der position an der der letzte string gefunden wurde mit der suche Index:= Index + Length(SearchStr);

eins sei zu PosEx noch zu sagen: PosEx unterscheidet zwischen GROSS- und kleinschreibung!
JustusJonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Mo 05.01.04 10:06 
@cbs: Vielen Dank!
Hat jetzt nicht nur geklappt, sondern ich hab's auch endlich gerafft!

Dankeschön!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 05.01.04 17:15 
Was hat PosEx eigentlich mit Dateien zu tun? Sprich, was hat das in dieser Sparte verloren?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 05.01.04 20:45 
:oops: Ist uns wohl durchgerutscht.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JustusJonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Mi 07.01.04 10:00 
Ups, sorry da hatte ich mich wohl verklickt! :(

War keine Absicht!!!

Greetz