急:怎样统计在一个文件夹中具有某一特定后缀的文件个数啊?又怎样才能遍历这些文件呢(事先不知道这些文件的数量及名字)?(50分)

  • 主题发起人 主题发起人 sweetychild
  • 开始时间 开始时间
S

sweetychild

Unregistered / Unconfirmed
GUEST, unregistred user!
急:怎样统计在一个文件夹中具有某一特定后缀的文件个数啊?又怎样才能遍历这些文件呢急:怎样统计在一个文件夹中具有某一特定后缀的文件个数啊?又怎样才能遍历这些文件呢(事先不知道这些文件的数量及名字)?<br>最好给写几行源玛,先谢啦
 
我将你的函数加入到我的单元中并在PUBLIC部分声明了它,可是运行通不过提示“unsatisfied forward or external declaration:'tform1.findall'”<br>这是为什么,提示行就在PUBLIC声明FINDALL部分
 
对了,忘了说声“谢谢帅哥”了:)<br>
 
这样:<br>1、加入一个FileListBox控件<br>2、设它的Mask 为 比如:*.txt<br>3、文件个数:filenum=FileListBox-&gt;Items-&gt;Count;<br>4、遍历:<br>&nbsp; for(i=0;i&lt;filenum;i++)<br>&nbsp; {<br>&nbsp; &nbsp; &nbsp;filename = &nbsp;FileListBox1-&gt;Items-&gt;Strings;<br>&nbsp; &nbsp; &nbsp;。。。。。。<br>&nbsp; &nbsp;}<br>5、你用delphi的话把 = 变为 := &nbsp; &nbsp;-&gt; 变为 &nbsp; . &nbsp; &nbsp;然后替代for循环。
 
procedure TForm1.FindAll(Path: String);<br>var<br>&nbsp; sr:TSearchRec;<br>&nbsp; fr:Integer;<br>begin<br>if length(path) &lt;&gt; 3 then<br>&nbsp; Path := path+'/*.*'<br>&nbsp; else<br>&nbsp; Path := path+'*.*';<br>fr:=FindFirst(Path,faAnyFile,sr);<br>while fr=0 do<br>&nbsp; begin<br>&nbsp; &nbsp; //处理文件<br>&nbsp; &nbsp; if pos('txt',sr.name)&gt;0 then<br>&nbsp; &nbsp; showmessage(sr.name);<br>&nbsp; fr:=FindNext(sr);<br>&nbsp; end;<br>FindClose(sr);<br>end;
 
&gt;&gt;kingdeezj:还是那个问题呀,仍然没解决<br>&gt;&gt;李衍智:for循环中将执行完最后一条符合条件的文件处理后会出现提示:project project1.exe raised exception class estringlisterror with message'list index out of bounds(7)'process stopped.use step or run to continue.<br>其中filenum是等于7的,不知道为什么<br>谢谢大家:)
 
filelistbox的item是0基的,也就是filenum=7,最后一个是item-&gt;Strings[6].<br>你循环搞错了。
 
的确是这个原因,谢谢李大哥:)
 
不用放到PUBLIC里进行声明。
 
不好意思分不多,谢谢两位大哥:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部