比如'\\dfsdf\\dsf\\erwe\\abcde'.我想不用循环的方法就取到'abcde',请不要用:
str := '\\dfsdf\\dsf\\erwe\\abcde';
while (pos('\\',str)>0) do
str := copy(str,pos('\\',str)+2,length(str));
...全文
10515打赏收藏
字符串怎么一次性截取后面的一部分
比如'\\dfsdf\\dsf\\erwe\\abcde'.我想不用循环的方法就取到'abcde',请不要用: str := '\\dfsdf\\dsf\\erwe\\abcde'; while (pos('\\',str)>0) do str := copy(str,pos('\\',str)+2,length(str));
function athwart(Str:string):string;
var
ilength,i:integer;
temp:string;
begin
for i:=1 to ilength div 2 do
begin
temp:=str[i];
str[i]:=str[ilength+1-i];
str[ilength+1-i]:=temp[1];
end;
result:=str;
end;
上面写的太多了,简化一下,呵呵,忘了是用整除的了
我想了一种思路:
定义一个颠倒字符串的函数,
function athwart(Str:string):string;
var
ilength,i:integer;
temp:string;
begin
ilength:=length(str);
if ilength mod 2 = 0 then
begin
for i:=1 to ilength div 2 do
begin
temp:=str[i];
str[i]:=str[ilength+1-i];
str[ilength+1-i]:=temp[1];
end;
end
else
begin
for i:=1 to (ilength-1) div 2 do
begin
temp:=str[i];
str[i]:=str[ilength+1-i];
str[ilength+1-i]:=temp[1];
end;
end;
result:=str;
end;
//用于以指定的字符串分割源字符串
function SplitString(const Source: string; const Splitter: string = ';'): TStrings;
var
Index : Integer;
LastStr: string;
begin
Result := TStringlist.Create;
LastStr := Source;
Index := Pos(Splitter, LastStr);
while Index <> 0 do
begin
Result.Add(Copy(LastStr, 1, Index - 1));
LastStr := Copy(LastStr, Index + Length(Splitter), Length(LastStr));
Index := Pos(Splitter, LastStr);
end;
Result.Add(LastStr);
end;