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