Delphi-PRAXiS
Seite 1 von 16  1 2311     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anzahl eines Zeichens im String ermitteln (https://www.delphipraxis.net/116372-anzahl-eines-zeichens-im-string-ermitteln.html)

devidespe 27. Jun 2008 15:47


Anzahl eines Zeichens im String ermitteln
 
Wie kann man die Anzahl eines Zeichens in einem vorliegenden String ermitteln ? Die Pos-Funktion sucht ja nur das erste Zeichen.

Gibt es dafür eine spezielle Funktion, oder muss ich etwa den String in eine temporäre Variable kopieren und nach jedem gefundenen Pos-Ergebnis das Zeichen in dieser Temp-Variable löschen (in einer Schleife) ?

dominikkv 27. Jun 2008 15:49

Re: Anzahl eines Zeichens im String ermitteln
 
Delphi-Quellcode:
Length(myString)

1234588 27. Jun 2008 15:50

Re: Anzahl eines Zeichens im String ermitteln
 
Delphi-Quellcode:
var
  i: LongInt;
  j: LongInt = 0;
begin
  for i := 1 to length(str) do
    if str[i] = zeichen then Inc(j);
es wird einfach zeichen fuer zeichen verglichen. in j findest du dann die anzahl der zeichen

//edit
die funktion dazu:

Delphi-Quellcode:
function miep(const s: String; c: Char): LongInt;
var
  i: LongInt;
begin
  result := 0;
  for i := 1 to length(s) do
    if s[i] = c then Inc(result);
end;

mkinzler 27. Jun 2008 16:11

Re: Anzahl eines Zeichens im String ermitteln
 
Man könnte es auch mit PosEx() machen

inherited 27. Jun 2008 16:53

Re: Anzahl eines Zeichens im String ermitteln
 
Zitat:

Zitat von mkinzler
Man könnte es auch mit PosEx() machen

Was vermutlich noch ineffektiver wäre

mkinzler 27. Jun 2008 16:56

Re: Anzahl eines Zeichens im String ermitteln
 
Zitat:

Was vermutlich noch ineffektiver wäre
Warum?

inherited 27. Jun 2008 17:53

Re: Anzahl eines Zeichens im String ermitteln
 
Ich hab zwar grad kein Delphi zur verfügung, aber ich denke dass PosEx nichts anderes macht als den String durchzugehen. Dann kann man sich die mehrfachen Aufrufe auch gleich sparen und per Hand zählen.

mkinzler 27. Jun 2008 17:56

Re: Anzahl eines Zeichens im String ermitteln
 
Dann wäre es schlimmstenfalls genauso ineffektiv.

devidespe 27. Jun 2008 18:10

Re: Anzahl eines Zeichens im String ermitteln
 
Also ich habe jetzt eine eigene Funktion geschrieben, die in einer For-To-Do-Schleife (danke @1234588) den String durchsucht.

Ich habe gerade aber auch ein Beispiel mit PosEx hier entdeckt.

Ydobon 27. Jun 2008 22:42

Re: Anzahl eines Zeichens im String ermitteln
 
Geht sogar als Einzeiler:
Delphi-Quellcode:
z:=Length(str)-Length(StringReplace(str, c, '', [rfReplaceAll]))


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.
Seite 1 von 16  1 2311     Letzte »    

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