HEJ! Detta kanske kan vara användbart Om du vill använda xml för att lagra ini data är det enkelt att använda sig av xmlserializer och serialisera objekt som lagrar informationen. Jag brukar göra såhär: Tackar för hjälpen! Gör en klass som innehåller alla dina objekt och serialisera sedan detta objekt enl ovan. Då får du typ:XML som ini-fil
Undrar om någon kan vissa hur man löser detta snyggast:
Att kunna spara ner / läsa upp lite värden från klassera mot en XML-fil
(Istället för en ini-fil. Vill ej heller ha det i registret ifall man skall flytta programmet till annan dator)
Eller skall man använda sig av:
System.Configuration
/Alexander
<code>
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.Text = "Form1"
End Sub
#End Region
Public K1(10) As Klass1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ix As Integer
For ix = 1 To 5
K1(ix) = New Klass1()
K1(ix).X = ix * ix
K1(ix).Y = "KLASS1: " & ix.ToString
Next
'Ladda vid uppstart!
End Sub
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Dim w As Xml.XmlTextWriter
w = New Xml.XmlTextWriter("c:\text.xml", System.Text.Encoding.UTF8)
w.WriteStartDocument()
'Fattas mycket här!
w.Flush()
w.Close()
End Sub
End Class
Public Class Klass1
Public X As Integer
Public Y As String
End Class
</code>Sv: XML som ini-fil
http://www.codeproject.com/useritems/XmlRegistry.asp
MSSv: XML som ini-fil
Fixa en klass med de egenskaper du behöver lagra:
<code>
<Serializable()> _
Public Class Smiley
Public FirstName As String
Public LastName As String
Public Age As Integer
End Class
</code>
serialisera/deserialisera för att anpassa inidata:
<code>
' Serialisera
Dim serializer As XmlSerializer = New XmlSerializer(GetType(Smiley))
Dim writer As TextWriter = New StreamWriter("init.xml")
serializer.Serialize(writer, rSmiley)
writer.Close()
' Deserialisera
Dim reader As TextReader = New StreamReader("init.xml")
Dim rSmiley2 As Smiley
rSmiley2 = CType(serializer.Deserialize(reader), Smiley)
reader.Close()
</code>
Så här ser xmlfilen ut:
<code>
<?xml version="1.0" encoding="utf-8"?>
<Smiley xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FirstName>MyFirst</FirstName>
<LastName>MyLast</LastName>
<Age>30</Age>
</Smiley>
</code>Sv: XML som ini-fil
Nu undrar jag bara hur man gör när man skall spara undan 10st object (lika eller olika)
Dumpa alla i en Array?
Array->XMLSv: XML som ini-fil
<NyKlass>
<Obj_A>
<a/>
<b/>
<Obj_A>
<Obj_B>
<x/>
<y/>
<Obj_B>
</NyKlass>