//将文件内容填好 With FileContent do Size:=0; a1:='asdfsad'; ... End;
FileName:='d:\temp\a123.tmp'; if FileExists(FileName) then Begin FileHandle:=FileOpen(FileName, fmOpenWrite) End else Begin FileHandle:=FileCreate(FileName); End; FileWrite(FileHandle,FileContent,SizeOf(TFileContent)); FileClose(FileHandle);
只不过是乱嘛而已!
其实你也可以使用别的方法。呵呵。例如有的人把。TXT的文件改成别的扩展名。例如。AOR要打开的时候自然找不到关联。然后你在到注册表中添加相应的文件关联。不就有了属于你自己的格式了。。
如果不会用程序代码编程操作注册表,也可以找着regedit导出的注册表格式按系统已存在的关联文件后缀写一个。当安装的时候执行这个注册表文件就Okey了。
你先定义一个文件,它的类型是byte的就可以(不要是其它的哦),
定义的方法就是
var f:file of byte;
然后你就可以定义自己的文件结构,我们可以假设一个结构作为文件的头结构,
type
filehead = packed record
version:integer;
type:char;
end;
定义完以后设个变量
var myhead:filehead;
然后你就可以操作你的文件了,我再继续举简单的方法:
begin
assignfile(f,'c:\xx.qq');//暂时定义文件的后缀为qq
reset(f);//你也可以rewrite(f),这个是新建文件时用的
{
如果你是新建文件,你可以这样
rewrite(f);
myhead.version:=1;
myhead.type:='q';
blockwrite(f,myhead,sizeof(myhead));//这是块写方法,写入你的文件头
}
blockread(f,myhead,sizeof(myhead));//这是块读文件,用这个方法可以读取文件头
......//这里就是你的操作了,如果符合文件头的结构,你可以读出文件头里的内容的
end;
建立上面方法的思路就是自己建立一个文件头,只有知道结构的人才能够解读这个文件头,因为文件的格式是字节,所以别人用任何编辑器看到的只能够是乱码,而不可能是你文件的内容,如果有什么不清楚,你可以参考一下国外一些关于文件格式的网站,即使是讨论图像文件格式的网站也能够让你非常清楚如何制作自己格式的文件。当然,图方便的方法就是在这里贴帖子。
TFileContent=Record
Size:Integer;
a1:string[20];
a2:string[50];
b1:Integer;
b2:Word;
End;var
FileName:TFileName;
FileContent:TFileContent;
FileHandle:THandle;
//将文件内容填好
With FileContent do
Size:=0;
a1:='asdfsad';
...
End;
FileName:='d:\temp\a123.tmp';
if FileExists(FileName) then
Begin
FileHandle:=FileOpen(FileName, fmOpenWrite)
End
else
Begin
FileHandle:=FileCreate(FileName);
End;
FileWrite(FileHandle,FileContent,SizeOf(TFileContent));
FileClose(FileHandle);