//从右至左遇到第一个字符P就将后面字符串截断
function Cut_Tail(p:char;s:string):string;
var
  l,i:integer;
begin
  l:=length(s);
  for i:=l downto 1 do
  begin
    if s[i]=p then break;
  end;
  Cut_Tail:=copy(s,1,i);
end;剩下的就不说了,自己改改就能得到后缀名了!

解决方案 »

  1.   

    function LastPos(SearchStr, Str: string): Integer; 
    var  
      i: Integer; 
      TempStr: string; 
    begin 
      Result := Pos(SearchStr, Str); 
      if Result = 0 then Exit; 
      if (Length(Str) > 0) and (Length(SearchStr) > 0) then 
      begin 
        for i := Length(Str) + Length(SearchStr) - 1 downto Result do 
        begin 
          TempStr := Copy(Str, i, Length(Str)); 
          if Pos(SearchStr, TempStr) > 0 then 
          begin 
            Result := i; 
            break; 
          end; 
        end; 
      end; 
    end; function LastPos(SubStr, S: string): Integer; 
    var 
      Found, Len, Pos: integer; 
    begin 
      Pos := Length(S); 
      Len := Length(SubStr); 
      Found := 0; 
      while (Pos > 0) and (Found = 0) do  
      begin 
        if Copy(S, Pos, Len) = SubStr then 
          Found := Pos; 
        Dec(Pos); 
      end; 
      LastPos := Found; 
    end; 
      

  2.   

    var
      iPos: Integer;
      sExt: String;
    begin
      iPos := LastDelimiter(':\.', sFileName);
      sExt := Copy(sFileName, iPos+1, Length(sFileName));
    end;
      

  3.   

    GreensPan(GreensPan) 说得对。Delphi本身就有判断文件后缀名的函数
    ExtractFileExt();
      

  4.   

    To Kingron(单身走我路……) 大师: 你的第一个Function可以修改吗?function LastPos(SearchStr, Str: string): Integer; 
    var  
      i: Integer; 
      TempStr: string; 
    begin 
      Result := Pos(SearchStr, Str); 
      if Result = 0 then Exit; 
      if (Length(SearchStr) > 0) and (Length(Str) > Length(SearchStr))  then 
      begin 
        for i := Length(Str) - Length(SearchStr) + 1 downto Result do 
        begin 
          TempStr := Copy(Str, i, Length(Str)); 
          if Pos(SearchStr, TempStr) > 0 then 
          begin 
            Result := i; 
            break; 
          end; 
        end; 
      end; 
    end;