求解字符串!(100分)

  • 主题发起人 主题发起人 zybzhen
  • 开始时间 开始时间
Z

zybzhen

Unregistered / Unconfirmed
GUEST, unregistred user!
F:/ABCD/CDEF/DEFG/TEST1.TXT
如何求得最后一个/后面的和前面的字符串?
 
procedure TForm1.Button1Click(Sender: TObject);
var
s ,spre,sLast : String;
i : integer;
begin
s := 'F:/ABCD/CDEF/DEFG/TEST1.TXT';
for i := Length(s) downto 1 do
begin
if s = '/' then
begin
sPre := Copy(s,1,i-1);
sLast := Copy(s,i+1,Length(s));
edit1.Text := sPre;
edit2.Text := sLast;
break;
end;
end;
end;
晕,光顾解析了,还是楼下的办法好呀。省事。
 
最后一个:=ExtractFileName(F:/ABCD/CDEF/DEFG/TEST1.TXT);
前面:=ExtractFilePath(F:/ABCD/CDEF/DEFG/TEST1.TXT);
 
var
i,ipos:integer;
s:string;
begin
s:= 'F:/ABCD/CDEF/DEFG/TEST1.TXT';
ipos=0;
for i:= Length(s) downto 1 do
if s='/' then
begin
ipos:= i;
break;
end;
if ipos=0 then
showmessage('none char /')
else
showmessage('before:'+copy(s,1,ipos-1)+';after:'+copy(s,ipos+1,length(s)));
end;

晕.一写完就已经是第3楼了.没法删除.汗!
 
最好的写法应该是这样:
procedure TForm1.Button1Click(Sender: TObject);
var
s ,spre,sLast : String;
begin
s := 'F:/ABCD/CDEF/DEFG/TEST1.TXT';
spre:=extractfilepath(s);
slast:=extractfilename(s);
showmessage(spre);
showmessage(slast);

end;
 
STR: String;
STR:= F;
/后面的字符串 :=ExtractFileName(STR);
/前面的字符串:= ExtractFilePath(STR);
 
因为采用了iseek的方法并且iseek给出比较简单且早于其它同类方法
chuwenyong、happycyp使用了自己编程实现!
感谢大家帮助
 
后退
顶部