' 發展單位:風禹科技驗證有限公司 ' 撰寫人:鄭子璉(Tzu-Lien, Cheng, 璉璉) ,成大水博肄,微軟最有價值專家 ' Web: http://tlcheng.twbbs.org/TLCheng/ E-Mail: qvb3377@ms5.hinet.net ' -------------------------------------------------------------------------------------- Module modProFile Public Enum enuNoGetData As Integer No_Default = 0 No_Common = 1 No_Null_Line = 2 End Enum Private lenNewLine As Integer = Len(vbNewLine) Public Function MyGetPrivateProfileSectionEx(ByVal lpApplicationName As String, ByVal lpFilename As String) As String Dim iniBuffer As String iniBuffer = myGetFullTextFile(lpFilename) Return StrGetPrivateProfileSection(lpApplicationName, iniBuffer) End Function Public Function MyMultiLineGetPrivateProfileSection(ByVal lpApplicationName As String, ByVal lpFilename As String, Optional ByVal wFlags As enuNoGetData = enuNoGetData.No_Common Or enuNoGetData.No_Null_Line) As String() Dim iniBuffer As String iniBuffer = myGetFullTextFile(lpFilename) Return StrMultiLineGetPrivateProfileSection(lpApplicationName, iniBuffer, wFlags) End Function Public Function MyGetPrivateProFileString(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpFilename As String, Optional ByVal lpDefault As String = "") As String Dim iniBuffer As String iniBuffer = myGetFullTextFile(lpFilename) Return StrGetPrivateProFileString(lpApplicationName, lpKeyName, iniBuffer, lpDefault) End Function Public Function MyGetPrivateProFileVal(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpFilename As String, Optional ByVal lpDefault As Double = 0) As Double Dim iniBuffer As String iniBuffer = myGetFullTextFile(lpFilename) Return StrGetPrivateProFileVal(lpApplicationName, lpKeyName, iniBuffer, lpDefault) End Function Public Function MyGetPrivateProFileVariant(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpFilename As String, Optional ByVal lpDefault As Object = Nothing) As Object Dim iniBuffer As String iniBuffer = myGetFullTextFile(lpFilename) Return StrGetPrivateProFileVariant(lpApplicationName, lpKeyName, iniBuffer, lpDefault) End Function Public Function StrGetPrivateProfileSection(ByVal lpApplicationName As String, ByVal strIniFile As String) As String Dim tLoc, tEnd As Integer lpApplicationName = "[" & lpApplicationName & "]" & vbNewLine tLoc = InStr(1, strIniFile, lpApplicationName) If tLoc = 0 Then Return "" Exit Function End If tLoc = tLoc + Len(lpApplicationName) tEnd = InStr(tLoc, strIniFile, vbNewLine & "[") If tEnd = 0 Then Return Mid(strIniFile, tLoc) Else Return Mid(strIniFile, tLoc, tEnd - tLoc) End If End Function Public Function StrMultiLineGetPrivateProfileSection(ByVal lpApplicationName As String, ByVal strIniFile As String, Optional ByVal wFlags As enuNoGetData = enuNoGetData.No_Common Or enuNoGetData.No_Null_Line) As String() Dim sBufLine As String() sBufLine = RemoveUnSelectLine(Split(StrGetPrivateProfileSection(lpApplicationName, strIniFile), vbNewLine), wFlags) If sBufLine.Length = 0 Then Return Nothing Else Return sBufLine End If End Function Public Function StrGetPrivateProFileString(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal strIniFile As String, Optional ByVal lpDefault As String = "") As String Dim tLoc, tEnd As Integer Dim tSection As String StrGetPrivateProFileString = lpDefault lpKeyName = vbNewLine & lpKeyName & "=" tSection = vbNewLine & StrGetPrivateProfileSection(lpApplicationName, strIniFile) tLoc = InStr(1, tSection, lpKeyName, 1) If tLoc = 0 Then Exit Function End If tLoc = tLoc + Len(lpKeyName) tEnd = InStr(tLoc, tSection, vbNewLine) If tEnd = 0 Then tSection = Mid(tSection, tLoc) Else tSection = Mid(tSection, tLoc, tEnd - tLoc) End If StrGetPrivateProFileString = tSection End Function Public Function StrGetPrivateProFileVal(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal strIniFile As String, Optional ByVal lpDefault As Double = 0) As Double Dim tVal As String StrGetPrivateProFileVal = lpDefault tVal = StrGetPrivateProFileString(lpApplicationName, lpKeyName, strIniFile, "") If tVal <> "" Then StrGetPrivateProFileVal = CDbl(tVal) End If End Function Public Function StrGetPrivateProFileVariant(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal strIniFile As String, Optional ByVal lpDefault As Object = Nothing) As Object Dim tVal As String StrGetPrivateProFileVariant = lpDefault tVal = StrGetPrivateProFileString(lpApplicationName, lpKeyName, strIniFile, "") If tVal <> "" Then StrGetPrivateProFileVariant = CVariant(tVal) End If End Function End Module