关于截取字符串问题(50分)

  • 主题发起人 主题发起人 潮州人
  • 开始时间 开始时间

潮州人

Unregistered / Unconfirmed
GUEST, unregistred user!
现有字符串'f:/backup/file'想取得'f:/backup/'用什么函数,怎么样实现
 
Copy函数。
Str := Copy('f:/backup/file',1,10)
 
我也想知
我是这样实现的
;if SaveDialog1.Execute then
; begin
; ;s1:=savedialog1.FileName;
; ;s2:=s1;
; ;t:=0;
; ;while Pos('/', S2) > 0 do
; ;begin
; ; ;t:=Pos('/', S2);
; ; ;S2[t]:='9';//这个9没有意义的用来替'/'的
; ;end;
; ;delete(s1,t,length(s1)-t+1); //删除文件名称
; ;s1:=s1+'/';
end
 
但是我前面的字符串是动态的,应该截取最后'/'出现之前的字符,是这个意思.
 
Str := Copy('f:/backup/file',1,10)
 
多次一举
 
ExtractFilePath('f:/backup/file')
还有其他各个函数,看看help吧
 
写一个通用函数,返回字符在串中最右边的位置:
function RPos(C:Char; const S:String):Byte;
begin
; result:=Length(S);
; while (result>0) and (S[result]<>C) do Dec(result);
end;
然后可以如下调用:
s:=Copy(Src,1,Rpos('/',Src));//Src为串'f:/backup/file'
 
function Rs(C:Char;S:String):string;
begin
;result:='';
;while pos(c,s)>0 do
; begin
; ;result:=result+copy(s,1,pos(c,s));
; ;delete(s,1,pos(c,s));
; end;
end;

然后可以如下调用:
s:=Rs('/',Src));//Src为串'f:/backup/file'
 
多人接受答案了。
 
后退
顶部