VB6.0读写INI文件的四个函数

来源:互联网 发布:java多线程数据共享 编辑:程序博客网 时间:2024/05/19 20:42
 
  1.     
  2. 读写INI文件的四个函数
  3. 发表日期:2006-08-23作者:[转贴] 出处:  
  4. '文件名SourceDB.ini文件
  5. Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As StringByVal lpKeyName As Any, ByVal lpDefault As StringByVal lpReturnedString As StringByVal nSize As LongByVal lpFileName As StringAs Long
  6. Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As StringByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As StringAs Long
  7.  
  8. '以下两个函数,读/写ini文件,固定节点setting,in_key为写入/读取的主键
  9. '仅仅针对是非值
  10. 'Y:yes,N:no,E:error
  11. Public Function GetIniTF(ByVal In_Key As StringAs Boolean
  12. On Error GoTo GetIniTFErr
  13. GetIniTF = True
  14. Dim GetStr As String
  15. GetStr = VBA.String(128, 0)
  16. GetPrivateProfileString "Setting", In_Key, "", GetStr, 256, App.Path & "/SourceDB.ini"
  17. GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")
  18. If GetStr = "1" Then
  19. GetIniTF = True
  20. GetStr = ""
  21. Else
  22. GoTo GetIniTFErr
  23. End If
  24. Exit Function
  25. GetIniTFErr:
  26. Err.Clear
  27. GetIniTF = False
  28. GetStr = ""
  29. End Function
  30.  
  31. Public Function WriteIniTF(ByVal In_Key As StringByVal In_Data As BooleanAs Boolean
  32. On Error GoTo WriteIniTFErr
  33. WriteIniTF = True
  34. If In_Data = True Then
  35. WritePrivateProfileString "Setting", In_Key, "1", App.Path & "/SourceDB.ini"
  36. Else
  37. WritePrivateProfileString "Setting", In_Key, "0", App.Path & "/SourceDB.ini"
  38. End If
  39. Exit Function
  40. WriteIniTFErr:
  41. Err.Clear
  42. WriteIniTF = False
  43. End Function
  44. '以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键
  45. '针对字符串值
  46. '空值表示出错
  47. Public Function GetIniStr(ByVal AppName As StringByVal In_Key As StringAs String
  48. On Error GoTo GetIniStrErr
  49. If VBA.Trim(In_Key) = "" Then
  50. GoTo GetIniStrErr
  51. End If
  52. Dim GetStr As String
  53. GetStr = VBA.String(128, 0)
  54. GetPrivateProfileString AppName, In_Key, "", GetStr, 256, App.Path & "/SourceDB.ini"
  55. GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")
  56. If GetStr = "" Then
  57. GoTo GetIniStrErr
  58. Else
  59. GetIniStr = GetStr
  60. GetStr = ""
  61. End If
  62. Exit Function
  63. GetIniStrErr:
  64. Err.Clear
  65. GetIniStr = ""
  66. GetStr = ""
  67. End Function
  68.  
  69. Public Function WriteIniStr(ByVal AppName As StringByVal In_Key As StringByVal In_Data As StringAs Boolean
  70. On Error GoTo WriteIniStrErr
  71. WriteIniStr = True
  72. If VBA.Trim(In_Data) = "" Or VBA.Trim(In_Key) = "" Or VBA.Trim(AppName) = "" Then
  73. GoTo WriteIniStrErr
  74. Else
  75. WritePrivateProfileString AppName, In_Key, In_Data, App.Path & "/SourceDB.ini"
  76. End If
  77. Exit Function
  78. WriteIniStrErr:
  79. Err.Clear
  80. WriteIniStr = False
  81. End Function