'---------------------------------------------------------------------------- ' EgalTech 2017-2017 '---------------------------------------------------------------------------- ' File : IniFile.vb Data : 08.04.17 Versione : 1.8d1 ' Contenuto : Modulo IniFile per gestione lettura/scrittura da file INI. ' ' ' ' Modifiche : 08.04.17 ES Creazione modulo. ' ' '---------------------------------------------------------------------------- Imports System.Collections.ObjectModel Imports EgtUILib Imports EgtWPFLib5 Public Module BTLIniFile Public m_sBTLIniFile As String Public Function GetBeamPrivateProfileProcessList(IpGRPType As GRPType, ByRef IpProcessList As ObservableCollection(Of Integer)) As Boolean Dim PRCList As New ObservableCollection(Of Integer) Dim sProcess As String = String.Empty If EgtUILib.GetPrivateProfileString(PROCESSINGS, IpGRPType, String.Empty, sProcess, m_sBTLIniFile) > 0 Then Dim sProcesses() As String = sProcess.Split(","c) ' verifico ce ne sia almeno uno If sProcesses.Count >= 0 Then ' cancello spazi For Index = 0 To sProcesses.Count - 1 sProcesses(Index) = sProcesses(Index).Trim() Dim nProcess As Integer Integer.TryParse(sProcesses(Index), nProcess) PRCList.Add(nProcess) Next IpProcessList = PRCList Return True End If End If Return False End Function Public Function GetBeamPrivateProfileGRPList(IpGRP As Integer, IpPRC As Integer, ByRef IpGRPList As ObservableCollection(Of Integer)) As Boolean IpGRPList.Clear() ' ciclo sui tipi di gruppo Dim sBTLGroup As String = String.Empty If EgtUILib.GetPrivateProfileString(IpGRP & "." & IpPRC, BTL_FTR_GRP, String.Empty, sBTLGroup, m_sBTLIniFile) > 0 Then Dim sBTLGroups() As String = sBTLGroup.Split(","c) ' verifico numero minimo di parametri If sBTLGroups.Count >= 0 Then ' cancello spazi For Index = 0 To sBTLGroups.Count - 1 sBTLGroups(Index) = sBTLGroups(Index).Trim() Next ' creo parametro For Each Group In sBTLGroups Dim nGroup As Integer = -1 Integer.TryParse(Group, nGroup) If IpGRP = GRPType.L And (nGroup = 0 OrElse nGroup = 3 OrElse nGroup = 4) Then IpGRPList.Add(nGroup) ElseIf IpGRP = GRPType.T And (nGroup = 1 OrElse nGroup = 2) Then IpGRPList.Add(nGroup) End If Next End If End If Return IpGRPList.Count > 0 End Function 'Public Function GetBeamPrivateProfileVerifyGRP(IpAppName As String, IpGPRtoVerify As String) As Boolean ' ' ciclo sui tipi di gruppo ' Dim sBTLGroup As String = String.Empty ' If EgtUILib.GetPrivateProfileString(IpAppName, BTL_FTR_GRP, String.Empty, sBTLGroup, m_sBTLIniFile) > 0 Then ' Dim sBTLGroups() As String = sBTLGroup.Split(","c) ' ' verifico numero minimo di parametri ' If sBTLGroups.Count >= 0 Then ' ' cancello spazi ' For Index = 0 To sBTLGroups.Count - 1 ' sBTLGroups(Index) = sBTLGroups(Index).Trim() ' Next ' End If ' Return sBTLGroups.Contains(IpGPRtoVerify) ' End If ' Return False 'End Function Public Function CalcBeamPrivateProfileGRP(nGRP As Integer) As Integer If nGRP = 1 Or nGRP = 2 Then Return 1 ElseIf nGRP = 0 Or nGRP = 3 Or nGRP = 4 Then Return 0 Else Return nGRP End If End Function Public Function GetBeamPrivateProfileName(IpGRP As Integer, IpPRC As Integer, ByRef IpBTLFeature As BTLFeatureVM) As Boolean Dim sBTLName As String = String.Empty ' creo lista GRP e leggo nome If EgtUILib.GetPrivateProfileString(CalcBeamPrivateProfileGRP(IpGRP) & "." & IpPRC, BTL_FTR_NAME, String.Empty, sBTLName, m_sBTLIniFile) > 0 Then ' verifico numero minimo di parametri If Not String.IsNullOrEmpty(sBTLName) Then Dim nNameMsg As Integer Integer.TryParse(sBTLName, nNameMsg) IpBTLFeature.SetName(EgtMsg(nNameMsg)) Return True End If End If Return False End Function Public Function GetBeamPrivateProfileName(IpGRP As Integer, IpPRC As Integer) As String Dim sBTLName As String = String.Empty ' creo lista GRP e leggo nome If EgtUILib.GetPrivateProfileString(CalcBeamPrivateProfileGRP(IpGRP) & "." & IpPRC, BTL_FTR_NAME, String.Empty, sBTLName, m_sBTLIniFile) > 0 Then ' verifico numero minimo di parametri If Not String.IsNullOrEmpty(sBTLName) Then Dim nNameMsg As Integer Integer.TryParse(sBTLName, nNameMsg) Return EgtMsg(nNameMsg) Return True End If End If Return "" End Function Public Function GetBeamPrivateProfileParam(IpGRP As Integer, IpPRC As Integer, IsP As Boolean, IpFeatureParamIndex As String, IpParentFeature As BTLFeatureVM, ByRef IpBTLParam As BTLParamVM) As Boolean Dim sBTLParam As String = String.Empty If EgtUILib.GetPrivateProfileString(CalcBeamPrivateProfileGRP(IpGRP) & "." & IpPRC, If(IsP, "P", "Q") & IpFeatureParamIndex, String.Empty, sBTLParam, m_sBTLIniFile) > 0 Then Dim sBTLParamParams() As String = sBTLParam.Split(","c) ' verifico numero minimo di parametri If sBTLParamParams.Count >= 6 Then ' cancello spazi For Index = 0 To sBTLParamParams.Count - 1 sBTLParamParams(Index) = sBTLParamParams(Index).Trim() Next ' creo parametro If sBTLParamParams(0) = "d" OrElse sBTLParamParams(0) = "l" Then Dim dMin As Double Dim dMax As Double Dim dDefault As Double StringToDouble(sBTLParamParams(2), dMin) StringToDouble(sBTLParamParams(3), dMax) StringToDouble(sBTLParamParams(4), dDefault) Dim ParamType As BTLParamType If sBTLParamParams(0) = "d" Then ParamType = BTLParamType.DOUBLE_ Else ParamType = BTLParamType.LENGTH End If IpBTLParam = New BTLParamVM(IpParentFeature, IsP, ParamType, sBTLParamParams(1), dMin, dMax, dDefault, sBTLParamParams(5)) Return Not IsNothing(IpBTLParam) ElseIf sBTLParamParams(0) = "s" Then IpBTLParam = New BTLParamVM(IpParentFeature, IsP, BTLParamType.STRING_, sBTLParamParams(1), sBTLParamParams(5)) Return Not IsNothing(IpBTLParam) ElseIf sBTLParamParams(0) = "c" Then Dim nMin As Integer Dim nMax As Integer Dim nDefault As Integer Integer.TryParse(sBTLParamParams(2), nMin) Integer.TryParse(sBTLParamParams(3), nMax) Integer.TryParse(sBTLParamParams(4), nDefault) ' recupero lista valori Dim ValueList As New List(Of String) IpBTLParam = New BTLParamVM(IpParentFeature, IsP, BTLParamType.COMBO, sBTLParamParams(1), nMin, nMax, nDefault, sBTLParamParams(5), ValueList) Return Not IsNothing(IpBTLParam) End If End If End If Return False End Function End Module