例如:A串:A\B\C\D
B串:AA\bb\cc\dd
C串:AAA\bbb\ccc\ddd
有没有函数可以就把每个串最后一个 \后的内容提取出来 就是取D cd ddd
不想用类似于slpit 这样的功能。有没有哪个函数可以一句代码就可以取出来的?
B串:AA\bb\cc\dd
C串:AAA\bbb\ccc\ddd
有没有函数可以就把每个串最后一个 \后的内容提取出来 就是取D cd ddd
不想用类似于slpit 这样的功能。有没有哪个函数可以一句代码就可以取出来的?
var
S1,S2 :string;
I,J :integer;
begin
S1 := 'a\da\bc\de';
I := PosEx('\',S1,1);
J := I;
while (J>0) do
begin
J := PosEx('\',S1,I+1);
if J>0 then I := J;
end;
S2 := RightStr(S1,Length(S1)-I);
showmessage(S2);
end;
注意在Uses 加上单元 StrUtils
var
sss:string;
begin
sss:=sss+sabc+'\';
Result:= sss;
end;
引用方式
showmessage(pchar(ssabc('abc')+ssabc('cde')));这20分是我的了呀
ssabc('abc');
这可是个万能的哟,想显示什么就什么的哟
这20分是我的了呀
看到你的代码,我修改一下如下:
function TForm1.ssabc01(sabc:string):string;
var
sss:string;
begin
sss:=RightStr(S,Pos('\',ReverseString(S))-1);
Result:= sss;
end;
引用方式如下:
ssabc01('AAA\bbb\ccc\ddd');这下子对了吧,接分中
function TForm1.ssabc01(sabc:string):string;
var
sss:string;
begin
sss:=RightStr(S,Pos('\',ReverseString(S))-1);
Result:= sss;
end;
显示方式
ShowMessage(ssabc01('AAA\bbb\ccc\ddd'));
思路:先找出最后出现的分隔符号位置,然后截取;所以至少要用到2个函数1楼不符合题意
小鸟你前面的是答非所问啊...嘿嘿
7楼ExtractFileName方法,也是调用了LastDelimiter+Copy的方法,不过特殊符号要刚好是"\"才行我的就不分析,RightStr实际上就是Copy,而ReverseString用了指针与数组最后得出结果是:都在蛋痛,而楼主学会了多个方法
呵呵,总结一下:
#2楼 是以\分割字符串的
#6楼 是分离出最后一个\之后的字符串全是“函数体”方式的
楼主这20分真不好挣呀
谢谢赐教,我知道如何处理了
怎么都这么手快啊……sgzhou12345
(小蓝鸟贵薪)好那个啥,竟然写个函数……
var
s:string;
i:integer;
begin
s:='aa\bb\cc\ddd';
i:=length(s);
while s[i]<>'\' do i:=i-1;
showmessage(copy(s,i+1,length(s)));
end;
a,b,c:string;begin
a:='aaaa\aaaa\aaaa\aaaa';
b:='\';
c:=copy(a,LastDelimiter(b,a)+1,length(a)-LastDelimiter(a,b));
showmessage(c);
end;