function String_Copy(sString: String; iStart:Integer; var iLen:Integer): String;
var
iLoop : Integer;
bHead : Boolean;
bTail : Boolean;
begin
if iStart + iLen - 1 >= Length(sString) then
iLen := Length(sString) - iStart + 1
else begin
bHead := False;
bTail := False;
for iLoop := iStart to iStart + iLen -1 do
begin
if bHead and not bTail then
bTail := True
else
if sString[iLoop] >= #160 then
begin
bHead := True;
bTail := False;
end;
end;
if bHead and not bTail then Dec(iLen);
end;
Result := Copy(sString, iStart, iLen);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s, t : String;
i, j : Integer;
begin
s := '12345字符串ABCDE';
i := 1;
j := 6;
t := String_Copy(s, i, j); //返回'12345'
ShowMessage(t);
i := i + j;
j := 3;
t := String_Copy(s, i, j); //返回'字'
ShowMessage(t);
i := i + j;
j := 5;
t := String_Copy(s, i, j); //返回'符串A'
ShowMessage(t);
end;