当前位置:编程学习 > VB >>

怎么用vb读取INI里的内容并判断


Dim inistring As String
  inistring = Space$(254)
  GetPrivateProfileString "设置", "1010", "", inistring, 255, "c:\1010ini.ini"
 If CStr(inistring) = "关闭" Then
  Image6.Visible = False
  Image5.Visible = True
 Else
  Image5.Visible = False
  Image6.Visible = True
 End If

有错吗?怎么不行? --------------------编程问答-------------------- --------------------编程问答--------------------
 
    ''' <summary>
    ''' 獲取ini文件的内容
    ''' </summary>
    ''' <param name="Section">节</param>
    ''' <param name="AppName">关键字</param>
    ''' <param name="lpDefault">查不到时返回的预设值</param>
    ''' <param name="FileName">ini文件位置</param>
    ''' <returns>string</returns>
    Public Function GetINI(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As String
        Dim Str As String =   LSet(Str, 256)
        GetPrivateProfileString(Section, AppName, lpDefault, Str, Len(Str), FileName)
        Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1)
    End Function

    ''' <summary>
    ''' 写入ini文件
    ''' </summary>
    ''' <param name="Section">节</param>
    ''' <param name="AppName">关键字</param>
    ''' <param name="lpDefault">写入内容</param>
    ''' <param name="FileName">ini文件位置</param>
    Public Function WriteINI(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As Long
        WriteINI = WritePrivateProfileString(Section, AppName, lpDefault, FileName)
    End Function



我是先写成一个函数,省略很多麻烦

用的时候 inistring=  GetINI("设置", "1010", "", "c:\1010ini.ini")

再不行你别用1010作为关键字,试试字母开头的  --------------------编程问答--------------------
引用 1 楼  的回复:
Dim inistring As String, n As Long

  n = 255
  inistring = Space(256)
  GetPrivateProfileString "设置", "1010", "", inistring, n, "c:\1010ini.ini"
 If Trim(inistring) = "关闭" Then
  Image6.Visibl……

不行 --------------------编程问答-------------------- 没有人吗? --------------------编程问答--------------------
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (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
Dim IniGetVal As String
Dim IniFile As String
Dim IniDir As String
Private SoftName As String
Sub CshIni(Optional IniFile1 As String, Optional ByIniDir As String)
    IniGetVal = String(255, Chr(0))
    IniFile = IIf(IniFile1 = "", App.Path & "\软件配置信息.ini", IniFile1)
    IniDir = IIf(ByIniDir <> "", ByIniDir, "软件配置_" & SoftName)
End Sub
Function GetIni(IniKey As String, Optional LenStr As Integer = 255) As String
    '读取INI值
    Call GetPrivateProfileString(IniDir, IniKey, "", IniGetVal, LenStr, IniFile)
    Dim TempId As Integer
    TempId = InStr(IniGetVal, Chr(0))
    If TempId > 0 Then GetIni = Left(IniGetVal, TempId - 1)
End Function
Function SetIni(IniKey As String, Val As String)
    WritePrivateProfileString IniDir, IniKey, Val, IniFile
End Function

Private Sub Form_Load()
SoftName = "测试工程"
CshIni
SetIni "键1", 35
MsgBox GetIni("键1")
End Sub
--------------------编程问答-------------------- 上边所有版本都可以的,你还是细心试试吧
另外一多汗
Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1)
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,