Variablen-String in XML Datei speichern und im Programm ersetzten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Variablen-String in XML Datei speichern und im Programm ersetzten

    Hallo Community,

    ich steh vor einem kleinen Problem. Ich hoffe ihr könnt mir weiterhlefen.

    Ich wollte in ein meiner Anwendungen (Programmiert über VS 2015 in VB.net ) eine XML Datei einbauen in der ich einen Variablen namen verwende und dann im Programm durch den wert austausche.
    Beispiel: in VB gibts die Variablen

    VB.NET-Quellcode

    1. Public Shared Variable1 As String = "AB"
    2. Public Shared Variable2 As String = "CD"


    nun würde Ich gerne in der XML Datei

    XML-Quellcode

    1. <?xml version="1.0"?>
    2. <doc>
    3. <Test>
    4. <Wert>
    5. "Test" &amp; Variable1 &amp; "Test"
    6. </Wert>
    7. </Test>
    8. </doc>

    den Text so verwenden. und dann im Programm durch den Wert der in Variable1 gespeichert ist austauschen/ersetzten.



    Ist dies überhaupt möglich ? und Wenn ja wie ? :?:

    Vielen Dank und einen schönen 3.Advent :love:
    @Andy112 Willkommen im Forum. :thumbup:
    Mach Dir ne Datenklasse, in der Du Deine Daten reinpackst und die Du dann XML-serialisierst:
    Form mit 2 Button sowie eine Datenklasse:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private XmlFile As String = "c:\temp\data.xml" ' Pfad zum Speichern / Lesen
    3. Private Data As MyData
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. '' Daten-Instanz erstellen und befüllen
    6. 'Me.Data = New MyData()
    7. 'Me.Data.name = "Test Status"
    8. 'Me.Data.address = "0000"
    9. 'Me.Data.type = 9999
    10. 'Me.Data.timestamp = DateTime.Now
    11. 'Me.Data.flags = 0
    12. 'Me.Data.user = "Tester"
    13. 'Me.Data.SingleValues = New List(Of Integer) From {1, 2, 3, 4, 5}
    14. End Sub
    15. ''' <summary>
    16. ''' Daten auf Festplatte schreiben
    17. ''' </summary>
    18. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    19. Me.Data.WriteData(Me.XmlFile)
    20. End Sub
    21. ''' <summary>
    22. ''' Daten von Festplatte laden
    23. ''' </summary>
    24. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    25. Me.Data = MyData.LoadData(Me.XmlFile)
    26. End Sub
    27. End Class

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Text
    3. Imports System.Xml.Serialization
    4. ''' <summary>
    5. ''' Datenklasse
    6. ''' </summary>
    7. ''' <remarks>mit XML-Serialisierung</remarks>
    8. Public Class MyData
    9. ' alle vorkommenden Daten
    10. Public Property name() As String
    11. Public Property address() As String
    12. Public Property type() As Integer
    13. Public Property timestamp() As DateTime
    14. Public Property flags() As Integer
    15. Public Property user() As String
    16. Public Property SingleValues() As List(Of Integer)
    17. Public Sub New()
    18. ' Hier die Daten mit Defaultwerten befüllen oder nicht
    19. Me.name = "Hase"
    20. Me.SingleValues = New List(Of Integer)
    21. End Sub
    22. ''' <summary>
    23. ''' Daten aus einer Datei lesen
    24. ''' </summary>
    25. ''' <param name="file">Dateiname</param>
    26. ''' <returns>die geladene Instanz</returns>
    27. Public Shared Function LoadData(file As String) As MyData
    28. Dim data As New MyData()
    29. Try
    30. ' Deserialize XML file to a new object.
    31. Using sr As New StreamReader(file, Encoding.Default)
    32. Dim x As New XmlSerializer(data.GetType())
    33. data = DirectCast(x.Deserialize(sr), MyData)
    34. End Using
    35. Return data
    36. Catch
    37. ' nix tun, die Daten-Instanz ist nicht valid,
    38. ' es wird die Instanz übergeben, die bei New() erzeugt wird
    39. End Try
    40. Return data
    41. End Function
    42. ''' <summary>
    43. ''' Daten in eine Datei schreiben
    44. ''' </summary>
    45. ''' <param name="file">Dateiname</param>
    46. Public Sub WriteData(file As String)
    47. ' Serialize object to a XML file.
    48. Using sw As New StreamWriter(file, False, Encoding.Default)
    49. Dim x As New XmlSerializer(Me.GetType())
    50. x.Serialize(sw, Me)
    51. End Using
    52. End Sub
    53. End Class

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!