Ich möchte auf einen Delemiter hin parsen der mehr als 1 Char enthält.
Delphi-Quellcode:
function tcsstr(str, Pattern: PAnsiChar): PAnsiChar;
var
mi: Integer;
begin
mi := -1;
while Pattern[mi] <> Pattern do
begin
if str[mi] = '0' then
begin
result := nil;
exit;
end;
if(str[mi] <> Pattern[mi]) then
begin
Inc(str, 1);
mi := -1;
end;
inc(mi);
end;
result := str;
end;
Pattern ist ',"'
Der String wird solange um 1 Char(zeichen) gelöscht bis Pattern[mi] = Pattern ist.
Nur das tritt nie ein.
Wo ist der Denkfehler?
In C++ ist das einfach aber in Delphi will es irgendwie nicht.
Code:
WCHAR* tcsstr(WCHAR* String, WCHAR* Pattern) {
int mi = -1;
while(Pattern[++mi]) {
if(String[mi] == 0)
return 0;
if(String[mi] != Pattern[mi]) {
String++;
mi = -1;
}
}
return String;
}
gruss