如何把后缀名去掉!谢谢!

huiler 2002-12-30 04:58:19
有什么函数可以把后缀名去掉呢?望告知道,谢谢!酬谢!
...全文
339 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhanger 2002-12-31
  • 打赏
  • 举报
回复
都是api,太
fxm611 2002-12-31
  • 打赏
  • 举报
回复
ExtractFileName
wjlsmail 2002-12-30
  • 打赏
  • 举报
回复
写的繁一点
---------------------

function DelFileExt(FileName : String ): string;
var
I,j: Integer;
s : String ;
Source : String ;
begin
Source := FileName ;
j := 0 ;
I := 1 ;
while I <> 0 do
begin
I := Pos('.',FileName) ;
if I = 0 then
begin
I := J ;
Break ;
end
Else
begin
S := Copy(FileName,(i+1),(Length(FileName) - I)) ;
FileName := S ;
j := I + J ;
End;
end;
FileName := Source ;
if I = 0 then Result := FileName
Else
Result := Copy(FileName, 1, I - 1);
end;


wjlsmail 2002-12-30
  • 打赏
  • 举报
回复
我错了:)
wjlsmail 2002-12-30
  • 打赏
  • 举报
回复
阿 ,文件名中还有 . ? 我天 ~~~~
ahuige 2002-12-30
  • 打赏
  • 举报
回复
wjlsmail(计算机质子) (
你的这个程序没有考虑文件名中有'.'的情况哦?
CityhunterID 2002-12-30
  • 打赏
  • 举报
回复
我认为 wjlsmail(计算机质子) 的不错。
wjlsmail 2002-12-30
  • 打赏
  • 举报
回复
用 ChangeFileExt('FileName','.后缀形式') 最方便

如ehom(?!) 写的
wjlsmail 2002-12-30
  • 打赏
  • 举报
回复

//也去后缀

function DelFileExt(const FileName : String ): string;
var
I: Integer;
begin
i := Pos('.',FileName) ;
if I = 0 then Result := FileName
Else
Result := Copy(FileName, 1, I - 1);
end;
goodloop 2002-12-30
  • 打赏
  • 举报
回复
copy的方法,
先ExtractFileName得到name再name:=copy(name,1,length(name)-4);
liaoqingpeng 2002-12-30
  • 打赏
  • 举报
回复
ExtractFileName(ChangeFileExt(FileName,''));
ahuige 2002-12-30
  • 打赏
  • 举报
回复
楼上写的东西看起来好麻烦。
我说点简单的,
如果你保证后缀是三个字母
fname:=copy(fname,1,length(fname)-4);
如果不能保证是三个就用
for i:=length(fname) downto 1 do
if fname[i]='.' then
begin
id:=i;
exit;
end;
fname:=copy(fname,1,length(fname)-id);
liaoqingpeng 2002-12-30
  • 打赏
  • 举报
回复
ExtractFileName(ChangeFileExt(FileName));
ehom 2002-12-30
  • 打赏
  • 举报
回复
function ChangeFileExt(const FileName, Extension: string): string;
var
I: Integer;
begin
I := LastDelimiter('.' + PathDelim + DriveDelim,Filename);
if (I = 0) or (FileName[I] <> '.') then I := MaxInt;
Result := Copy(FileName, 1, I - 1) + Extension;
end;

SysUtils单元中,改下:

function DelFileExt(const FileName): string;
var
I: Integer;
begin
I := LastDelimiter('.' + PathDelim + DriveDelim,Filename);
if (I = 0) or (FileName[I] <> '.') then I := MaxInt;
Result := Copy(FileName, 1, I - 1);
end;
ehom 2002-12-30
  • 打赏
  • 举报
回复
NewFileName:=ChangeFileExt('C:\a.txt','')
rlongriver 2002-12-30
  • 打赏
  • 举报
回复
ExtractFileName
ExtractFileExt
ExtractFilePath

好象直接就能用啊
liaoqingpeng 2002-12-30
  • 打赏
  • 举报
回复
function ExtractFileNameWithoutExt(const FileName: string): string;
var
iBegin, iEnd: Integer;
begin
iBegin := LastDelimiter(PathDelim + DriveDelim, FileName);
iEnd := LastDelimiter('.' + PathDelim + DriveDelim, FileName);
if (iEnd > 0)and(FileName[iEnd] = '.') then
Result := Copy(FileName, iBegin+1, iEnd-iBegin-1)
else
Result := Copy(FileName, iBegin+1, MaxInt);
end;
wuweijie 2002-12-30
  • 打赏
  • 举报
回复
ExtractFileName
ExtractFileExt
ExtractFilePath
happyzsl 2002-12-30
  • 打赏
  • 举报
回复
还要去掉点号
happyzsl 2002-12-30
  • 打赏
  • 举报
回复
ExtractFileName
ExtractFileExt
ExtractFilePath

配合着用,
文件名 - 文件扩展名
加载更多回复(1)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧