Kan någon ge mig några bra exempel på hur jag jag sparar ner mina värden till en xml fil på ett enkelt sätt? Har letat lite överallt men inte hittat något bra. Ett sätt är att serialisera en klass. Har lite exempelkod i C# som jag hoppas du kan tolka. jag lyckas spara en xml fil med din kod så här: så här har jag gjort. Lyckas dock inte spara filen. Kan inte på rak hand se vad som skulle vara fel, på vilket sätt fungerar det inte? Borde vara något åt detta håller: Ja det fungerar! men inte hämtningen. Så här har jag gjort: Märkligt, det borde bli något felmeddelande om det är fel. Får ta och testa detta ikväll när jag har lite bättre tid då... För informationen finns i filen antar jag? Det måste vara något annat fel, din kod fungerar för mig. Klistrar in hela koden jag testade: Joel, det är inte så att du bara glömer att använda värdet du fått i k, gör du något med k-variabeln i din sub förutom att du sätter dess värde i 4:e raden från slutet. Ni har helt rätt. Jag gjorde inget med värdena. Jag tror jag lagt det fel på något sätt. Nu fungerar det! tack så mycket! jag hittade en sak. Hade faktiskt precis denna fundering själv häromveckan :) Såhär (i princip) löste jag det: Såg att Johan han svara före mig men vill ändå tala om att Color har en funktion för att fixa detta.Spara värden som xml
Jag kan förklara lite hur jag har tänkt mig.
Jag har 5 olika värden på en sida. vi kan säga att de heter "txtett", "txttvå", "txttre", "txtfyra" och "txtfem" för enkelhetens skull. det här är textboxar.
jag har en knapp som heter "spara inställningar" som ska fungera på så sätt att den sparar ner de här värdena i en xml fil. Jag vill kunna välja plats och namn när xml:en ska läggas när jag trycker på knappen.
Det ska också finnas en knapp där jag kan hämta de inställningar jag vill ha till de 5 textboxarna. "hämta inställningar" Också där ska jag kunna välja den xml fil jag vill använda mig av.
borde väl vara hyfsat enkelt eller? Har dock aldrig använt mig av xml så jag har ingen aning. :)Sv: Spara värden som xml
Klassen:
public class MinKlass
{
public string Värde1;
public string Värde2;
}
Spara:
MinKlass k = new MinKlass();
k.Värde1 = "hej";
k.Värde2 = "hopp";
System.Xml.Serialization.XmlSerializer s = new System.Xml.Serialization.XmlSerializer(typeof(MinKlass));
System.IO.StreamWriter sw = new System.IO.StreamWriter("Inställningar.xml");
s.Serialize(sw, k);
sw.Close();
Ladda tillbaka:
System.Xml.Serialization.XmlSerializer s = new System.Xml.Serialization.XmlSerializer(typeof(MinKlass));
System.IO.StreamReader sw = new System.IO.StreamReader("Inställningar.xml");
MinKlass k = s.Deserialize(sw) as MinKlass;
sw.Close();
/JohanSv:Spara värden som xml
Private Sub bSpara_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSpara.Click
Dim k As New Parametrar()
k.MaxLim = lblMaxLim.Text
k.MinLim = lblMinLim.Text
k.RefVardeKalib = lblFramdragKalib.Text
k.RefVardeFramdrag = lblRefPos.Text
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamWriter("Inställningar_Medmaskin.xml")
s.Serialize(sw, k)
sw.Close()
End Sub
däremot att hämta in inställningarna fungerar inte. jag lyckas nog itne riktigt med din kod kanske. är det här rätt? :
Private Sub bHamta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bHamta.Click
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamReader("Inställningar_Medmaskin.xml")
Dim k As Parametrar = TryCast(s.Deserialize(sw), Parametrar)
sw.Close()
End Sub
Public Class Parametrar
Public MaxLim As String
Public MinLim As String
Public RefVardeKalib As String
Public RefVardeFramdrag As String
End Class
har du någon idé på hur man gör med en "openfiledialog" eller "savefiledialog" i din kod?
Sv:Spara värden som xml
Private Sub bSpara_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSpara.Click
Dim myStream As Stream
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "xml files (*.xml)|*.xml|xml files (*.xml)|*.xml"
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
myStream = saveFileDialog1.OpenFile()
If (myStream IsNot Nothing) Then
Dim k As New Parametrar()
k.MaxLim = lblMaxLim.Text
k.MinLim = lblMinLim.Text
k.RefVardeKalib = lblFramdragKalib.Text
k.RefVardeFramdrag = lblRefPos.Text
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamWriter("Inställningar_Medmaskin.xml")
s.Serialize(sw, k)
sw.Close()
myStream.Close()
End If
End If
End Sub
Sv: Spara värden som xml
/JohanSv: Spara värden som xml
Private Sub bSpara_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSpara.Click
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "xml files (*.xml)|*.xml|xml files (*.xml)|*.xml"
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
Dim k As New Parametrar()
k.MaxLim = lblMaxLim.Text
k.MinLim = lblMinLim.Text
k.RefVardeKalib = lblFramdragKalib.Text
k.RefVardeFramdrag = lblRefPos.Text
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamWriter(saveFileDialog1.FileName)
s.Serialize(sw, k)
sw.Close()
End If
End Sub
/Johan
Sv:Spara värden som xml
Private Sub bHamta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bHamta.Click
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.Filter = "xml files (*.xml)|*.xml|xml files (*.xml)|*.xml"
openFileDialog1.FilterIndex = 2
openFileDialog1.RestoreDirectory = True
If openFileDialog1.ShowDialog() = DialogResult.OK Then
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamReader(openFileDialog1.FileName)
Dim k As Parametrar = TryCast(s.Deserialize(sw), Parametrar)
sw.Close()
End If
End Sub
får inte in värdena helt enkelt. inget felmeddelande heller.
Sv: Spara värden som xml
/JohanSv: Spara värden som xml
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim k As New Parametrar()
k.a = Me.TextBox1.Text
k.b = Me.TextBox2.Text
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamWriter("Inst.xml")
s.Serialize(sw, k)
sw.Close()
End Sub
Public Class Parametrar
Public a As String
Public b As String
End Class
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamReader("Inst.xml")
Dim k As Parametrar = TryCast(s.Deserialize(sw), Parametrar)
sw.Close()
MessageBox.Show(k.a & " " & k.b)
End Sub
/Johan
Sv: Spara värden som xml
Private Sub bHamta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bHamta.Click
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.Filter = "xml files (*.xml)|*.xml|xml files (*.xml)|*.xml"
openFileDialog1.FilterIndex = 2
openFileDialog1.RestoreDirectory = True
If openFileDialog1.ShowDialog() = DialogResult.OK Then
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamReader(openFileDialog1.FileName)
Dim k As Parametrar = TryCast(s.Deserialize(sw), Parametrar)
sw.Close()
End If
End Sub
I Johans exempelkod så kollar han ju egenskaperna i k i anropet av MessageBox.Show
Dim s As New System.Xml.Serialization.XmlSerializer(GetType(Parametrar))
Dim sw As New System.IO.StreamReader("Inst.xml")
Dim k As Parametrar = TryCast(s.Deserialize(sw), Parametrar)
sw.Close()
MessageBox.Show(k.a & " " & k.b)
Du borde väl ha ungefär något sådant här i din kod.
Dim sw As New System.IO.StreamReader("Inst.xml")
Dim k As Parametrar = TryCast(s.Deserialize(sw), Parametrar)
sw.Close()
lblMaxLim.Text = k.MaxLim
lblMinLim.Text = k.MinLim
lblFramdragKalib.Text = k.RefVardeKalib
lblRefPos.Text = k.RefVardeFramdrag
Sv:Spara värden som xml
Sv:Spara värden som xml
jag sparar ett värde så här: k.Spik1Lage1 = bSpik1Lage1.ForeColor.Name
om jag vill hämta den så kan jag ju inte skriva: bSpik1Lage1.ForeColor.Name = k.Spik1Lage1
Hur gör jag då?Sv: Spara värden som xml
k.Spik1Lage1 = ColorTranslator.ToHtml(bSpik1Lage1.ForeColor)
bSpik1Lage1.ForeColor = ColorTranslator.FromHtml(k.Spik1Lage1)
/JohanSv: Spara värden som xml
Du kan spara värdet så här
k.a = Me.TextBox1.BackColor.Name
k.b = Me.TextBox1.ForeColor.Name
och hämta tillbaka det så här
Me.TextBox1.BackColor = Color.FromName(k.a)
Me.TextBox1.ForeColor = Color.FromName(k.b)
[Edit]
Titta även på metoderna .ToArbg och .FromArbg
k.b = Me.TextBox1.ForeColor.ToArgb().ToString()
Me.TextBox1.ForeColor = Color.FromArgb(Integer.Parse(k.a))