Hallo jacky213,
ich habe deine beiden Funktionen eben mal getestet und bei mir kommen die korrekten Werte raus.
StringPartEnd liefert mir 18 und StringPartStart liefert mir 13. Ich denke mal dies ist das was du haben wolltest.
Dein Problem wird wohl an anderer Stelle liegen. Vieleicht postest du mal die die Stelle deines Programms an der du deine Funktionen aufrufst?
Folgendermaßen könntest du es ja machen:
Delphi-Quellcode:
function StringPartStart(str:string; start:integer) : integer;
var
found: boolean;
begin
found := false;
while found = false do begin
if Copy(Str, start, 1) = ' ' then
found := true;
start := start -1;
end;
Result:= Start + 2;
end;
function StringPartEnd(str:string; start:integer) : integer;
var
found: boolean;
begin
found := false;
while found = false do begin
if Copy(Str, start, 1) = ' ' then
found := true;
start := start +1;
end;
Result := Start - 2;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lString : String;
begin
lString:= 'Das ist der String den ich untersuchen möchte';
Label1.Caption := IntToStr(StringPartStart(lString, 16));
Label2.Caption := IntToStr(StringPartEnd(lString, 16));
end;
Gruß,
KWolf