1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| Imports System.Xml.Serialization
<XmlRoot("setupsys")>
Public Class SetupSys
''' <summary>Les sections.</summary>
<XmlElement("section")>
Public Property Section As New List(Of Section)
''' <summary>Donne une valeur en fonction de sa section et de sa cle.</summary>
''' <param name="SectionName">Le nom de la section</param>
''' <param name="KeyName">Le nom de la clé</param>
''' <returns>Un objet de type cle</returns>
Public Function Item(ByVal SectionName As String, KeyName As String) As Cle
For Each sec In Me.Section
If sec.Section_name = SectionName Then
For Each cle As Cle In sec.Cle
If cle.Cle_name = KeyName Then
Return cle
End If
Next
End If
Next
Throw New Exception(String.Format("Section/clé introuvable"))
End Function
''' <summary>Ajoute une section et une clé ; si la section existe, rajoute la clé.</summary>
''' <param name="SectionName">La section</param>
''' <param name="KeyName">La clé</param>
''' <param name="ValMin">Le minimum</param>
''' <param name="ValMax">Le maximum</param>
''' <param name="ValPas">Le pas</param>
''' <remarks>Génére une erreur en cas de section/clé existant.</remarks>
Public Sub Add(ByVal SectionName As String, KeyName As String, ValMin As Integer, ValMax As Integer, ValPas As Integer)
' recherche si existe
For Each sec In Me.Section
If sec.Section_name = SectionName Then
For Each cle As Cle In sec.Cle
If cle.Cle_name = KeyName Then Throw New Exception("Section/cle existant.") ' la section/clé existe déjà
Next
' ajoute la clé à la section existante
sec.Cle.Add(New Cle(KeyName, ValMin, ValMax, ValPas))
Exit Sub
End If
Next
' Section non trouvée : ajoute la section et la clé
Dim NewSec As Section = New Section
NewSec.Section_name = SectionName
NewSec.Cle.Add(New Cle(KeyName, ValMin, ValMax, ValPas))
Me.Section.Add(NewSec)
End Sub
End Class
Public Class Section
''' <summary>Le nom de la section.</summary>
<XmlAttribute("section_name")>
Public Property Section_name As String = ""
''' <summary>Les clés.</summary>
<XmlElement("cle")>
Public Property Cle As New List(Of Cle)
End Class
Public Class Cle
Private Sub New()
End Sub
''' <summary>Cré une nouvelle instance de clé avec les valeurs des paramètres.</summary>
''' <param name="NomCle">La clé</param>
''' <param name="ValMin">Le minimum</param>
''' <param name="ValMax">Le maximum</param>
''' <param name="ValPas">Le pas</param>
''' <remarks></remarks>
Sub New(NomCle As String, ValMin As Integer, ValMax As Integer, ValPas As Integer)
Cle_name = NomCle
Min = ValMin
Max = ValMax
pas = ValPas
End Sub
''' <summary>Le nom de la clé.</summary>
<XmlAttribute("cle_name")>
Public Property Cle_name As String = ""
''' <summary>Le minimum.</summary>
<XmlAttribute("min")>
Public Property Min As Integer = 0
''' <summary>Le maximum.</summary>
<XmlAttribute("max")>
Public Property Max As Integer = 0
''' <summary>Le pas.</summary>
<XmlAttribute("pas")>
Public Property pas As Integer = 0
End Class |
Partager