如何简单控制 INI 文件(100分)

  • 主题发起人 主题发起人 sadnui
  • 开始时间 开始时间
S

sadnui

Unregistered / Unconfirmed
GUEST, unregistred user!
我不想使用 delphi 带的ini单元
想封装两个简单的函数使用WindowsAPI 来操作 ini文件

GetPrivateProfileInt
GetPrivateProfileSection
GetPrivateProfileSectionNames
GetPrivateProfileString
GetPrivateProfileStruct
WritePrivateProfileSection
WritePrivateProfileString
WritePrivateProfileStruct

试过这些 api 可是总是操作不成功 麻烦各位大虾 :)
 
送你两个函数:
//在ini文件中保存设定值
function SaveToIniFile(FormName, CtrlName, CtrlValue: String;
IniFileName: String): Boolean;
var
fn: String;
begin
if (Trim(FormName) = '') or (Trim(CtrlName) = '') then
begin
Result := False;
Exit;
end;
fn := Trim(IniFileName);
if fn = '' then
fn := ExtractFilePath(Application.ExeName) + 'Setting.ini'
else
if ExtractFileDrive(fn) = '' then //如果fn不包含全路径, 则假设fn在当前程序所在目录
fn := ExtractFilePath(Application.ExeName) + fn;
Result := WritePrivateProfileString(PChar(FormName), PChar(CtrlName), PChar(CtrlValue), PChar(fn));
end;

//在Ini文件中读取设定值
function GetFromIniFile(FormName, CtrlName: String; DefaultValue: String;
IniFileName: String): String;
var
pStr: Array[0..255] of Char;
fn: String;
begin
if (Trim(FormName) = '') or (Trim(CtrlName) = '') then
begin
Result := '';
Exit;
end;
fn := Trim(IniFileName);
if fn = '' then
fn := ExtractFilePath(Application.ExeName) + 'Setting.ini'
else
if ExtractFileDrive(fn) = '' then //如果fn不包含全路径, 则假设fn在当前程序所在目录
fn := ExtractFilePath(Application.ExeName) + fn;
GetPrivateProfileString(PChar(FormName), PChar(CtrlName), PChar(DefaultValue), pStr,
SizeOf(pStr), PChar(fn));
Result := pStr;
end;

例子:
保存 SaveToIniFile(Form1.Name, ComBox1.Name, ComBox1.Text)
读取 GetFromIniFile(Form1.Name, ComBox1.Name, '') 读取不到返回''!
 
收到结帖~~~~~~~~~
 
为什么不用inifiles啊,功能挺完善的呀

用别的API来操作INI文件,这不是绕了个弯儿吗[?]
 

Similar threads

D
回复
0
查看
947
DelphiTeacher的专栏
D
D
回复
0
查看
885
DelphiTeacher的专栏
D
D
回复
0
查看
962
DelphiTeacher的专栏
D
D
回复
0
查看
790
DelphiTeacher的专栏
D
后退
顶部