Delphi如何高效读取复杂结构inf文件并解析内容?

2026-04-10 19:182阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计319个文字,预计阅读时间需要2分钟。

Delphi如何高效读取复杂结构inf文件并解析内容?

我在使用TiniFile读取inf文件时遇到问题。有些部分中,虽然身份相同,但TiniFile无法读取。例如:[AMD.Mfg] %AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353\%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4363\%AMD.DeviceDesc%

我使用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

我的代码:

Delphi如何高效读取复杂结构inf文件并解析内容?

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

本文共计319个文字,预计阅读时间需要2分钟。

Delphi如何高效读取复杂结构inf文件并解析内容?

我在使用TiniFile读取inf文件时遇到问题。有些部分中,虽然身份相同,但TiniFile无法读取。例如:[AMD.Mfg] %AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4353\%AMD.DeviceDesc0%=AMDSMBus, PCI\VEN_1002&DEV_4363\%AMD.DeviceDesc%

我使用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

我的代码:

Delphi如何高效读取复杂结构inf文件并解析内容?

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