怎么样创建属于自己的文件格式(10分)

  • 主题发起人 主题发起人 admin2008
  • 开始时间 开始时间
A

admin2008

Unregistered / Unconfirmed
GUEST, unregistred user!
具体是这样的 就是别人是看不到文件夹里面的具体内容 如果用文本文件打开就会是乱码
不过自己是可以打开的 创建属于自己的文件格式 请问怎么处理呢
 
很简单,。。建议多看看基础书。

type
TMyFile = packed record
Key1 :string;
Key2 :string;
end;


procedure TfrmMain.Button2Click(Sender: TObject);
var
MyFile :TMyFile;
f: file of Byte;
begin
AssignFile(f,ExtractFilePath(ParamStr(0))+'11.joe');
MyFile.Key1 :='1';
MyFile.Key2 :='ppp'+#13#10+
'aaa13是'+#13#10+
'sss13'+#13#10+
'中国人'+#13#10+
'英语3'+#13#10+
'梦想3'+#13#10+
'丽丽 '+#13#10+
'燕燕燕燕+'+#13#10+
'敏敏敏敏敏 ';
Rewrite(f);
BlockWrite(f,MyFile,SizeOf(MyFile));
CloseFile(f);

end;

procedure TfrmMain.Button3Click(Sender: TObject);
var
MyFile :TMyFile;
f: file of Byte;
begin
AssignFile(f,ExtractFilePath(ParamStr(0))+'11.joe');
Reset(f);
BlockRead(f,MyFile,SizeOf(MyFile));
ShowMessage(MyFile.Key1 );
ShowMessage(MyFile.Key2 );
CloseFile(f);

end;
 
其实你自己加个密就好了,自己想看就解密
 
那怎样进行加密及解密吗 能否给个例子 这也是个好方法
 
我用过用WINZIP压缩后保存,解压后读取的方法,还行。
 
难道我的方法不好吗?
第一,达到了自定义文件格式的要求。
第二,有相当于加密的功能,即,在别人不知道你的文件格式的情况下是读不出你的数据库来的,就是读出也是乱码(有记事本打开你的自定义文件来看也是乱码)
第三,我上面创建 TYPE中,只用了 两个 string 类型,你还可能用 其它integer pchar 等等的类型。
第四,代码量也超小。

我真是想不出还有什么方法,比我这种方法更好!
 
Jason Law 楼主 你的代码我试了下 就是当11.job 改成名字就就不行 打不开哟
但是我把名字改回来也不行 只有重新创建一个11.job 才行 当然楼主这样写不错了 只是稍改下就行 不过我也听过有人说对字符串加密也行
 
to Jason Law
用你的代码试了下,有个问题请教!
procedure TForm1.Button1Click(Sender: TObject);
var
MyFile :TMyFile;
f: file of Byte;
i: integer;
s: string;
begin
AssignFile(f,ExtractFilePath(ParamStr(0))+'11.joe');
MyFile.Key1 :='1';

for i := 0 to memo1.Lines.Count-1 do
s:=s+memo1.Lines.Strings+#13#10;

myfile.key2:=s;
showmessage(s);//这里能看到字符串.
{
MyFile.Key2 :='ppp'+#13#10+
'aaa13是'+#13#10+
'sss13'+#13#10+
'中国人'+#13#10+
'英语3'+#13#10+
'梦想3'+#13#10+
'丽丽 '+#13#10+
'燕燕燕燕+'+#13#10+
'敏敏敏敏敏 ';
}
Rewrite(f);
BlockWrite(f,MyFile,SizeOf(MyFile));
CloseFile(f);


end;

procedure TForm1.Button2Click(Sender: TObject);
var
MyFile :TMyFile;
f: file of Byte;
begin
AssignFile(f,ExtractFilePath(ParamStr(0))+'11.joe');
Reset(f);
BlockRead(f,MyFile,SizeOf(MyFile));
ShowMessage(MyFile.Key1 );
ShowMessage(MyFile.Key2 );//MyFile.Key2为空为什么?
CloseFile(f);

end;
 
后退
顶部