请高手帮小弟指点一下思路,关于自定义类型文件,谢谢! 我想自己做个日记本软件,所有的信息都储存到一个文件里,我又不想用数据库,一时之间不知如何入手,请各位高手帮忙指点一下思路。 如果每天的日记长度能固定,那就好办了,可是这个长度是无法固定的,所以有些迷茫,请高手赐教,或您有相关的资料,不胜感激!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单的示范:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type diaryRec=record //日记结构 f_date:TDateTime; f_weather:set of (wSun,wRain,wCloudy,wWind); f_content:string[255]; end; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var f:file of diaryRec; //日记结构类型的文件 dr:diaryRec;begin dr.f_date:=now; dr.f_weather:=[wSun,wWind]; dr.f_content:='今天我去会女朋友了...'; assignfile(f,'c:\goomoo.day'); rewrite(f); write(f,dr); closefile(f);end;end. 可以创建使用DAT文件:Type Tperson=Record Name:string; Age:integer; Sex:Boolean; end; Var Mydatafile:Tperson; procedure Proc_Name(sender:Tobject); begin Assign(Mydatafile,'c:\data.dat');Rewrite();//创建并打开一个文件;Read();//按一定格式去读数据文件;Write();//写一定格式的数据文件;... 使用RECORD去定义文件的内容有这样的问题:如果我定义好日记的内容为100字节,而我用的时候日记得内容就不能超过100字节呀,这明显不符合需要啊高手们,您在哪里?在哪里?在哪里? TO: hfyun(逮住就问)您能否帮我理一下思路,22点多了,脑子有些乱 TO: cnsuyong(小可) 一语中的! 到这时发现自己基础非常薄弱,如果要实现这些内容恐怕数据结构和算法不行就麻烦了。不知有没有这方面的专题文章?用什么语言都无所谓。谢谢您的热心指教!! 不知道你用过DELPHI自带的PARADOX没有,它在处理备注字段的时候就是用另外一个。MB文件来保存超过指定长度的文本,我想你其实也可以用这样的办法。用一个固定长度的域来表示日记的内容,超出的部分放在另一个文件里(副文件)。在主文件记录的类型声明一个无符号的长整型字段指定超出在该文件中部分的起始点,然后用文件流来访问文件。 谢谢:fermium(列御寇)可为什么没人知道【电子日记本】它是怎么处理这个问题的啊?我觉得她那样做比较完美。 建议楼主研究以下文件操作:1、文件流方式的读写操作(TFileStream)2、无类型文件的读写操作(Read、Write)如果达到相对比较熟练的程度,那么解决这里讨论的问题就很简单了。如果能看一些“数据结构”中的相关内容,效果会更好,例如指针、链表等。 其实楼主对数据库的理解有误,自己做个小型数据库不就是个自定义类型文件?电子日记本Beta 2.0版和以后的AceDiary用的郝新庚自己开发的数据库TinyDB!知道吗?就是作为Kingron那个超级猛料载体的那个MyBase所用的数据库!是他在校期间完成的作品!再透露点内幕消息,电子日记本最新的中文版已经开发完成,近期会发布!和英文的AceDiary类似! 如何查找固定的数并提取出来 delphi中如何设置半角方式的中文输入法 ASCII问题 如何动态创建可视化控件并显示? 我新写的考试系统第二版(源程序),欢迎免费下载... 各位帮帮我吧 大家来帮帮忙,看看我的代码. chart 控件怎么在程序运行的时候改变它的现实图形,比如饼图,和线性的 怎么使程序最小化时在任务栏中生成一个图标? 求教两段比较长其实很简单的代码——合并的代码失效——找不出原因 怎么获得网上邻居的计算机名 为什么我不能用Google.com搜索本论坛的文章?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
diaryRec=record //日记结构
f_date:TDateTime;
f_weather:set of (wSun,wRain,wCloudy,wWind);
f_content:string[255];
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
f:file of diaryRec; //日记结构类型的文件
dr:diaryRec;
begin
dr.f_date:=now;
dr.f_weather:=[wSun,wWind];
dr.f_content:='今天我去会女朋友了...';
assignfile(f,'c:\goomoo.day');
rewrite(f);
write(f,dr);
closefile(f);
end;end.
Type Tperson=Record
Name:string;
Age:integer;
Sex:Boolean;
end;
Var Mydatafile:Tperson;
procedure Proc_Name(sender:Tobject);
begin
Assign(Mydatafile,'c:\data.dat');
Rewrite();//创建并打开一个文件;
Read();//按一定格式去读数据文件;
Write();//写一定格式的数据文件;
...
一语中的! 到这时发现自己基础非常薄弱,如果要实现这些内容恐怕数据结构和算法不行就麻烦了。不知有没有这方面的专题文章?用什么语言都无所谓。谢谢您的热心指教!!
1、文件流方式的读写操作(TFileStream)
2、无类型文件的读写操作(Read、Write)
如果达到相对比较熟练的程度,那么解决这里讨论的问题就很简单了。
如果能看一些“数据结构”中的相关内容,效果会更好,例如指针、链表等。