如何使用Delphi软件读取INF配置文件?

更新于
2026-10-05 00:28:42
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计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相关的库都可能在任何升级时改变其实现,从而破坏了使用它的程序.