使用APIDeclare Function WritePrivateProfileString _ Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationname As String, ByVal _ lpKeyName As Any, ByVal lsString As Any, _ ByVal lplFilename As String) As LongDeclare Function GetPrivateProfileString Lib _ "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationname As String, ByVal _ lpKeyName As String, ByVal lpDefault As _ String, ByVal lpReturnedString As String, _ ByVal nSize As Long, 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 LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPrivate Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As LongPrivate Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPrivate Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As LongFunction ReadIni(AppName As String, KeyName As String, FileName As String) '读取INI文件 Dim Ret As String Dim NC As Integer Ret = String(1024, 0) NC = GetPrivateProfileString(AppName, KeyName, "", Ret, 1024, FileName) If NC <> 0 Then Ret = Left$(Ret, NC) ReadIni = Ret End FunctionFunction WriteIni(AppName As String, KeyName As String, lpString As String, FileName As String) '写INI文件 WritePrivateProfileString AppName, KeyName, lpString, FileName End FunctionFunction ReadSystemIni(AppName As String, KeyName As String) '读取System.ini文件 Dim Ret As String Dim NC As Integer Ret = String(1024, 0) NC = GetProfileString(AppName, KeyName, "", Ret, 1024) If NC <> 0 Then Ret = Left$(Ret, NC) ReadSystemIni = Ret End FunctionFunction WriteSystemIni(AppName As String, KeyName As String, lpString As String) '写入System.ini文件 WriteProfileString AppName, KeyName, lpString End FunctionFunction SystemPath() As String '取得System目录 Dim SystemDirectory As String Dim x As Long SystemDirectory = String(1024, 0) x = GetSystemDirectory(SystemDirectory, 255) SystemPath = Left$(SystemDirectory, x) End FunctionFunction WindowsPath() As String '取得Windows的路径 Dim WindowsDirectory As String Dim x As Long WindowsDirectory = String(1024, 0) x = GetWindowsDirectory(WindowsDirectory, 255) WindowsPath = Left$(WindowsDirectory, x) End Function
读写INI文件的类: Option Explicit Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, 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 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 LongPrivate IniFileName As String Public ErrorMsg As String
Private Sub Class_Initialize() IniFileName = vbNullString ErrorMsg = vbNullString End Sub
Public Sub SpecifyIni(FilePathName) IniFileName = Trim(FilePathName) End Sub
Private Function NoIniFile() As Boolean NoIniFile = True If IniFileName = vbNullString Then ErrorMsg = "没有指定文件" Exit Function End If ErrorMsg = vbNullString NoIniFile = False End Function
Public Function WriteString(Section As String, key As String, Value As String) As Boolean WriteString = False If NoIniFile() Then Exit Function End If If WritePrivateProfileString(Section, key, Value, IniFileName) = 0 Then ErrorMsg = "写入失败" Exit Function End If WriteString = True End Function Public Function ReadString(Section As String, key As String, Size As Long) As String Dim ReturnStr As String Dim ReturnLng As Long ReadString = vbNullString If NoIniFile() Then Exit Function End If ReturnStr = Space(Size) ReturnLng = GetPrivateProfileString(Section, key, vbNullString, ReturnStr, Size, IniFileName) ReadString = Left(ReturnStr, ReturnLng) End Function
Public Function ReadInt(Section As String, key As String) As Long Dim ReturnLng As Long ReadInt = 0 ReturnLng = GetPrivateProfileInt(Section, key, 0, IniFileName) If ReturnLng = 0 Then ReturnLng = GetPrivateProfileInt(Section, key, 1, IniFileName) If ReturnLng = 1 Then ErrorMsg = "不能读取" Exit Function End If End If ReadInt = ReturnLng End Function
'一个模块,放在模块中便可,我一直在用! Public 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 Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPublic Function ReadIniData(ByVal FileName As String, ByVal Entry As String, ByVal Field As String) As String Dim TempString As String ReadIniData = "" Dim EntryValue As String Dim EntrySize As Long, rc As Long EntryValue = Space$(1000) EntrySize = 1000If Field = "NULL" Then rc = GetPrivateProfileString(Entry, vbNullString, "error", EntryValue, EntrySize, FileName) ElseIf Entry = "NULL" Then rc = GetPrivateProfileString(vbNullString, Field, "error", EntryValue, EntrySize, FileName) Else rc = GetPrivateProfileString(Entry, Field, "error", EntryValue, EntrySize, FileName) End If ReadIniData = Trim$(EntryValue) 'ReadIniData = EntryValueEnd FunctionPublic Function WriteIniData(ByVal FileName As String, ByVal Entry As String, ByVal Field As String, ByVal Data As String) As Boolean WriteIniData = False Dim rc As Long rc = WritePrivateProfileString(Entry, Field, Data, FileName) If rc <> 0 Then WriteIniData = True End Function
建立与读取.ini文件 '请於form中放3个TextBox,一个CommandBox 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 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 LongPrivate Sub Command1_Click() Dim success As Long success = WritePrivateProfileString("MyApp", "text1", Text1.Text, "c:\aa.ini") '叁数一 Section Name '叁数二 於.ini中的项目 '叁数三 项目的内容 '叁数四 .ini文件的名称 success = WritePrivateProfileString("MyApp", "text2", Text2.Text, "c:\aa.ini") success = WritePrivateProfileString("MyApp2", "text3", Text3.Text, "c:\aa.ini") End SubPrivate Sub Form_load() Dim ret As Long Dim buff As String buff = String(255, 0) ret = GetPrivateProfileString("Myapp", "text1", "text1", buff, 256, "c:\aa.ini") '若.ini MyApp中无text1,则采用叁数三的值 Text1.Text = buff buff = String(255, 0) ret = GetPrivateProfileString("Myapp", "text2", "text2", buff, 256, "c:\aa.ini") Text2.Text = buff buff = String(255, 0) ret = GetPrivateProfileString("Myapp2", "text3", "text3", buff, 256, "c:\aa.ini") Text3.Text = buff End Sub
Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As Any, ByVal lsString As Any, _
ByVal lplFilename As String) As LongDeclare Function GetPrivateProfileString Lib _
"kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As String, ByVal lpDefault As _
String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As _
String) As Long
Dim Ret As String
Dim NC As Integer
Ret = String(1024, 0)
NC = GetPrivateProfileString(AppName, KeyName, "", Ret, 1024, FileName)
If NC <> 0 Then Ret = Left$(Ret, NC)
ReadIni = Ret
End FunctionFunction WriteIni(AppName As String, KeyName As String, lpString As String, FileName As String) '写INI文件
WritePrivateProfileString AppName, KeyName, lpString, FileName
End FunctionFunction ReadSystemIni(AppName As String, KeyName As String) '读取System.ini文件
Dim Ret As String
Dim NC As Integer
Ret = String(1024, 0)
NC = GetProfileString(AppName, KeyName, "", Ret, 1024)
If NC <> 0 Then Ret = Left$(Ret, NC)
ReadSystemIni = Ret
End FunctionFunction WriteSystemIni(AppName As String, KeyName As String, lpString As String) '写入System.ini文件
WriteProfileString AppName, KeyName, lpString
End FunctionFunction SystemPath() As String '取得System目录
Dim SystemDirectory As String
Dim x As Long
SystemDirectory = String(1024, 0)
x = GetSystemDirectory(SystemDirectory, 255)
SystemPath = Left$(SystemDirectory, x)
End FunctionFunction WindowsPath() As String '取得Windows的路径
Dim WindowsDirectory As String
Dim x As Long
WindowsDirectory = String(1024, 0)
x = GetWindowsDirectory(WindowsDirectory, 255)
WindowsPath = Left$(WindowsDirectory, x)
End Function
Option Explicit
Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, 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
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 LongPrivate IniFileName As String
Public ErrorMsg As String
Private Sub Class_Initialize()
IniFileName = vbNullString
ErrorMsg = vbNullString
End Sub
Public Sub SpecifyIni(FilePathName)
IniFileName = Trim(FilePathName)
End Sub
Private Function NoIniFile() As Boolean
NoIniFile = True
If IniFileName = vbNullString Then
ErrorMsg = "没有指定文件"
Exit Function
End If
ErrorMsg = vbNullString
NoIniFile = False
End Function
Public Function WriteString(Section As String, key As String, Value As String) As Boolean
WriteString = False
If NoIniFile() Then
Exit Function
End If
If WritePrivateProfileString(Section, key, Value, IniFileName) = 0 Then
ErrorMsg = "写入失败"
Exit Function
End If
WriteString = True
End Function Public Function ReadString(Section As String, key As String, Size As Long) As String
Dim ReturnStr As String
Dim ReturnLng As Long
ReadString = vbNullString
If NoIniFile() Then
Exit Function
End If
ReturnStr = Space(Size)
ReturnLng = GetPrivateProfileString(Section, key, vbNullString, ReturnStr, Size, IniFileName)
ReadString = Left(ReturnStr, ReturnLng)
End Function
Public Function ReadInt(Section As String, key As String) As Long
Dim ReturnLng As Long
ReadInt = 0
ReturnLng = GetPrivateProfileInt(Section, key, 0, IniFileName)
If ReturnLng = 0 Then
ReturnLng = GetPrivateProfileInt(Section, key, 1, IniFileName)
If ReturnLng = 1 Then
ErrorMsg = "不能读取"
Exit Function
End If
End If
ReadInt = ReturnLng
End Function
Public 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
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPublic Function ReadIniData(ByVal FileName As String, ByVal Entry As String, ByVal Field As String) As String
Dim TempString As String
ReadIniData = ""
Dim EntryValue As String
Dim EntrySize As Long, rc As Long
EntryValue = Space$(1000)
EntrySize = 1000If Field = "NULL" Then
rc = GetPrivateProfileString(Entry, vbNullString, "error", EntryValue, EntrySize, FileName)
ElseIf Entry = "NULL" Then
rc = GetPrivateProfileString(vbNullString, Field, "error", EntryValue, EntrySize, FileName)
Else
rc = GetPrivateProfileString(Entry, Field, "error", EntryValue, EntrySize, FileName)
End If
ReadIniData = Trim$(EntryValue)
'ReadIniData = EntryValueEnd FunctionPublic Function WriteIniData(ByVal FileName As String, ByVal Entry As String, ByVal Field As String, ByVal Data As String) As Boolean
WriteIniData = False
Dim rc As Long
rc = WritePrivateProfileString(Entry, Field, Data, FileName)
If rc <> 0 Then WriteIniData = True
End Function
'请於form中放3个TextBox,一个CommandBox
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
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 LongPrivate Sub Command1_Click()
Dim success As Long
success = WritePrivateProfileString("MyApp", "text1", Text1.Text, "c:\aa.ini")
'叁数一 Section Name
'叁数二 於.ini中的项目
'叁数三 项目的内容
'叁数四 .ini文件的名称
success = WritePrivateProfileString("MyApp", "text2", Text2.Text, "c:\aa.ini")
success = WritePrivateProfileString("MyApp2", "text3", Text3.Text, "c:\aa.ini")
End SubPrivate Sub Form_load()
Dim ret As Long
Dim buff As String
buff = String(255, 0)
ret = GetPrivateProfileString("Myapp", "text1", "text1", buff, 256, "c:\aa.ini")
'若.ini MyApp中无text1,则采用叁数三的值
Text1.Text = buff
buff = String(255, 0)
ret = GetPrivateProfileString("Myapp", "text2", "text2", buff, 256, "c:\aa.ini")
Text2.Text = buff
buff = String(255, 0)
ret = GetPrivateProfileString("Myapp2", "text3", "text3", buff, 256, "c:\aa.ini")
Text3.Text = buff
End Sub
所有教程均是各大专院校內部资料,全部由名师主讲,教程全程录制課堂上每一节课,使您不进大学也能接受到高等的教育,为您打下扎实的计算机基础!
http://www.cnandusa.com/home/xiawei
http://www.sygr.org/user/xiawei/web