Ich nutze etwas ähnliches, hier mein Code um noch eine Variante zu zeigen (oder gabs die hier schon?):
Delphi-Quellcode:
function CountCharInString(const Str: String; const c: Char): Integer;
var
p: PChar;
begin
Result := 0;
p := PChar(Pointer(Str));
while p <> nil do
begin
p := StrScan(p, c);
if p <> nil then
begin
inc(Result);
inc(p);
end;
end;
end;