Files
EgtDOORCreator/IniFile.vb
T
Dario Sassi ee575750da EgtDOORCreator :
- primo salvataggio.
2017-01-11 14:42:25 +00:00

259 lines
10 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 IniFile
Friend m_sIniFile As String = String.Empty
' Path Compo.ini file
Friend m_sCompoIniFile 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 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 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
' Compo
Public Function CompoGetPrivateProfileInt(IpAppName As String, IpKeyName As String, nDefault As Integer) As Integer
Return EgtUILib.GetPrivateProfileInt(IpAppName, IpKeyName, nDefault, m_sCompoIniFile)
End Function
Public Function CompoGetPrivateProfileDouble(IpAppName As String, IpKeyName As String, nDefault As Integer) As Double
Return EgtUILib.GetPrivateProfileDouble(IpAppName, IpKeyName, nDefault, m_sCompoIniFile)
End Function
Public Function CompoGetPrivateProfileString(IpAppName As String, IpKeyName As String, IpDefault As String, ByRef IpString As String) As Integer
Return EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, IpDefault, IpString, m_sCompoIniFile)
End Function
'Funzione che gestisce il nome della componente
Public Function CompoGetPrivateProfileNameGroup(IpAppName As String, IpKeyName As String, ByRef NameDDF As String, ByRef Name As String) As Boolean
Dim sVal As String = String.Empty
CompoGetPrivateProfileString(IpAppName, IpKeyName, "", sVal)
Dim sItems() As String = sVal.Split("/".ToCharArray)
If sItems.Count() = 2 Then
If IsNumeric(sItems(1)) Then
Name = EgtMsg(CInt(sItems(1)))
Else
Name = sItems(1)
End If
NameDDF = sItems(0)
Else
NameDDF = sItems(0)
Name = sItems(0)
Return True
End If
Return False
End Function
' Funzione che legge valori TextBox
Public Function CompoGetPrivateProfileTextBox(IpAppName As String, IpKeyName As String, ByRef DDFName As String, ByRef Name As String) As Boolean
Dim sVal As String = String.Empty
CompoGetPrivateProfileString(IpAppName, IpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
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
' Funzione che legge valori SpecialTextBox
Public Function CompoGetPrivateProfileSpecialTextBox(IpAppName As String, IpKeyName As String, ByRef DDFName As String, ByRef Name As String, ByRef ComboIndex As Integer, ByRef SelComboItemList As List(Of String)) As Boolean
Dim sVal As String = String.Empty
CompoGetPrivateProfileString(IpAppName, IpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
If sItems.Count() >= 2 Then
DDFName = sItems(0)
If IsNumeric(sItems(1)) Then
Name = (EgtMsg(CInt(sItems(1))))
Else
Name = DDFName
End If
If sItems.Count() >= 3 Then
ComboIndex = CInt(sItems(2))
SelComboItemList = New List(Of String)
For Index = 3 To sItems.Count() - 1
If IsNumeric(sItems(Index)) Then
SelComboItemList.Add(EgtMsg(CInt(sItems(Index))))
Else
SelComboItemList.Add(sItems(Index))
End If
Next
Return True
End If
End If
Return False
End Function
' Funzione che legge valori ComboBox
Public Function CompoGetPrivateProfileComboBox(IpAppName As String, IpKeyName As String, ByRef DDFName As String, ByRef Name As String) As Boolean
Dim sVal As String = String.Empty
CompoGetPrivateProfileString(IpAppName, IpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
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
' Funzione che legge valori ComboBoxList
Public Function CompoGetPrivateProfileComboBoxList(IpAppName As String, IpKeyName As String, ByRef ComboList As List(Of String), ByRef ComboListDDF As List(Of String)) As Integer
Dim sVal As String = String.Empty
CompoGetPrivateProfileString(IpAppName, IpKeyName, "", sVal)
Dim sItems() As String = sVal.Split(",".ToCharArray)
Dim ListType As Integer = 0
Dim ListPath As String = String.Empty
If sItems.Count() >= 2 Then
ListType = CInt(sItems(0))
If ListType = 0 Then
ComboList = New List(Of String)
ComboListDDF = New List(Of String)
For Index = 1 To sItems.Count() - 1
Dim sItemsDDF() As String = sItems(Index).Split("/".ToCharArray)
If sItemsDDF.Count() = 2 Then
ComboListDDF.Add(sItemsDDF(0))
If IsNumeric(sItemsDDF(1)) Then
ComboList.Add(EgtMsg(CInt(sItemsDDF(1))))
Else
ComboList.Add(sItemsDDF(1))
End If
Else
ComboList.Add(sItemsDDF(0))
End If
Next
Else
If Directory.Exists(sItems(1)) Then
ListPath = sItems(1)
ComboList = New List(Of String)
OpenDirectory(ListPath, ComboList, ListPath & "\")
Else
MessageBox.Show(EgtMsg(ConstMsg.MSG_ERROR) & ListPath, EgtMsg(ConstMsg.MSG_ERROR + 1), MessageBoxButton.OK, MessageBoxImage.Error)
ListPath = String.Empty
ComboList = New List(Of String)
Return ComboListResult.Mistake
End If
End If
Return ComboListResult.Found
End If
Return ComboListResult.NotFound
End Function
Private Sub OpenDirectory(DirectoryPath As String, ByRef ComboList As List(Of String), ListPath As String)
Dim SubDir() As String = Directory.GetDirectories(DirectoryPath)
For Index = 0 To SubDir.Count - 1
OpenDirectory(SubDir(Index), ComboList, ListPath)
Next
Dim Files() As String = Directory.GetFiles(DirectoryPath)
For Index = 0 To Files.Count - 1
ComboList.Add(Files(Index).Replace(ListPath, ""))
Next
End Sub
End Module
' Classe che identifica una lingua del programma con nome e path del file dei messaggi
Public Class Language
Private m_sName As String
Private m_sFilePath As String
Public Property Name As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
End Set
End Property
Public Property FilePath As String
Get
Return m_sFilePath
End Get
Set(value As String)
m_sFilePath = value
End Set
End Property
Sub New(sName As String, sFilePath As String)
Me.Name = sName
Me.FilePath = sFilePath
End Sub
End Class