关于文本文件操作有关问题,求解

关于文本文件操作问题,求解!
今天无意搜索了到一篇文章,内如如下:
(文章已被多人转载,但没有人去考究对错质量,就如五柳先生一样,只求其量不求甚解!!)
-------------------------
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
  Edit1: TEdit;
  Button1: TButton;
  procedure FormCreate(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
  procedure Button1Click(Sender: TObject);
 private
  { Private declarations }
 public
  { Public declarations }
 end;

var
 Form1: TForm1;
 mylist:TStringlist;
 i,a:integer;{i用来统计mylist的count,判断是不是到了mylist的最后一行;a用来重复递加,以便读取下一行}
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
a:=0;{赋a值为0,以便按button1时读mylist的第一行}
if fileexists('E:\aa.txt') then
 begin
  mylist:=TStringlist.Create;
  mylist.LoadFromFile('E:\aa.txt');{读文件到mylist}
 end;
i:=mylist.Count;{获得mylist的count} 当运行代码出错停留在这里,请问高手什么原因??
button1.Caption:='开始';
edit1.text:='按[开始]键读第一行';
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 if a<>i then{判断a是否为i,既不是mylist的未尾}
  begin
  button1.Caption:='下一行';
  edit1.Clear;{清除edit1的上一行内容}
  edit1.Text:=mylist.Strings[a];{添加一行}
  a:=a+1;{a值加1,既为下一行}
  end
 else{如果到mylist未尾,赋a值为0,从第一行重开始}
  begin
  a:=0;
  edit1.Clear;
  showmessage('此行为文件未行,点击从第一行开始');
  edit1.Text:='请点击[重新开始]';
  edit1.SetFocus;
  button1.Caption:='重新开始';
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
mylist.Free;{释放mylist}
end;

end. 

--------------------------《完》-----------------------------------

------解决方案--------------------
文件e:\aa.txt不存在。
------解决方案--------------------
下断点调试看是否执行到了mylist:=TStringlist.Create;
------解决方案--------------------
代码没啥问题
可能原因是if fileexists('E:\aa.txt') then判断不成功,即mylist未创建
设断点运行看看

------解决方案--------------------
只要aa.txt的绝对路径下有文件就可以了