Zitat:
Irgendwie machst Du aus einem String 'nen PChar und beginnst immer mit der 2. Position, die Du dann per
Dec auf die erste Position setzt. Nun gehst Du zeichenweise durch den PChar um den : zu suchen. Wenn WordPos = 0, wird Result um p^ erhöht
und dann wird p erhöht, bis p^ = : ist. Dann wird p^ erhöht und solange weitergemacht, bis p^ = : ist. Das sieht mir so aus, als würde das jetzt weitergehen, bis der 2. Doppelpunkt gefunden wird, es sei denn WordPos wird vorher 0.
Irgendwie verstehe ich das nicht so recht.
Stimmt mir geht's ähnlich.
wie das mit
Inc(p);
geht ist mir nicht klar
Aus meiner Toosammlung:
Delphi-Quellcode:
function GetTeilString(S: string; Pos: integer; Trenner: string; TrimAll:boolean=false): string;
var
i, j: integer;
S2: string;
begin
j := 0;
S2 := '';
if S <> '' then
begin
if S[Length(S)] <> Trenner then
S := S + Trenner;
// 31.03.2009: Noch ein Sicherheitsabfang
S := S + ' ' + Trenner;
{ Beginn suchen }
for i := 1 to (pos - 1) do
begin
j := j + 1;
while s[j] <> Trenner do
j := J + 1
end;
{ Wert setzen }
j := j + 1;
while s[j] <> Trenner do
begin
S2 := S2 + S[j];
j := J + 1
end;
end;
Result := TrimRight(S2);
if TrimAll then
Result := Trim(S2);
end;
nicht so elegant wie deine Lösung, aber ich arbeite nicht gerne mit PChar und ^