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 92 93 94
| Option Strict Off
Option Explicit On
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Text
Imports System.Collections.Generic
Imports System.Collections.Specialized
Public Class cMySettings
Public PhoneCountryCodes As New List(Of String)()
Private Shared XMLFilename As String
Public Sub New()
SetToDefault(Me)
End Sub
Public Sub New(FileName As String)
XMLFilename = FileName
If Path.GetExtension(XMLFilename).ToLower() <> "xml" Then XMLFilename = XMLFilename + ".xml"
If File.Exists(XMLFilename) = False Then SerializeToXML(New cMySettings())
End Sub
Public Sub New(ByRef Settings As cMySettings)
Me.PhoneCountryCodes = New List(Of String)()
End Sub
Public Shared Sub SerializeToXML(ByRef Settings As cMySettings)
Dim xmlSerializer As New XmlSerializer(GetType(cMySettings))
Using xmlTextWriter As New XmlTextWriter(XMLFilename, Encoding.UTF8)
xmlTextWriter.Formatting = Formatting.Indented
xmlSerializer.Serialize(xmlTextWriter, Settings)
xmlTextWriter.Close()
End Using
End Sub
Public Shared Sub DeseralizeFromXML(ByRef Settings As cMySettings)
Dim fs As FileStream = Nothing
' do i have settings?
If File.Exists(XMLFilename) = True Then
Try
fs = New FileStream(XMLFilename, FileMode.Open, FileAccess.Read)
Dim xmlSerializer As New XmlSerializer(GetType(cMySettings))
Settings = xmlSerializer.Deserialize(fs)
Catch
'load error of some sort, or OBJECT deserialize error
'do we tell anyone?
Exit Sub
Finally
If Not fs Is Nothing Then fs.Close()
fs = Nothing
End Try
End If
End Sub
Public Shared Sub Copy(ByRef SourceSettings As cMySettings, ByRef DestSettings As cMySettings)
For i As Integer = 0 To 2 'avec for next
DestSettings.PhoneCountryCodes.Add(SourceSettings.PhoneCountryCodes(i))
Next
End Sub
Public Shared Sub SetToDefault(ByRef Settings)
'Settings.PhoneCountryCodes = New List(Of String) From {"0", "33", "00"}
Settings.PhoneCountryCodes = New List(Of String)()
Settings.PhoneCountryCodes.Add("0")
Settings.PhoneCountryCodes.Add("33")
Settings.PhoneCountryCodes.Add("00")
End Sub
Public Shared Function Compare(ByRef Settings1 As cMySettings, ByRef Settings2 As cMySettings) As Boolean
For i As Integer = 0 To 2
If Not String.Compare(Settings1.PhoneCountryCodes(i), Settings2.PhoneCountryCodes(i)) = 0 Then
Return False
End If
Next
Return True
End Function
End Class |