请教一个动态数组与流操作的问题(75)

  • 主题发起人 honinbou
  • 开始时间
H

honinbou

Unregistered / Unconfirmed
GUEST, unregistred user!
是动态数组中包含动态数组的问题:先定义一个记录type TUserRecord = packed record ID: Byte
Name: array[0..7] of Char
Data: array[0..9] of Word
end;然后声明一个动态数组和一个内存流var ur: Array of TUserRecord
ms: TMemoryStream;接下来在某过程中实现begin ms := TMemoryStream.Create
ms.LoadFromFile('c:/x.dat');//试验文件 SetLength(ur,290);//TUserRecord的10倍长度 ms.Read(ur[0],290)
ShowMessage(ur[8].Name);//ur[8]可改为ur[0]至ur[9],均能得到正确结果end;以上OK。问题是,我要把TUserRecord里的Data: array[0..9] of Word;改为Data: arrayof Word;//动态数组,在过程里再指定它的长度。那么要怎样写才能得到正确结果?
 
SetLength(ur[0].name,100)
 
Data: array[0..9] of Word;这是一个连续的内存空间改为Data: arrayof Word
一个指针那么你写到Data的位置时,就需要写Data指向的内存才行了.也就是分段来写了,比较麻烦
 

Similar threads

S
回复
0
查看
958
SUNSTONE的Delphi笔记
S
S
回复
0
查看
779
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部