菜鸟捉虫(31) 2001年 31期 上期正确答案:   要找到List1与List2中相同的城市名称,必须将List1的每一项与List2中的所有项进行比较,由于List1与List2中的城市名不可能完全相对应,所以第二个循环中List1.List(j)=List2.List(j)这样的作法不对,应该改成List1.List(i)=List2.List(j),这样就可以将List1的每一项与List2中的所有项进行比较,就不会遗漏相同的了。在程序中,还有一处错误在“MsgBox( “找到” + k + “个相同的城市!”, vbOKOnly + vbInformation,“结果”)”这一句中,错误的原因就是K是一个整型变量,要将值显示在MsgBox中,必须将这个类型转换成字符型才行,因此,将k写成Str(k)就可以了。   获奖名单:   江苏 陈震宇 山西 何 彬   辽宁 吴海正 四川 王中渝   重庆 任宏志   以上幸运读者将获得电脑报最新出版的《电脑报系列配套光盘》杂志一套。   本期题目:   这是一个关于Delphi的题目,要求列出指定目录中的所有文件(包括文件夹)。加入一个ListBox控件及一个Button控件,并将Button的Caption改为“列出所有文件”。实现这一功能的源代码如下:   function ListAllFiles:Integer;stdcall;   var   SearchRec: TSearchRec;   ReValue:Integer;   begin   ListBox1.Clear;   ReValue:=FindFirst('C:\*.*',faAnyFile,SearchRec);   While ReValue=0 Do   Begin   if SearchRec.Size =0 then   begin   if SearchRec.Attr >2 then //如果是文件夹将加上[]表示是文件夹   ListBox1.Items.Add('['+SearchRec.Name+']')   else   ListBox1.Items.Add(SearchRec.Name+'文件大小:'+IntToStr(SearchRec.Size)+'KB');   end   else   ListBox2.Items.AddSearchRec.Name + '文件大小:' + IntToStr(SearchRec.Size)+ ' KB');   FindNext(SearchRec);   End;   Result:=1;   end;   procedure TForm1.Button1Click(Sender:TObject);   begin   ListAllFiles;   end;