如何使用Delphi软件读取INF配置文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计382个文字,预计阅读时间需要2分钟。
使用TiniFile读取inf文件时,遇到部分内容无法读取的问题。例如,某部分内容如下:[AMD.Mfg]%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002DEV_4353\%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002DEV_4363\%AMD.De
解决方法:
1.确认inf文件格式正确,无损坏。
2.检查读取代码,确保正确处理了特殊字符和注释。
3.尝试使用其他工具或方法读取inf文件。
我使用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相关的库都可能在任何升级时改变其实现,从而破坏了使用它的程序.
本文共计382个文字,预计阅读时间需要2分钟。
使用TiniFile读取inf文件时,遇到部分内容无法读取的问题。例如,某部分内容如下:[AMD.Mfg]%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002DEV_4353\%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002DEV_4363\%AMD.De
解决方法:
1.确认inf文件格式正确,无损坏。
2.检查读取代码,确保正确处理了特殊字符和注释。
3.尝试使用其他工具或方法读取inf文件。
我使用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相关的库都可能在任何升级时改变其实现,从而破坏了使用它的程序.

