Copy(fn, 1, Length(fn) - Length(ExtractFileExt(fn)))fn是文件名。
解决方案 »
- 新手进门,初来此地,敬请关照,献分100,多谢多谢!!!
- 求助: 请高手帮忙写一个函数, 我总是写不好!(pascal 基础问题)
- 动态的生成VCL组件,大家看看有什么问题(主要有没有基础性错误), 代码经测试通过!
- 请问,如何在程序中动态注册ODBC数据源?
- 动态查询问题~~~~求解~~
- 求:如何在StatusBar上加进度条?
- Gina 出炉了 ???
- 为何拦截不到消息(50分)
- 关于trystrtodatetime函数的问题
- 为什么debug状态下和编译成.exe运行后的结果不一样?(50分送上,谢谢)
- 谁有办法做不规则的form?
- 如何利用delphi使用oracle存储过程返回的数据集!
ExtractFileExt(string):string;//获得扩展名;
2。 filename:=ExtractFileName(Filename:string):string;
positon:=pos('.',filename);
newfilename:=Delete(filename,position,length(filename)-position);
wholeName:123.txt
filename:=copy(wholeName,1,length(wholeName)-4);filename:123
newfilename:=Delete(filename,position,length(filename)-position);
应为:
Delete(filename,position,length(filename)-position);
Delete 是一个过程
result:=copy(ExtractFilename(filename),1,pos(Extractfileext(filename),Extractfilename(filename))-1);
result:=changefileext(Extractfilename(filename),'');
如果带路径的话还方便一点儿:
result:=changefileext(filename,'');
1。ExtractFileName(String):string;
ExtractFileExt(string):string;
2。 filename:=ExtractFileName(Filename:string):string;
positon:=pos('.',filename);
newfilename:=Delete(filename,position,length(filename)-position);
str1 := Application.ExeName; //获得当前执行文件的文件名
ExtractFileName(Str1);//获得当前执行文件的文件名;
ExtractFilePath(str1);//获得当前执行文件的路径
if OpenDialog1.ExeCute then
begin
str1 := ExtractFileName(OpenDialog1.Filename);
n := pos('.',str1)
str2 := copy(Str1,1,n-1)//这便是你想要的!
end;
if OpenDialog1.ExeCute then
begin
str1 := ExtractFileName(OpenDialog1.Filename);
n := pos('.',str1)
str2 := copy(Str1,1,n-1)//这便是你想要的!
end;
function TForm1.GetMaskString(S,Mask:string;Position:integer):string;
var Str:string;
i,Len:integer;
begin
Str:='';
for i:=0 to Position -1 do
begin
if (Pos(Mask,S)<=0) then //最后
begin
Str:=S;
Break;
end;
Str:=Copy(S,1,Pos(Mask,S)-1);
Len:=Length(Str);
S:=Copy(S,Len+2,Length(S)-Len-1);
end;
Result:=Str;
end;procedure TForm1.Button1Click(Sender: TObject);
var str:string;
begin
if opendialog1.execute then
begin
//过滤文件名称。
str:=getmaskstring(str,'\',100);
//过滤所要的文件名称。
str:=getmaskstring(str,'.',1);
showmessage(str);
end;
end;
不过看到Kingron的回答我就失望了----没我啥事了!
Var
FileNameStr:String;
FilePathName: PChar; //全路径;
iK,jK:integer;
begin
iK:= 0;
jK:= 0;
FilePathName:= '\C:\temp\123.txt';
FileNameStr:= '';
for iK:= length(FilePathName) downto 1 do
begin
if FilePathName[iK]<>'.' then Continue
else
begin
jK:= iK-1;
Break;
end;
end;
for iK:= jK downto 1 do
begin
if FilePathName[iK]<>'\' then FileNameStr:= FilePathName[iK]+FileNameStr
else Break;
end;
Showmessage(FileNameStr);
Var
FileNameStr:String;
FilePathName: PChar; //全路径;
iK,jK:integer;
begin
iK:= 0;
jK:= 0;
FilePathName:= '\C:\temp\123.txt';
FileNameStr:= '';
for iK:= length(FilePathName) downto 1 do
begin
if FilePathName[iK]<>'.' then Continue
else
begin
jK:= iK-1;
Break;
end;
end;
for iK:= jK downto 1 do
begin
if FilePathName[iK]<>'\' then FileNameStr:= FilePathName[iK]+FileNameStr
else Break;
end;
Showmessage(FileNameStr);
kingron方法就行。奇怪?为什么?
看看ChangeFileExt();函数,他返回便完后缀的文件名。
var
xName: string;
begin
XName := ChangeFileExt(xName, '');
Showmessage(xName);
end;
这么多办法:我想edwardrao应该已经解决问题了吧!???