![]() |
Re: Pos wie oft?
Man könnte es auch mit der c-String-Funktion StrScan() versuchen
|
Re: Pos wie oft?
Am Einfachten
![]() Zitat:
PosEx sucht von da an, wo du es festlegst.
Delphi-Quellcode:
Anz := 0;
i := 1; While PosEx(Search, S, i) > 0 do Begin Inc(Anz); i := PosEx(Search, S, i) + 1; End; Anz = Anzahl der Vorkommen mit Überschneidung // ************** Anz := 0; i := 1; While PosEx(Search, S, i) > 0 do Begin Inc(Anz); i := PosEx(Search, S, i) + Length(Auto); End; Anz = Anzahl der Vorkommen OHNE Überschneidung // ************** Anz := 0; While Pos(Search, S) > 0 do Begin Inc(Anz); Delete(S, Pos(Search, S), Length(Search)); //Delete(S, Pos(Search, S), 1); << alternativ für die Version mit Überschneidung End; // man kann den gefunden String auch gegen etwas ersetzen, // wo der Suchstring aber nicht drin enthalten sein darf Anz = Anzahl der Vorkommen OHNE Überschneidung
Delphi-Quellcode:
erster Code sagt 6
Search := 'XXX';
S := 'XXX XXXXX XXXX';
Code:
und Zweiter meint 3 (was CountString entspricht)
'XXX XXXXX XXXX'
111 222 555 333 666 444
Code:
[add]
'XXX XXXXX XXXX'
111 222 333 OK, noch ein Code mit POS für mkinzler :angel: Zitat:
|
Re: Pos wie oft?
@himitsu: Ohne PosEx() funktioniert dein Code aber auch nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 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