AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Anzahl eines Zeichens im String ermitteln

Anzahl eines Zeichens im String ermitteln

Ein Thema von devidespe · begonnen am 27. Jun 2008 · letzter Beitrag vom 17. Jul 2018
Antwort Antwort
Seite 1 von 16  1 2311     Letzte » 
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
418 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 15:47
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) ?
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.106 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 15:49
Length(myString)
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
1234588

Registriert seit: 14. Jan 2007
Ort: Stuttgart
164 Beiträge
 
#3

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 15:50
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.757 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 16:11
Man könnte es auch mit PosEx() machen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 16:53
Zitat von mkinzler:
Man könnte es auch mit PosEx() machen
Was vermutlich noch ineffektiver wäre
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.757 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 16:56
Zitat:
Was vermutlich noch ineffektiver wäre
Warum?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 17:53
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.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.757 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 17:56
Dann wäre es schlimmstenfalls genauso ineffektiv.
Markus Kinzler
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
418 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 18:10
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.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
200 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Anzahl eines Zeichens im String ermitteln

  Alt 27. Jun 2008, 22:42
Geht sogar als Einzeiler:
z:=Length(str)-Length(StringReplace(str, c, '', [rfReplaceAll]))
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2018 by Daniel R. Wolf