Bei Widestrings hat jeder Char eine fixe Größe (bei BSD 2006 sinds 2 Byte; Bei neueren 4 Byte).
Einfachste (und unabhängig von der Delphi/Cpu-Version):
Delphi-Quellcode:
function FindCharInWidestring(str:widestring;toFind:widechar):integer;
var
p : PWidechar;
max: integer;
begin
result := -1;
p := PWidechar(str);
max := length(str);
while (max >= 0)
do
begin
if (p^ = toFind)
then
max := -1;
else
begin
inc(p);
inc(result);
dec(max);
end;
end;
end;
Ungetestet und einfach aus dem Gedächtnis geschrieben