如何把TStrings存入记录文件中?

zhangdabao 2007-04-12 11:38:39
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TDDML=Record //调度命令
CZBZ:TStrings;//操作步骤
end;
DDMLFileType=file of TDDML;
TForm1 = class(TForm)
StringGrid1: TStringGrid;
WriteButton: TButton;
ReadButton: TButton;
procedure WriteButtonClick(Sender: TObject);
procedure ReadButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.WriteButtonClick(Sender: TObject);
var DDML:TDDML;
DDMLFile:DDMLFileType;
FileName:string;//文件名
begin
FileName:='c:\调度命令';
AssignFile(DDMLFile,FileName);
if FileExists(FileName) then
Reset(DDMLFile)
else
Rewrite(DDMLFile);
DDML.CZBZ:=TStringList.Create;
DDML.CZBZ.Add('第一步');
DDML.CZBZ.Add('第二步');
seek(DDMLFile,0);
write(DDMLFile,DDML);
CloseFile(DDMLFile);
end;

procedure TForm1.ReadButtonClick(Sender: TObject);
var DDML:TDDML;
DDMLFile:DDMLFileType;
FileName:string;//文件名
i:Integer;
begin
FileName:='c:\调度命令';
AssignFile(DDMLFile,FileName);
if FileExists(FileName) then
Reset(DDMLFile)
else
Rewrite(DDMLFile);
if FileSize(DDMLFile)<>null then
begin
seek(DDMLFile,0);
Read(DDMLFile,DDML);
end;
CloseFile(DDMLFile);
for i:=0 to DDML.CZBZ.Count-1 do
StringGrid1.Cells[0,i]:=DDML.CZBZ[i];
end;
end.

运行程序,点击WriteButton后,再点击ReadButton,StringGrid1中会正确地显示操作步骤,
关掉程序,再重新运行,如果直接点击ReadButton,就会出现如下错误:
"Access violation at address 5320534D. Read of address 5320534D."
如何把TStrings存入记录文件中?
...全文
211 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HsWong 2007-04-13
  • 打赏
  • 举报
回复
直接用TStrings的SaveToFile及LoadFromFile方法
zuoansuifeng 2007-04-13
  • 打赏
  • 举报
回复
确实存在很多的问题~~
alexanda2000 2007-04-13
  • 打赏
  • 举报
回复
Delphi里的对象变量都是指针,你这样写只是把TStrings的指针地址写进去了,写进去之后马上读出来没有问题,但当下次运行时,原来的地址已经不再属于你的程序了,所以会出错。
xiaocai800322 2007-04-13
  • 打赏
  • 举报
回复
关注
cncharles 2007-04-13
  • 打赏
  • 举报
回复
var DDML:TDDML;
begin
DDML.CZBZ:=TStringList.Create;

这里DDML都没有实例化, 就引用它的属性?

很多问题, 不想看

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧