我正在尝试创建一个ini文件来保存应用程序配置。 保存部分与编辑框1,2,3的输入完美配合,这里是ini样本
[1server]
SSHHost=ssh.com
SSHPort=443
Username=user
Password=123
[2server]
SSHHost=ssh.com
SSHPort=443
Username=user
Password=123
[ProxySettings]
Proxy=127.0.0.1
Port=8080
Type=http
如何让应用程序在启动时读取保存的ini设置,是否可以隐藏或加密用户保存的密码?
答案 0 :(得分:3)
只需阅读主要表单FormCreate
事件中的Ini文件即可。
procedure TForm1.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(YourIniFileName);
try
// The final parameter to all of the `ReadXx` functions is a default
// value to use if the value doesn't exist.
Edit1.Text := Ini.ReadString('1server', 'SSHHost', 'No host found');
Edit2.Text := Ini.ReadString('1server', 'SSHPort', 'No port found');
// Repeat, using ReadString, ReadInteger, ReadBoolean, etc.
finally
Ini.Free;
end;
end;
提醒一句:TIniFile
已知道写入网络位置时出现问题,因此如果有任何可能性,请使用TMemIniFile
。 TIniFile
包含WinAPI INI支持函数(ReadPrivateProfileString
和其他函数),而TMemIniFile
完全用Delphi代码编写,并且不会遇到相同的问题。它们在语法上是兼容的并且在同一个单元中,因此在变量声明中将TIniFile
更改为TMemIniFile
以及创建Ini
的行很简单:
var
Ini: TMemIniFile;
begin
Ini := TMemIniFile.Create(YourIniFileName);
...
end;
就加密密码而言,您可以使用所需的任何加密算法,只要加密值可以转换为文本表示即可。 (Ini文件不处理二进制值。)算法的选择取决于您尝试实现的安全级别。