这个问题很简单得,大家快答!!!!!!!!!!! (20分)

  • 主题发起人 主题发起人 tank37
  • 开始时间 开始时间
T

tank37

Unregistered / Unconfirmed
GUEST, unregistred user!
从'F:/www.52delphi.com_下载/down/'中
取出'F:/www.52delphi.com_下载/'怎么做呀???

注意从'F:/www.52delphi.com_下载/down/'是一个可变的字符串,具有
../../../../这样的结构

我得天,我想了半天尽然不会!!!晕
 
copy(string,i,ii);
string:目标句
i:从第几个字符取起
ii:取几个字符
 
字符串是当然是变化得了。具有这样得结构 ../../../
我要去掉最后一个元素
 
procedure TForm1.Button1Click(Sender: TObject);
var
tmp,res:String;
begin
tmp:='F:/www.52delphi.com_下载/down/';
res:=copy(tmp,1,25);
showmessage(res);
end;
 
extractfiledir('F:/www.52delphi.com_下载/down/');
即可,快给分,我可快没有分了.
 
panzichan大哥你自己试试,这是不可以得,'F:/www.52delphi.com_下载/down/’就算当路径看待,
也他本身就是一个目录,非文件路径!!!!!!

再说,我说得是这样一种结构,不一定是路径得,在vb中得函数比较好搞。怎么在delphi
中却不好实现呢????
 
楼上的是错的,下面的是正确的。
function resStr(str:String):String;
begin
Result:=extractfiledir(extractfiledir(str))+'/';
end;
 
我自己现在用下面语句实现了!!!!可是我看代码太烂了,寻求更好得代码!!!
begin
n := Pos('/', s);
while n <> Length(s) do
begin
n := Pos('/', s);
s1 := s1 + Copy(s, 1, n);
s := Copy(s, n + 1, Length(s) - n);
n := Pos('/', s)
end;
end;
 
哦,就这个问题iapollo的方法是可以实现得。那如果把他看成字符串来看待,如何解决
iaollo呆会儿给分!!!!
 
改进了一下!!!
var
n: Integer;
s, s1: string;
begin
s:= parentRoot;
repeat
n := Pos('/', s);
s1 := s1 + Copy(s, 1, n);
s := Copy(s, n + 1, Length(s) - n);
n := Pos('/', s)
until n = Length(s);
end;
 
StrUtils
str:=ReverseString('F:/www.52delphi.com_下载/down/');
i:=pos(str,'/');
str:=ReverseString(copy(str,i,length(str)-i+1)
 
谢谢dz2050大哥,让我又多知道了一个函数!谢谢[:)]
 
多人接受答案了。
 
不好意思,上面的错了
str:=ReverseString('F:/www.52delphi.com_下载/down/');
str:=copy(str,2,length(str));
i:=pos('/',str);
str:=ReverseString(copy(str,i,length(str)-i+1));
showmessage(str);
 
后退
顶部