Subject:
TCnXorIniFile如何使用?
[Print This Page]
Author:
laiguorong
Time:
2009-4-1 11:51
Subject:
TCnXorIniFile如何使用?
TCnXorIniFile如何使用?
Author:
Passion
Time:
2009-4-1 13:37
就像普通IniFile类一样使用,不同之处只是Create时需要传入一字符串参数作为异或加密的种子。保存的ini文件内容会用此字符串简单异或加密。
Author:
laiguorong
Time:
2009-4-1 18:32
保存很正常,读取的时候文件大小会变成0字节...
Author:
Passion
Time:
2009-4-3 07:18
我们检查一下。
Author:
Passion
Time:
2009-4-4 17:59
经过检查,是我们在处理异或时有bug,导致有时无法正确解码从而覆盖文件内容。
最新的CVS上已经修复了此问题,并增加了一个XorIni的例子,可参考。
最新发布的20090404CVS包也已经集成了此修改。
Author:
calmpurp
Time:
2010-5-16 16:27
我使用最新的cnvcl_20100501,发现又有这个问题,不正确的加密的种子,会导致文件清空。
Author:
zjy
Time:
2010-5-16 19:01
QUOTE:
原帖由
calmpurp
于 2010-5-16 16:27 发表
我使用最新的cnvcl_20100501,发现又有这个问题,不正确的加密的种子,会导致文件清空。
不正确的加密种子会导致解密出来的文本不再满足INI文件的格式,赋值给INI对象后,再从INI对象生成字符串加密保存,就会出现文件被清空的现象了。
Author:
calmpurp
Time:
2010-5-16 21:33
我的代码
try
T:= TCnXorIniFile.Create(Extractfilepath(Paramstr(0))+'project.ini','xin');
edt1.Text := T.ReadString('main','user','');
finally
T.Free;
end;
只要解密字符不对就清空,只是读一下,就清空了?
[
本帖最后由 calmpurp 于 2010-5-16 21:35 编辑
]
Author:
zjy
Time:
2010-5-17 12:56
Subject:
确实是个Bug
因为 TCnStreamIniFile.Destroy 里强制调用了一次 UpdateFile,所以会导致“只要解密字符不对就清空,只是读一下,就清空了”的问题。
SVN中的代码已经修正,增加了内容变更判断。
http://code.google.com/p/cnpack/source/detail?r=594
Author:
calmpurp
Time:
2010-5-17 18:14
谢谢!初学编程,cnpack对我很有帮助,再次感谢!
Author:
zjy
Time:
2010-5-18 10:07
QUOTE:
原帖由
calmpurp
于 2010-5-17 18:14 发表
谢谢!初学编程,cnpack对我很有帮助,再次感谢!
不客气!能给更多的人以帮助,正是我们所追求的:)
Author:
dtpl
Time:
2011-1-5 15:04
管理员,你好,我在使用TCnXorIniFile在我的程序中时,也偶尔会出现ini文件中的内容被清空的问题,请问怎么解决,我用的是 CnVCL 组件包 20101001。谢谢了。
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0