有关文件操作的问题(100分)

  • 主题发起人 主题发起人 www
  • 开始时间 开始时间
W

www

Unregistered / Unconfirmed
GUEST, unregistred user!
有一堆数据,姓名,性别,年龄,简历,要进行处理,用数据库加上驱动程序则文
件太大,想用Delphi的记录文件,可简历字段会超过255字符,我该怎么办???
type aaa=record
name:string[8];
sex:string[2];
age:integer;
简历:??????? //我该如何定义????
end;
我只要用文件操作的答案。
 
直接用String,它不限制长度,而且使用非常方便。
 
to 3h:
能否给我贴一段代码看看??
 
resume:string;
 
3W: 你的代码不用改,照hhh说的做就是了.
 
string不是只能是最大255吗???
 
stringlist也可以吧:-)
resume:TStringList;
 
STRING不限长度?
 
在记录中也不限长度?文件如何给它分配空间?
 
大家都够快的。
cytown:
不要用StringList,很麻烦的。
待我慢慢说来...
 
Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters
WideString ~2^30 characters 4 bytes to 2GB Unicode characters;

delphi4默认的string类型是AnsiString,长度达到2GB!
 
在DELPHI4上,
STRING缺省就是ANSISTRING,可达2GB。
如果加{$H-}编译,STRING最大是256BYTE。
 
-- string不是只能是最大255吗???
那是shortstring,而我们用的string缺省是AnsiString(最大长度2^31 characters),
你可以查看Delphi help 的String Types.
你可以这样定义:
TRec =record
name: array[0..7]of char;
sex: array[0..1]of char;
age: integer;
resume:string;
end;
 
String 从 Delphi 3 起开始不限长度,当然,D2还是限的,它就是255...
也就是D3以后的ShortString. 理论上,String不限长度,实际上还是限制的,
不过非常宽,只是受制于内存 - 你的字符串有那么大吗? :)
在新的字符串时,String 已不是简单的数组方式的存储了,Borland 采用了
许多新的技术,名称我就不记得了,反正是多个变量用同个地址空间什么的。
字符串的占用的地址空间是动态的,也就是说,因它的内容决定它的长度,也
就决定了在内存中占的空间。所以,它是通过内存的位置来引用的。这一点与
Integer,Char等不同,有点象动态数组。我觉得String应该就是动态数组,
一个字符型的压缩动态数组。(个人意见,不妥请指正)
因此,也就不存在:
> 在记录中也不限长度?文件如何给它分配空间?
这样的事,反正不限。
另外,用String也能很方便与Memo之类的文本函接。如
MyText: String;
...
MyText := Memo1.Text;
后面只需要:
Memo1.Text := MyText;
自然会是已换了行的。比StringList方便多了。
不过StringList也有好处,就是删除某一行方便。
 
&,依我看,连名称也一并定义成String算了免得出现意外:
type aaa=record
name:string;
性别建议用Boolean,节省一点内存,等到用时再转换。
sex:Boolean;
Ture = 女,False = 男,我就是喜欢True=MM你能吧我怎么样? :)
 
大家别乱出馊主意,
还有考虑处理(包括读与写)的方便。
这样吧:
TRec =record
name: array[0..7]of char;
sex: array[0..1]of char;
age: integer;
resumesize:integer;
resume:string;
end;
 
不错,佩服!
 
type
aTRec =record //TRec不能做变量名
name: array[0..7]of char;
sex: array[0..1]of char;
age: integer;
resumesize:integer;
resume:string;
end;

var wjfile:file of aTrec;
上面的定义出错!!!!!!!!!!!!!
错误是:type 'atrec' needs finalzation -not allowed in fle type
 
var wjfile:file;
// of aTrec
BlockRead
BlockWrite
 
file of atrec 好像从没有这样的描述吧??
你可以把文件声明称 *。ini 或 *。txt 文件,读数据时再从 ini 或 txt 文件中
调出
var file :tinifile ;
后用 blockread ,blockwrite
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部