![]() |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
|
AW: Anzahl eines Zeichens im String ermitteln
Danke für diese Information.
BTW Wie findet ihr die Variante mit (Ansi-)StrScan ? Gut oder doof? |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
Zitat:
|
AW: Anzahl eines Zeichens im String ermitteln
Ich hatte es nur einmal gebencht (die StrScan nicht AnsiStrScan), Jahrzehnte her, da gewann im Benchmark immer die StrScan vs ForToLength. Je Länger der InputString umso deutlicher wurde das Ergebnis. Ich schau mal ob ich einen Benchmark bastel und stell den dann gerne hier vor, ich werde alle Varianten aus diesem Thread darin antreten lassen, implementieren kann ich allerdings nur Methoden die ich mit D2009 auch umsetzen kann, dann Wissen wirs exakter :idea:
Ps: Es ist nur eine Schleife bei mir. |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
Wenn die For-Schleife denn unbedingt vermieden werden soll, kann man es auch so machen:
Delphi-Quellcode:
function CharCount(const S: string; const C: Char): Integer;
var N: Integer; P: PChar; begin N := 0; P := PChar(S[1]); while P^ <> #0 do begin if P^ = C then Inc(N); Inc(P); end; Result := N; end; |
AW: Anzahl eines Zeichens im String ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Anbei ein Benchmark Source-Only Projekt.
Eindeutiger Gewinner = StrScan() Eindeutiger Verlierer = Ydobon mit
Delphi-Quellcode:
.
x := Length(Data)-Length(StringReplace(Data, 'X', '', [rfReplaceAll]))
Am zweitbesten schneidet bei mir alzaimar mit IFCount(Data, 'X'), respekt dafür:thumb::thumb: Dahinter alles andere, schlusslicht bei den normalen Methoden ist AnsiStrScan(). @Uwe, Dein letzter Code löst bei mir bei Aufruf eine Exception aus, der Code ist bereits enthalten, nur in der Mausklick Procedure rausgeklammert. |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
Delphi-Quellcode:
heißen.
P := PChar(S);
|
AW: Anzahl eines Zeichens im String ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Dein letzter Code führt damit die Rangliste an!! Grandioses Ergebnis, schlägt alles um Längen:thumb::thumb:
Tut mir leid, da muss wohl mein Rechner noch an was gewerkelt haben als ich es testete. StrScan() immer noch #1 aber total dicht dahinter ist Dein Code (@Uwe), im Grunde teilen die sich die Pole-Position. Im Anhang aktualisiert Fassung, das StringReplace ist rauskommentiert deswegen immer 0 Nanosekunden. Fenster ist nun sizeable, Memo ist AlignClient. Ein Kompilat zum sofort Testen ist enthalten. |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
|
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 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