当前位置 : 主页 > 编程语言 > delphi >

delphi – 如何读取inf文件?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我使用TiniFile来读取inf文件.但在某些部分中,身份相同,TiniFile无法读取它. 例如 : 这个部分 : [AMD.Mfg]%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1002DEV_4353%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1002DEV_4363%AMD.De
我使用TiniFile来读取inf文件.但在某些部分中,身份相同,TiniFile无法读取它.

例如 :

这个部分 :

[AMD.Mfg]
%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1002&DEV_4353
%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1002&DEV_4363
%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1002&DEV_4372
%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1002&DEV_4385
%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1022&DEV_780B

我的代码:

var
      inf : TiniFile;
      list : TStringList;
    begin
      //Create
      inf := TIniFile.Create(infPath);
      list := TStringList.Create;  
      inf.ReadSectionValues('AMD.Mfg', list);
      Memo1.Lines.AddStrings(list2);
    end;

它显示这个:

%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353
%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353
%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353
%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353
%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353

我猜相同的身份导致了这一点,所以我的问题是当身份相同时如何阅读它?

你对“读”的意思非常模糊.实际上你可以通过Delphi的任何手段阅读该文件.我个人用TStringList.LoadFromFile读它

问题是你读完后会做什么……

您也可以尝试使用TMemIniFile进行操作.但我个人当然避免使用任何与INI相关的方法,因为这些文件与mbasic INI前提有很大的偏差,任何与INI相关的库都可能在任何升级时改变其实现,从而破坏了使用它的程序.

网友评论