Record 操作问题! ( 积分: 100 )

  • 主题发起人 主题发起人 prtmon
  • 开始时间 开始时间
P

prtmon

Unregistered / Unconfirmed
GUEST, unregistred user!
现有定义如下:<br>&nbsp;&nbsp;TMyRecord1=packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;filed1:string;<br>&nbsp;&nbsp;&nbsp;&nbsp;filed2:smallint;<br>&nbsp;&nbsp;end<br>&nbsp;&nbsp;TMyRecords=packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;count:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;recordData:array&nbsp;[0..0]&nbsp;of&nbsp;TMyrecord1;<br>&nbsp;&nbsp;end<br><br>&nbsp;&nbsp;怎样操作新增一个tmyrecord1进tmyrecords里,每增加1个需要分配分配内存吗?<br>&nbsp;&nbsp;删除时又怎样操作?<br><br>谢!
 
如果用TQueue来作的话,又应该如何做呢?
 
呵呵,这个问题是太简单而没人回答吗?<br>还是太难啊
 
关注一下<br>&nbsp;&nbsp;TMyRecord1=packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;filed1:string;<br>&nbsp;&nbsp;&nbsp;&nbsp;filed2:smallint;<br>&nbsp;&nbsp;end<br>&nbsp;&nbsp;TMyRecords=packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;count:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;recordData:array&nbsp;[0..0]&nbsp;of&nbsp;TMyrecord1;<br>&nbsp;&nbsp;end<br><br>var&nbsp;record1:TMyRecord1;<br>&nbsp;&nbsp;&nbsp;&nbsp;record2:Tmyrecords;<br>record1.filed1:='xx';<br>record1.filed2:='xx';<br>record2.count:=sizeof(record1);<br>record2.recordData[0]:=record1;<br>不知道对不对,我自己的理解
 
to&nbsp;asksomeone:<br>record2.count:=sizeof(record1);<br>count属性我是想来标识有多少个record1的.<br><br>当我定义好record1后,再用<br>record2.count:=record2.count+1;&nbsp;<br>record2.recorddata[record2.count-1]:=record1;//出错<br>为什么
 
如果想你那样用,改成这样吧<br>&nbsp;&nbsp;TMyRecords=packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;count:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;recordData:array&nbsp;[0..(MAXINT-SizeOf(Integer))&nbsp;div&nbsp;SizeOf(TMyrecord1)-1]&nbsp;of&nbsp;TMyrecord1;<br>&nbsp;&nbsp;end
 
奇烂无比的数据结构设计
 
楼上的话说早了。Windows里面很多结构就是这样设置的(我说的是&nbsp;array&nbsp;[0..0]&nbsp;of&nbsp;....)
 
不明白你干吗费这劲,做个类多好.<br>而且就算使用简单变量,<br>TMyRecords=packed&nbsp;record<br>&nbsp;&nbsp;&nbsp;&nbsp;:integer;<br>&nbsp;&nbsp;&nbsp;&nbsp;recordData:array&nbsp;[0..0]&nbsp;of&nbsp;TMyrecord1;<br>&nbsp;&nbsp;end<br>也没有存在的价值,count字段也没用.<br>多记录,可直接记录数组就行了<br><br>TMyRecords=array&nbsp;of&nbsp;TMyrecord1;<br><br>使用前先&nbsp;setlength
 
做成这样是因为后一个结构还有一些公共属性,所以用array&nbsp;of&nbsp;tmyrecord1达不到要求,我后来将array&nbsp;[0..0]&nbsp;of&nbsp;&nbsp;tmyrecord1&nbsp;改成array&nbsp;of&nbsp;tmyrecord1,然后setlength可以达到要求。
 
多人接受答案了。
 

Similar threads

后退
顶部