程序如下:
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;type
  TForm1 = class(TForm)
    edFile: TEdit;
    Label1: TLabel;
    edDir: TEdit;
    Label2: TLabel;
    btnProc: TButton;
    meoLog: TMemo;
    Memo1: TMemo;
    procedure btnProcClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.btnProcClick(Sender: TObject);
var
  FileList:TStringList;
  sName:string;
  i:Integer;
begin
  FileList:=TStringList.Create;
  FileList.LoadFromFile(edFile.Text);
  meoLog.Lines.Add('以下文件存在');
    begin
    sName:=FileList[i];
    if FileExists(edDir.Text+sName) then
    begin
      meoLog.lines.Add(sName);
    end
    else
    begin
      Memo1.Lines.Add(sName);
    end;
  end;
  Memo1.Lines.Add('以下文件不存在');
  for i := 0 to FileList.Count-1 do
  begin
    sName:=FileList[i]+'.mpg';
    if FileExists(edDir.Text+sName) then
    begin
      meoLog.lines.Add(sName);
    end
    else
    begin
      Memo1.Lines.Add(sName);
    end;
  end;
  FileList.Free;
end;end.
显示结果:现在的问题是不管"存在"或是"不存在"它都将结果显示在"不存在"里面 ,请高手指点.

解决方案 »

  1.   

    sName:=FileList[i]; 
    sName:=FileList[i]+'.mpg'; 
    以上两个sName的赋值有矛盾,到底带不带后缀
    而且
    meoLog.Lines.Add('以下文件存在'); 下面的取值没有循环,只有一个i,此时i还未被指定值,
    你得代码漏洞太多,还是仔细查查吧
      

  2.   

    LoadFromFile应该先判断文件是否存在
      

  3.   

      sName:=FileList[i];
    最开始这句的i值从哪来,都没有初始化procedure TForm1.Button1Click(Sender: TObject);
    var
      FileList:TStringList;
      sName:string;
      i:Integer;
    begin
      FileList:=TStringList.Create;
      FileList.LoadFromFile(edFile.Text);
      meoLog.Lines.Add('以下文件存在');
      Memo1.Lines.Add('以下文件不存在');
      for i := 0 to FileList.Count-1 do
      begin
        sName:=FileList[i];
        if FileExists(edDir.Text+sName) then
          meoLog.lines.Add(sName);
        else
          Memo1.Lines.Add(sName);
      end;
      FileList.Free;
    end;