请看看我这段文件存取的程序有什么问题,高分相送!!!!(100分)

  • 主题发起人 主题发起人 janb
  • 开始时间 开始时间
J

janb

Unregistered / Unconfirmed
GUEST, unregistred user!

type
PClientInfo =^TClientInfo;
TClientInfo =Packed Record
Client_Name: String;
CLient_Index: Integer;
CLient_IP : String;
end;

var ClientInfo: array[0..9] of TClientInfo;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
test:file;
const filename:string='test.txt';
begin

if fileexists(filename) then
begin
AssignFile(test,filename);
Reset(Test,1);
BlockRead(test,ClientInfo[1],sizeof(TClientInfo));
CloseFile(test);
end
else
begin
ClientInfo[0].Client_Name :='test';
ClientInfo[0].CLient_Index :=1;
ClientInfo[0].CLient_IP :='222.1.6.169';
ASSignFile(test,filename);
Rewrite(test,1);
BlockWrite(test,ClientInfo[0],sizeof(TClientInfo));
reset(test,1);
BlockRead(test,ClientInfo[1],sizeof(TClientInfo));
CloseFile(test);
end;
Edit1.Text:=format('%s',[ClientInfo[1].CLient_Name]);
Edit2.Text:=Format('%d',[ClientInfo[1].Client_Index]);
Edit3.Text:=Format('%s',[clientInfo[1].Client_IP]);
end;

当程序不是第一次运行时,从文件test里取不到记录,请问这是为什么?


 
把String改成短字符串看看?
 
Adnil
好像不行的
 
可能是
if fileexists(filename) then
begin
AssignFile(test,filename);
这个地方文件没有打开,你用绝对目录看看?
 
procedure TForm1.Button1Click(Sender: TObject);
var
test:file;
aa,bb:TClientInfo;
tempstream:TMemoryStream;
const filename:string='test.txt';
begin
tempstream:=TMemoryStream.create;
try
if fileexists(filename) then
begin
tempstream.LoadFromFile(filename);
aa:= pClientInfo(tempstream.Memory )^;
end
else
begin
aa.Client_Name :='test';
aa.CLient_Index :=1;
aa.CLient_IP :='222.1.6.169';
tempstream.Write(aa,sizeof(aa));
tempstream.SaveToFile(filename);
end;
Edit1.Text:=format('%s',[aa.CLient_Name]);
Edit2.Text:=Format('%d',[aa.Client_Index]);

Edit3.Text:=Format('%s',[aa.Client_IP]);
finally
tempstream.free;
end;
end;
可怜亚,调了一个小时亚,给分把!
 
Kingron,这样不行,这不是解决问题的根本方法;
cxx1997, 你改变了我的结构,我原来的ClientInfo是个数组,因为我要存取得不止是一条记录
我对数据流不熟悉,请你看看能不能改成可以进行添加、删除等操作的数组。无论如何我都会
给你加分的。
谢谢大家了
 
把AA都改成ClientInfo[1]就是那,兄弟,实在不行,你可以这样
ClientInfo[1]:=aa;
我今天实在太忙了!
 
虽然没有完全解决,但该给分还是给分。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
675
import
I
I
回复
0
查看
461
import
I
后退
顶部