+ -
当前位置:首页 → 问答吧 → fileread 读record文件 字符部分老是显示空白 求高手解答

fileread 读record文件 字符部分老是显示空白 求高手解答

时间:2011-08-09

来源:互联网

写文件的代码
  yy=record
  i:integer;
  v:string;
  b:word;
  end;
  .....
var
  Form1: TForm1;
  y:yy;
procedure TForm1.Button1Click(Sender: TObject);
var
 h:integer;
begin
 h:=fileopen('.\db.db',fmOpenReadWrite or fmShareDenyNone);
 y.i:=10;
 y.v:='yaohaming';
 filewrite(h,y,sizeof(yy));
 fileclose(h);
end;
读文件的程序
type
  yy=record
  i:integer;
  v:string;
  b:word;
  end;
var
  Form1: TForm1;
  y:yy;
procedure TForm1.Button1Click(Sender: TObject);
var
  h:integer;
begin
  h:=fileopen('.\db.db',fmOpenRead);
  fileread(h,y,sizeof(yy));
  showmessage(y.v);
  fileclose(h);
end;
读文件的程序 读y.i整型能正常读 但读y.v字符型显示空白,并且关闭读文件的程序 地址报错 何解 求高手指点一二呀

作者: king2000gw   发布时间: 2011-08-09

发这多帖干吗?

作者: maozefa   发布时间: 2011-08-09

原因很简单。
string 就是一个指针。
它实际的内容并没有保存进去。
或者用 string[100] 或者 array [0..99] of Char
或者就一个字段一个字段的保存。没办法用结构体直接保存。

作者: iamduo   发布时间: 2011-08-09