有没有办法将.ini文件读入内存然后从中读取特定值?

时间:2010-05-17 18:49:55

标签: vb6

我的情况是ini文件在内存中(在字符串变量中)并且我想从中读取值而不将ini文件数据写入磁盘。

更新:这是我不想写入HD的数据。我将它从Web服务器下载到内存中,然后获取一些数据。

在VB6中有没有办法做到这一点?也许使用Win API调用?

5 个答案:

答案 0 :(得分:2)

粘土,

在DevX.com上查看这篇文章

Read/Write INI without using API

这应该让你指向一个好的方向。模块有点脏,此时需要存储INI的路径。而只需修改模块以直接使用您的字符串,您应该收到所需的结果。让我知道这对你有用。

答案 1 :(得分:1)

ini文件将存储在硬盘上。如果你想在注册表中保存(这也应该添加到注册表文件中),你可以使用这些函数:

SaveSetting
GetSetting

答案 2 :(得分:0)

如果您不想将其保存在磁盘上,我认为可能很难使用任何特定的API调用。但如果它是一个ini文件,它应该是一个结构化的格式,为什么不直接遍历它直到你想要的部分,然后从中读取你想要的值。

已经很长一段时间了,但我认为它应该是这样的:

只需Split在新行上获取一系列行,然后每个部分应该以某种格式开始,并且对于那里的每一行,你检查它是否包含=我认为,如果是这样的话第一个=左边是值的名称,右边的​​所有内容都是值。

答案 3 :(得分:0)

声明两个Windows API函数导入

Public Declare Function GetPrivateProfileStringA Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long 

Public Declare Function WritePrivateProfileStringA Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long 

阅读

sReturn = Space(255)
sReturn = Left(sReturn, GetPrivateProfileStringA(header, key, defaultReturn, sReturn, 255, filePath))

用于写作

WritePrivateProfileStringA header, key, Datum, filePath

记住INI文件的结构是

[header]
key=data 

答案 4 :(得分:0)

是的,VB6几乎可以做任何事情。但我不认为有任何Windows API可以做到这一点。

如果你找不到一个库,你必须自己编写代码。如果您必须自己编写代码,请查看是否可以找到一些适用于ini文件的现有代码,以便了解如何使用ini文件。