【发布时间】:2014-01-19 14:30:21
【问题描述】:
我正在为我的课程在 Delphi 中编写一个数据库,但遇到了一个问题。
UserRecord = record
Forename : string[20];
Surname : string[20];
Username : string[20];
Password : string[20];
gender : boolean;
end;
var
User : UserRecord;
NewUserForm: TNewUserForm;
UserFile : file of UserRecord;
UserArray : array[1..20] of UserRecord;
这是我的代码的精简版本,我希望能够将记录“UserRecord”保存到数组 UserArray 中,这是一件简单的事情,但是如果第一个已经有一个“用户”我的数组的入口点,它将覆盖它。我需要找到一种方法来检查数组以找到数组中的一个空点,这样我就可以将它保存在那里而不是不断地覆盖第一个入口点。
【问题讨论】:
-
不要使用固定长度的数组。使用
TList<UserRecord>的动态数组。不要使用短字符串。使用string。另外,性别不是Boolean!!! -
当您使用
file of record时,您应该将您的记录声明为packed,否则您将节省填充垃圾。 -
哦,别再使用记录文件了!
-
@DavidHeffernan 除非有库存
TFileStream<T>有时它可能是一个相当不错的概念。虽然只有 20 个元素,我更喜欢blockread全部。 OTOH,这可能是那些只教授旧的 Wirth-Pascal 风格的课程。 -
不要列出给大卫,否则你的课程作业会失败:-P
标签: arrays delphi save records