OK, hab grad nochmal nachgesehn ... D7 hat diese Funktion noch nicht, wurde also doch erst später eingeführt
hier wird erstmal nur das ' ' als Trennzeichen verwendet und wenn ein Teil mit " anfängt, dann bleibt er zusammen...
Delphi-Quellcode:
Function ExplodeEx(Const S: String): TStringDynArray;
Var i, i2: Integer;
Begin
Result := nil;
i := 1;
While i <= Length(S) do Begin
If S[i] = '"' Then Begin
Inc(i);
i2 := PosEx('"', S, i);
End Else i2 := PosEx(' ', S, i + 1);
If i2 = 0 Then i2 := Length(S) + 1;
SetLength(Result, Length(Result) + 1);
Result[High(Result)] := Copy(S, i, i2 - i);
If (i2 < Length(S)) and (S[i2] = '"') and (S[i2 + 1] = ' ') Then Inc(i2);
i := i2 + 1;
End;
End;
Delphi-Quellcode:
x := ExplodeEx('12 "34 56" 7 89');
// Ergebnis:
x[0] = '12'
x[1] = '34 56'
x[2] = '7'
x[3] = '89'