关于读取inifile的简单问题!在线!(50分)

  • 主题发起人 主题发起人 tt55
  • 开始时间 开始时间
T

tt55

Unregistered / Unconfirmed
GUEST, unregistred user!
高手们,现在我有此inifile,其中部分内容如下:
[命令1类]
0002 = delete all
0003 = edit one
0005 = copy next
0004 = paste line
[命令2类]
0013 = find string
0007 = replace
0009 = add one
0001 = select next

现在,我知道00xx等这种标识,就是已知各项的值,我想查找出它是属于哪个section
的命令类,有什么函数吗?急用,谢谢了先!
 
自己做,遍历所有扇区。
即使有函数,也是这么做的。
 
遍历可能也实现不了呀,我如果已知0003我想知道他是属于命令类1还是命令类2,
遍历只能得到所有的section 或者是所有项的值但是是不知道他的上级呀
 
可以实现
你只要查section里有没有这个00xx就行了,有就返回section
 
你的键名都是数字,不存在大小写问题。
如果键名有大小混合的情况,处理时可以都转成大写或小写。

以下是用函数的形式实现的。
function GetSectionNameFromKey(FileName,KeyName:string):string;
var
AppIni: TIniFile;
Sections,keys:TStrings;
i:integer;
begin
Result:='';
if (length(FileName)=0) or not(fileExists(FileName)) then exit;
AppIni := TIniFile.Create(FileName);
Sections:=TStringList.Create;
Keys:=TStringList.Create;
AppIni.ReadSections(Sections);
for i:=0 to Sections.Count -1 do
begin
AppIni.ReadSection(sections,Keys);
if keys.IndexOf(KeyName)>=0 then
begin
Result:=sections;
break;
end;
end;
Sections.Free;
Keys.Free ;
AppIni.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetSectionNameFromKey('d:/temp.txt','0001')); //'命令2类'
showmessage(GetSectionNameFromKey('d:/temp.txt','0002')); //'命令1类'
showmessage(GetSectionNameFromKey('d:/temp.txt','xxxx')); //''
end;
 
后退
顶部