var
str:string;
begin
aa:='c:\aaa\bbb\ccc.exe';
str:=copy (aa,1,10);
label1.caption:=str;
end;

解决方案 »

  1.   

    取子串用Copy函数,取路径可用ExtractFilePath或ExtractFileDir函数
    如,上例可写成
    aa:=c:\aaa\bbb\ccc.exe
    aa := ExtractFilePath(aa);
      

  2.   

    如果你只是用来提取目录的话,
    aa := ExtractFileDir('c:\aaa\bbb\ccc.exe')+'\';
      

  3.   

    copy--返回字符串的字串
    delete--从字符串中删除指定的字符串
    详细用法可察看delphi help
      

  4.   

    对了,weizhi(行者) ,我现在用installshield打包以后,还是不能动态的注册ODBC数据源,看来是不是要写代码,我有一份代码,可是不知要再哪里的脚本里面改setupregistry函数?
      

  5.   

    for i:=0 to Length(aa)-1 do
      if aa[Length(aa)-i]='\' then
      begin
        aa:=Copy(aa,1,i);
        break;
      end;
      

  6.   

    function MyStr(sStr:String):String;
    var ii:Integer;
        str:String;
    begin
      str := sStr;
      result := '';
      while POS('\',str) > 0 then
      begin
        Result := Result + Copy(str,1,POS('\',str));
        str := Copy(str,POS('\',str)+1,Length(str));
      end;
    end;
      

  7.   

    对不起,genphone_ru(票票) ,weizhi(行者) ,我是在application.initialize前作这些事,所以ExtractFileDir会报错的,555
    用inbud(清风侠)的方法可以,如果要截到斜杠的话,你的程序应该是
     for i:=0 to Length(aa)-1 do
      if aa[Length(aa)-i]='\' then
      begin
        aa:=Copy(aa,1,i+2);
        break;
      end;
    不过还是谢谢你!
     
      

  8.   

    因该在application.initialize只后再做吗,LastDelimiter可以找到你要的最后一个字符的位置,然后copy就好了
      

  9.   

    为什么喜欢在Initialize的前面做呢?根本没有必要啊,只要在主窗口show之前都是可以达到不显示窗口,就做处理的啊
    不要搞得那么复杂
      

  10.   

    我一直在用以下函数,虽然笨但很有效.  Feng是分隔符
    aa:=c:\aaa\bbb\ccc.exe
    Gshow_title(aa,'\',1);  Print  ccc.exe
    Gshow_title(aa,'\',2);  Print  c:\aaa\bbb\
    Gshow_title(aa,'\',3);  Print  c:
    Gshow_title(aa,'\',4);  Print  aaa\bbb\ccc.exefunction Gshow_title(str,feng:string;lei:integer):string;
    var i,k:integer;
    begin
    str:=trim(str);
    feng:=trim(feng);
    case lei of
    1:begin//拆除单项,在后
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = trim(feng)
          then k:=i+1;
                               end;//for
    result:=copy(str,k,length(str));
      end;
    2:begin//拆除单项,在前  
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = trim(feng)
          then k:=i-1;
                               end;//for
    result:=copy(str,1,k);
      end;
    3:begin//拆除单项,在前
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = trim(feng)
          then begin
                k:=i-1;
                break;
               end;
                               end;//for
    result:=copy(str,1,k);
      end;
    4:begin//拆除单项,在后
    k:=0;
    for i:=1 to length(str) do begin
       if str[i] = trim(feng)
          then begin
                k:=i+1;
                break;
               end;
                               end;//for
    result:=copy(str,k,length(str));
      end;
    end;
    end;
      

  11.   

    呵呵,你在DPR文件的前面加入:
    program Project1;uses
      SysUtils, //加入此行就可以在其中的任何地方用
    ExtractFilePath()等函数了