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