Einzelnen Beitrag anzeigen

EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#88

AW: Anzahl eines Zeichens im String ermitteln

  Alt 13. Jul 2018, 15:30
Noch ein kleiner:

Scanne von beiden Seiten und halbiere die Loop:

Delphi-Quellcode:
function EH_CharCount4(const S: string; C: Char): Cardinal;
var
  P, PEnd: PChar;
begin
  Result := 0;
  P := Pointer(S);
  if P = nil then Exit;
  PEnd := P + PStrLenInt(NativeUInt(P) - SizeOf(StrLenInt))^-1;
  if PEnd = p //handle single char string
  then Inc(Result, Ord(P^ = C))
  else while P < PEnd do begin
    if P^ = C then
      Inc(Result);
    Inc(P);
    if PEnd >= P then begin
      if PEnd^ = C then
        Inc(Result);
      Dec(PEnd);
    end;
  end;
end;
Wegen der Schwankungen empfehle ich jeden test mind 10x durchzuführen und einen avg zu bilden.

Geändert von EgonHugeist (13. Jul 2018 um 15:51 Uhr) Grund: War noch ein krux drin
  Mit Zitat antworten Zitat