如何判断文件名是否有效? (300分)

  • 主题发起人 主题发起人 浦欣
  • 开始时间 开始时间
我也来踢一脚
 
请介绍一些Windows Service下编程的书籍或资料?
 
李维写的《Delphi 6/Kylix 2 SOAP/Web Service程序设计篇》 RMB 65
机械工业出版社
 
to jabing:
我说的是编写Service方面的资料,不是Web Service,难到它们差不多!
 
我记得好象可以通过COM对象的地址达到公用一个COM对象,不过想不起来怎么用的了,周末回去查查
另外你可以看看《DELPHI COM深入编程》这本书
 
我现在已经可以在普通程序中公用一个COM对象,但当一个在Service中,一个是普通程序时就不行了!
 
请问你是利用什么方法查找COM对象的?
 
请问有没有这样的函数?(我记得在哪儿看到过)
 
sFN := 'fsafasdfsadf.fasf';
if FileExists(sFN) then
ShowMessage('有效')
else
ShowMessage('无效');
 
1楼的好像只能判断文件是否存在啊。
不能判断文件名是否有效啊!
 
无效的文件名都是不存在的!你可以试一下!
 
如果我新建文件怎么知道它是否有效?
 
在W2k+D5上运行通过
procedure TForm1.Button1Click(Sender: TObject);
var
sFN: String;
TxtF: TextFile; //日志文件
begin
sFN := 'f:/^%*!.kcvj aa.txt';
try
AssignFile(TxtF, sFN); //打开文件
Append(TxtF);
Writeln(TxtF, '测试');
Writeln(TxtF, '检测要生成的文件名是否有效?');
CloseFile(TxtF);
showmessage('有效');
except
Showmessage('无效');
end;
end;
 
很简单,按windows的命名规则:
文件名最多可以包含 215 个字符(包括空格)。但不推荐使用 215 个字符创建文件名。大多数程序不能解释很长的文件名。文件名不能含有以下字符:
/ / : * ? " < > |
写个过程判断一下就行了。
下面的过程把rems中的非法字符全部删除,保证文件名合法:
procedure renf(var s1:string;s2:string);
begin
if pos(s2,s1)<>0 then
repeat
delete(s1,pos(s2,s1),1)
until pos(s2,s1)=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
renf(tems,'/');
renf(tems,'/');
renf(tems,':');
renf(tems,'*');
renf(tems,'?');
renf(tems,'"');
renf(tems,'<');
renf(tems,'>');
renf(tems,'|');
end;
如果只是判断,那更简单了。
 
谢谢zw84611!
(我要的就是windows的命名规则)
 
原来的问题已绕过去,散分!
 

Similar threads

回复
0
查看
825
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
922
SUNSTONE的Delphi笔记
S
后退
顶部