Zitat:
Copy(F, 0, P - F);
Strings fangen bei 1 an mit Zählen ... wenn es bei 0 falsch Zählt, dann hat man eben Pech.
Statt LeftStr würde ich ein StartsStr benutzen
oder ein MatchStrin, wenn mehreres verglichen wird.
Delphi-Quellcode:
(LeftStr(sDummy, 2) = 'SP')
StartsStr('SP', sDummy)
Delphi-Quellcode:
(xxxx = 'SP') or (xxxx = 'PU') or (xxx = 'PD') or ...
MatchStr(xxxx, ['SP', 'PU', 'PD', ...])
StrEnd kann man sich auch sparen, da bei #0 eh abgeschnitten wird und somit Copy garnicht mehr bekommt.
Delphi-Quellcode:
********F := P;
********P := AnsiStrPos(P, ';');
********if (P = nil) then
************P := StrEnd(F);
********sDummy := Copy(F, 0, P - F);
Delphi-Quellcode:
********sDummy := P;
i := Pos(';', sDummy);
if i > 0 then
sDummy := LeftStr(sDummy, i-1); // sDummy := Copy(sDummy, 1, i-1); ODER Delete(sDummy, i-1+1, MaxInt); // eventuell auch i statt i-1 (inkl. oder exkl. dem ; )