Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Delemiter > Char

  Alt 25. Okt 2017, 21:10
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] = '0then
    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

Geändert von EWeiss (25. Okt 2017 um 21:36 Uhr)
  Mit Zitat antworten Zitat