AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pos wie oft?

Ein Thema von MrDevil · begonnen am 12. Apr 2007 · letzter Beitrag vom 13. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Pos wie oft?

  Alt 12. Apr 2007, 19:25
Man könnte es auch mit der c-String-Funktion StrScan() versuchen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#12

Re: Pos wie oft?

  Alt 13. Apr 2007, 07:02
Am Einfachten CountStringCountString, oder ähnliche Funktionen,

Zitat von Matze:
Pos sucht vom Anfang des Strings an das erste Vorkommen des Suchstrings. Wenn du natürlich manuell den Link von vorne kürzt, kommst du auch mit Pos aus, aber bei PosEx kann man festlegen, ab welcher Stelle gesucht werden soll, was daher viel einfacher ist.
Also wie schon gesagt, Pos such von Anfang an, findet also immer nur das erste Vorkommen, es sei den du entfernst es vorm nächsten Suchdurchgang.

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:
Search := 'XXX';
S := 'XXX XXXXX XXXX';
erster Code sagt 6
Code:
'XXX XXXXX XXXX'
 111 222   555
      333   666
       444
und Zweiter meint 3 (was CountString entspricht)
Code:
'XXX XXXXX XXXX'
 111 222   333
[add]
OK, noch ein Code mit POS für mkinzler

Zitat von mkinzler:
Ohne PosEx() funktioniert dein Code aber auch nicht.
Hab ich was anderes behauptet?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Pos wie oft?

  Alt 13. Apr 2007, 07:07
@himitsu: Ohne PosEx() funktioniert dein Code aber auch nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 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