Files
EgtDOORCreator/IniFile.vb
T
2017-04-26 13:47:54 +00:00

192 lines
8.4 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Friend Module IniFile
Public Enum ComboListResult As Integer
MISTAKE = -1
NOTFOUND = 0
FOUND = 1
End Enum
' Path cartella Config
' Livello della chiave inserita nel PC
Friend m_nKeyLevel As Integer = 0
' Opzioni attive sulla chiave
Friend m_nKeyOptions As UInteger = 0
Friend Enum KEY_OPT As UInteger
BASE = 1
DOORS = 2
GUNSTOCK = 4
DOORCREATOR = 8
End Enum
Friend m_sConfigDir As String = String.Empty
' Path IniFile
Friend m_sIniFile As String = String.Empty
' Path Temp directory
Friend m_sTempDir As String = String.Empty
' Path Compo.ini file
Friend m_DefaultIniFile As String = String.Empty
' Path MyProject directory
Friend m_MyProjectDir As String = String.Empty
' Path Compo directory
Friend m_CompoDir As String = String.Empty
' Path del file ddf
Friend m_DDFFilePath As String = String.Empty
Friend m_sDoorsDirPath As String = String.Empty
' IniFile
Public Function GetPrivateProfileInt(IpAppName As String, IpKeyName As String, nDefault As Integer) As Integer
Return EgtUILib.GetPrivateProfileInt(IpAppName, IpKeyName, nDefault, m_sIniFile)
End Function
Public Function GetPrivateProfileDouble(IpAppName As String, IpKeyName As String, nDefault As Integer) As Double
Return EgtUILib.GetPrivateProfileDouble(IpAppName, IpKeyName, nDefault, m_sIniFile)
End Function
Public Function GetPrivateProfileString(IpAppName As String, IpKeyName As String, IpDefault As String, ByRef IpString As String) As Integer
Return EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, IpDefault, IpString, m_sIniFile)
End Function
Public Function GetPrivateProfileColor(IpAppName As String, IpKeyName As String, ByRef Col As EgtUILib.EgtInterface.Color3d) As Boolean
Return EgtUILib.GetPrivateProfileColor(IpAppName, IpKeyName, Col, m_sIniFile)
End Function
Public Function GetPrivateProfileWinPos(IpAppName As String, IpKeyName As String, ByRef nFlag As Integer, ByRef nLeft As Integer, ByRef nTop As Integer, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean
Return EgtUILib.GetPrivateProfileWinPos(IpAppName, IpKeyName, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFile)
End Function
Public Function GetPrivateProfileZoomWin(IpAppName As String, IpKeyName As String, ByRef bOutline As Boolean, ByRef Col As EgtUILib.EgtInterface.Color3d) As Boolean
Return EgtUILib.GetPrivateProfileZoomWin(IpAppName, IpKeyName, bOutline, Col, m_sIniFile)
End Function
Public Function GetPrivateProfileFloatingWinPos(lpAppName As String, lpKeyName As String, ByRef nState As String, ByRef nIndex As Integer, ByRef nLeft As Integer, ByRef nTop As Integer) As Boolean
Dim sVal As String = String.Empty
GetPrivateProfileString(lpAppName, lpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
If sItems.Count() >= 4 Then
nState = sItems(0)
nIndex = CInt(sItems(1))
nLeft = CInt(sItems(2))
nTop = CInt(sItems(3))
Return True
End If
Return False
End Function
Public Function GetPrivateProfileLanguage(ByVal lpAppName As String, ByVal lpKeyName As String) As Language
Dim sVal As String = String.Empty
GetPrivateProfileString(lpAppName, lpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
If sItems.Count() = 2 Then
Return New Language(sItems(0), sItems(1))
End If
Return Nothing
End Function
Public Function DefaultGetPrivateProfileString(IpAppName As String, IpKeyName As String, IpDefault As String, ByRef IpString As String) As Integer
Return EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, IpDefault, IpString, m_DefaultIniFile)
End Function
Public Function DefaultGetPrivateProfileList(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal List As List(Of String)) As Boolean
Dim sVal As String = String.Empty
DefaultGetPrivateProfileString(lpAppName, lpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
' se la lista ha almeno un elemento
If sItems.Count > 0 Then
For Index = 0 To sItems.Count() - 1
List.Add(Trim(sItems(Index)))
Next
End If
Return True
End Function
Public Function DefaultGetPrivateProfileObservableCollection(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal List As ObservableCollection(Of String)) As Boolean
Dim sVal As String = String.Empty
DefaultGetPrivateProfileString(lpAppName, lpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
' se la lista ha almeno un elemento
If sItems.Count > 0 Then
For Index = 0 To sItems.Count() - 1
List.Add(Trim(sItems(Index)))
Next
End If
Return True
End Function
Public Function DefaultGetPrivateProfilesMachining(ByVal lpAppName As String, ByVal lpKeyName As String, ByRef IpBoolean As Boolean) As Boolean
Dim sVal As String = String.Empty
DefaultGetPrivateProfileString(lpAppName, lpKeyName, "", sVal)
If String.Equals(Trim(sVal), "1") Then
IpBoolean = True
Else
IpBoolean = False
End If
Return IpBoolean
End Function
Public Function DefaultGetPrivateProfilesBevel(ByVal lpAppName As String, ByVal lpKeyName As String, ByRef IpBoolean As Boolean) As Boolean
Dim sVal As String = String.Empty
DefaultGetPrivateProfileString(lpAppName, lpKeyName, "", sVal)
If String.Equals(Trim(sVal), "1") Then
IpBoolean = True
Else
IpBoolean = False
End If
Return IpBoolean
End Function
Public Function WritePrivateProfileString(IpAppName As String, IpKeyName As String, ByRef IpString As String) As Boolean
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, IpString, m_sIniFile)
End Function
Public Function DefaultWritePrivateProfileString(IpAppName As String, IpKeyName As String, ByRef IpString As String) As Boolean
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, IpString, m_DefaultIniFile)
End Function
Public Function WritePrivateProfileWinPos(IpAppName As String, IpKeyName As String, ByRef nFlag As Integer, ByRef nLeft As Integer, ByRef nTop As Integer, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean
Return EgtUILib.WritePrivateProfileWinPos(IpAppName, IpKeyName, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFile)
End Function
Friend Sub OpenDirectory(DirectoryPath As String, ByRef ComboList As List(Of String))
RecursiveOpenDirectory(DirectoryPath, ComboList, DirectoryPath)
End Sub
Friend Sub RecursiveOpenDirectory(DirectoryPath As String, ByRef ComboList As List(Of String), InitialDirectory As String)
Dim SubDir() As String = Directory.GetDirectories(DirectoryPath)
For Index = 0 To SubDir.Count - 1
RecursiveOpenDirectory(SubDir(Index), ComboList, InitialDirectory)
Next
Dim Files() As String = Directory.GetFiles(DirectoryPath)
For Index = 0 To Files.Count - 1
Dim CurrFileExtension As String = Path.GetExtension(Files(Index))
If CurrFileExtension = ".lua" Or CurrFileExtension = ".nge" Then
ComboList.Add(If(CurrFileExtension.ToLower = ".lua", Files(Index).Replace(CurrFileExtension, "").Replace(InitialDirectory & "\", ""), Files(Index).Replace(InitialDirectory & "\", "")))
End If
Next
End Sub
' Funzione che legge valori del file Config.ini passando la path del file da leggere
Public Function GetPrivateProfileCompoName(IpAppName As String, IpKeyName As String, ByRef DDFName As String, ByRef Name As String, CompoIniPath As String) As Boolean
Dim sVal As String = String.Empty
' Carico il valore della stringa nel parametro sVal
EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, "", sVal, CompoIniPath)
Dim sItems() As String = sVal.Split("/"c)
If sItems.Count() >= 2 Then
DDFName = sItems(0)
If IsNumeric(sItems(1)) Then
Name = EgtMsg(CInt(sItems(1)))
Else
Name = DDFName
End If
Return True
End If
Return False
End Function
End Module