2

如果我有一个包含以下信息的文本文件,那么搜索版本的最佳方法是什么,例如仅在 system1 上?(在 vb6 代码中,我可以使用InStr吗?)

[系统1]

版本=xx
日期=xx


[系统2]

版本=xx
日期=xx
4

3 回答 3

1

示例文件看起来像一个标准的 INI 文件。您可以使用GetPrivateProfileString()和 相关功能阅读这些内容。您还可以使用GetPrivateProfileSectionNames()和枚举部分和值GetPrivateProfileSection()

于 2013-02-26T09:50:38.430 回答
0

假设版本之后和日期之前有一个空格(str 将是您的文本):

Dim version As String
version = Mid(str, InStr(str, "version") + 8)
version = Mid(version, 1, InStr(version, " "))

但是有很多函数可以解析 .ini 文件。

于 2013-02-25T21:29:56.857 回答
0

我创建了一个文本文件"C:\MYFILE.TXT",这是文件的内容:

[system1]

version=aa
date=bb


[system2]

version=yy
date=zz

[system3]

date=4

[system4]

[system5]

正如你所看到的,我做了所有可能的情况,即。一个有版本信息的系统,一个没有版本信息的系统,等等。然后我写了这段代码:

这是在分类列表下查找值的一种方法:

Dim mySystem As String
Dim myVersion As String

mySystem = "[system2]"    'Replace this with the system you are looking for

Dim strTmp As String
Dim SystemFound As Boolean
Dim VersionFound As Boolean

Open "c:\myfilename.txt" For Input As #1
    Do While Not EOF(1)
        Line Input #1, strTmp
        If InStr(UCase(strTmp), UCase(mySystem)) > 0 Then
            SystemFound = True
            strTmp = ""
            Do While Not EOF(1) And InStr(strTmp, "[") = 0
                Line Input #1, strTmp
                If InStr(UCase(strTmp), "VERSION") > 0 Then
                    VersionFound = True
                    myVersion = Mid(strTmp, InStr(strTmp, "=") + 1, Len(strTmp))

                End If
            Loop
            Exit Do
        End If
    Loop
Close #1

If SystemFound And VersionFound Then
    MsgBox "The Version of " & mySystem & " is " & myVersion
ElseIf SystemFound And Not VersionFound Then
    MsgBox "The system " & mySystem & " has no version definition"
ElseIf SystemFound = False Then
    MsgBox "The system " & mySystem & " is not found in file"
End If
于 2013-02-26T04:29:39.003 回答