记录型文件能否任意存取?(100分)

  • 主题发起人 主题发起人 zj_cat
  • 开始时间 开始时间
Z

zj_cat

Unregistered / Unconfirmed
GUEST, unregistred user!
一个记录型文件,对中间任一记录能否任意进行贮存更新而不需要临时文件?或者有无其它类型文件或方法可以实现该功能?
 
可以的,对于这种文件,你用RESET后,想怎么样都可以,读、写、定位,
什么都可以。
其实文本文件也可以的,先定义一个TSTRINGS类型的变量,然后用LOADFROM
FILE方法从文本文件中读入,至于对TSTRINGS类型的变量的处理就可以很灵活了
最后用SAVETOFILE写回去就行了
 
应该可以的,
不过好久不用文件了,都忘了。
 

可以的!不然该法早就...
 
那么,第五条记录在更新后仍然是第五条吗
 
不知你所谓更新为何意思?
 
reset(f);
seek(f,4);
write(f,...);
第五条还是第五条,其他都不影响
 
你写入时是第几条就是第几条。读取时先用seek(f,RecNo)定位,
再用write(...)读取
 
1)定长记录
  通常记录型文件最适合于定长记录。
  每次增加实际上就是对文件追加,
  删除一个记录,通常是把文件最后一个记录移动到要删除的记录。
  修改就是覆盖写。
2)不定长记录
  这种处理比较麻烦,好一些的办法就是把不定长的部分放在单独的文件,
十条记录十个不定长文件(类似于DBF数据库的MEMORY字段),在主文件里记
录不定长部分所在文件的文件名(因此主文件就变为定长)。如果没有内容,
则文件名字段为空。删除时就是把那个单独文件删除,其它处理于定长相同。
  还有一种处理就更麻烦,就是全写在一个文件中,不定长部分的开始要记
录不定长的SIZE(长度),通常以追加方式增加记录,删除时采用对记录首加
标志的方法(带来日后需定期维护的麻烦)。没有实际意义的修改,而是删除
后在追加。
 
多谢,大家基本答案都对,我就中庸一点。
 

Similar threads

后退
顶部