读书人

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

发布时间: 2012-09-03 09:48:39 作者: rapoo

关于文本文件操作问题,求解!
今天无意搜索了到一篇文章,内如如下:
(文章已被多人转载,但没有人去考究对错质量,就如五柳先生一样,只求其量不求甚解!!)
-------------------------
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的绝对路径下有文件就可以了

读书人网 >.NET

热点推荐