如何做一个自定义文件?(50分)

  • 主题发起人 主题发起人 ymf
  • 开始时间 开始时间
Y

ymf

Unregistered / Unconfirmed
GUEST, unregistred user!
类似*.ini文件,如何生成、及对其进行读写,请给出整的代码。
要求此文件用记事本或其它程序程序打不开或看不到内容。
xx=111
yy=abcd
.........
 
我觉得可以从TMemIniFile继承一个

重写一下它的Create和UpdateFile方法就可以了

Create里面有个LoadValues

改这个就可以了
 
没有TMemIniFile呀?
 
将文件用自已的算法加密,用时再解密不就可以吗
 
TO chinapig
不行
 
使用文本文件的读取方法。在注册表中注册文件类型。
 
TMemIniFile在inifiles单元内

它在Create事件内用LoadValues读取INI文件所有内容到内存

在UpdateFile方法内更新文件内容

你只要改写LoadValues加入解密过程
改写UpdateFile加入加密过程

 
具体怎么做呀?我也想知道……
俺是菜鸟来的
 
给你一个把文本文件写入和读出的示例
procedure Load(FName: String);
var Stream: TMemoryStream;
begin
Stream := TMemoryStream.create;
try
Stream.LoadFromFile(FName);
//对Stream解密
Memo1.Lines.LoadFromStream(Stream);
Finally
Stream.Free;
end;
end;

procedure Save(FName: String);
var Stream: TMemoryStream;
begin
Stream := TMemoryStream.create;
try
Memo1.Lines.SaveToStream(Stream);
//对Stream加密
Stream.SaveToFile(FName);
Finally
Stream.Free;
end;
end;
 
to zhukewen
我是想弄一个无类型文件,然后对其进行读、写、修改等操作
 
按我说的方法做

有什么问题呢?
 
露一手:
//write
var
source:TFileStream;
sourcefile:string;// 任意类型的文件,甚至.Exe都可以呀。
myfilesize:integer;
begin
Source := TFileStream.Create(Sourcefile, fmOpenWrite or fmShareExclusive);
Source.Seek(0, soFromEnd);
MyFileSize := Sizeof(WriteData);//要增加的数据,任意的结构变量
Source.WriteBuffer(WriteData, MyFileSize);
end;
//read
 
自定义结构.然后存到流文件不就行了
 
可以在ini 文件格式的头上加上一些不可见字符,比如:
#0#1#2#3#4
然后看看有什么效果。
在读写时先把头去掉,把后面的写成一个临时的ini进行处理。
如果效果不好,可以每隔一定距离写入一些不可见字符。
 
后退
顶部