Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
Daniel_L
Newbie
Newbie

Anmeldedatum: 29.01.2010
Beiträge: 3

Hilfe beim Einlesen von XML Datei
Verfasst am: 29.01.2010, 19:24

Hallo liebes Forum,

ich habe auf meiner Form 1 vier Labels die ich über einer Richtextbox fülle und diese Inhalte
werden wenn ich auf meinen Speichern Button drücke in eine XML Datei geschrieben.

Der Inhalt der XML Datei sieht dann so aus:

<Textfeld_Eins>Test
</Textfeld_Eins>
<Textfeld_Zwei>Test
</Textfeld_Zwei>
<Textfeld_Drei>Test
</Textfeld_Drei>
<Textfeld_Vier>Test
</Textfeld_Vier>


Der Code zum schreiben in die XML Datei ist dieser:

Public Sub Speichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Speichern.Click

'Kodierungsart
Dim enc As New System.Text.UnicodeEncoding

'XmlTextWriter Ausgabedatei erzeugen
Dim XMLWriter As Xml.XmlTextWriter = New Xml.XmlTextWriter("Save.xml", enc)

With XMLWriter

'Formatierung: 4er-Einzüge verwenden
.Formatting = Xml.Formatting.Indented
.Indentation = 4

'Schreiben erstes Element
.WriteStartElement("Textfeld_Eins")
.WriteString(Text1_Anzeige)
.WriteEndElement()

'Schreiben zweites Element
.WriteStartElement("Textfeld_Zwei")
.WriteString(Text2_Anzeige)
.WriteEndElement()

'Schreiben drittes Element
.WriteStartElement("Textfeld_Drei")
.WriteString(Text3_Anzeige)
.WriteEndElement()

'Schreiben viertes Element
.WriteStartElement("Textfeld_Vier")
.WriteString(Text4_Anzeige)
.WriteEndElement()

'Funktion schliesen
.Close()

End With

End Sub



Jetzt habe ich folgendes Problem wenn ich mein Programm beende und wieder starte sind die Labels natürlich
wieder leer. Ich will aber die Texte die ich vorher in die XML Datei geschrieben hab wieder zurück in die
Labels holen am besten gleich mit Form1_Load oder wenn nicht nehmen ich auch einen weiteren Button.

Habe schon fleisig gegoogelt habe aber nichts gefunden wo mich weiterbringt vielleicht könntet ihr mir
helfen

Vielen Dank Schonmal im Voraus
Daniel
_________________
 
snaut
Newbie
Newbie

Anmeldedatum: 30.01.2010
Beiträge: 3


Verfasst am: 30.01.2010, 11:14

Hallo Daniel_L,

warum nimmst du nicht My.Settings?

In den Projekteigenschaften unter Einstellungen fügst du 4 Felder vom Typ String hinzu (z.B. TextLabel1, Textlabel2, usw...).

Dann kannst du über My.Settings.TextLabel1 darauf zugreifen.

Im Form_Load fügst du ein:

Label1.Text = My.Settings.TextLabel1
usw...

Und da, wo die Einträge gespeichert werden sollen:
My.Settings.TextLabel1 = Label1.Text
...
My.Settings.Save

Mit My.Settings wird eine (xml) Datei abgelegt, die diese Einstellungen enthält. Wo die Datei abgelegt werden soll, kannst du auch festlegen.

Gruß, Snaut
 
Daniel_L
Newbie
Newbie

Anmeldedatum: 29.01.2010
Beiträge: 3


Verfasst am: 30.01.2010, 12:47

Hallo Snaut

hab das jetz mal probiert also komme in diesem Punkt auch nicht so recht weiter die Labels habe ich erstellt aber ich finde
keinen Datei wo das gespeichert ist bzw irgendwas wie es einstellen kann wo er die Datei hinspeichern soll. Ich hätte die Datei
gerne da wo meine .exe Datei ist.

Kannst du mir da kein Code Beispiel schreiben das ich mal einen Anhaltspunkt habe weil was ich so über Google finde da steige ich nicht durch

Danke
Daniel
 
snaut
Newbie
Newbie

Anmeldedatum: 30.01.2010
Beiträge: 3


Verfasst am: 30.01.2010, 13:34

Die Datei wird automatisch gespeichert wenn du My.Settings.Save aufrufst. Die Datei wird standardmäßig im Benutzerprofil gespeichert (C:\User\<Benutzerprofil>\AppData\Local\<Anwendungsname>\...). Mit Bereich oder auch Scope kannst du das verändern. Bedenke aber, dass unter Vista und Win7 im Programm Verzeichnis administrative Rechte benötigt werden damit etwas geschrieben werden kann.

Schaue dir am besten einfach mal die Links an:

Hier findest du ein Beispiel:
http://www.vbarchiv.net/tipps/tipp_1621.html

MSDN sagt dazu folgendes:
http://msdn.microsoft.com/de-de/library/saa62613.aspx

Und hier noch was zum Thema:
http://www.vbarchiv.net/forum/id10_i59699t59699.html
http://entwickler-forum.de/showthread.php?t=40055

Gruß, Snaut
 
Daniel_L
Newbie
Newbie

Anmeldedatum: 29.01.2010
Beiträge: 3


Verfasst am: 30.01.2010, 13:48

Hallo Snaut,

also das Speichern und wieder einlesen klappt echt super und wenn mann mal dahinter gestiegen ist wie es funtioniert ist es auch finde ich einfach (Danke für den Tipps mit my.settings)

Aber so wie ich es vorher gemacht habe hatte ich den Inhalt der Labels in einen xml Datei geschrieben die immer da war wo meinen .exe Datei war so hätte ich das jetzt auch gerne wieder. Weil dann kann das Programm auch vom USB Stick aus nutzen.
Hast du da einen Tipp wie ich das einstellen kann das er immer dahin schreibt wo meine .exe Datei liegt oder ist das ganz unmöglich? Auf den Seiten war ich auch schon habe aber nichts gefunden wo mir hilft, aber Mir geht es nur noch drum den Speicherort selbst zu bestimmen.

Danke Daniel
_________________


 
snaut
Newbie
Newbie

Anmeldedatum: 30.01.2010
Beiträge: 3


Verfasst am: 30.01.2010, 14:33


Mit My.Settings ist das nur möglich wenn du einen "Settings Provider" schreibst. Ein Beispiel findest du hier:
http://www.codeproject.com/KB/vb/CustomSettingsProvider.aspx

Einfacher ist in diesem Fall wohl aber eine Klasse für deine Einträge anzulegen die du dann serialisierst. Dabei kannst du dann selbst festlegen, wo die Datei gespeichert werden soll.
Hier ein Beispiel:
http://www.activevb.de/tipps/vbnettipps/tipp0025.html

Gruß, Snaut.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: xml datei, einlesen, richtextbox

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 633 30.10.2009, 12:26
Keine neuen Beiträge IntStr()funktion 510 11.10.2007, 09:49
Keine neuen Beiträge TopMost Funktion unter DirectX 432 27.07.2007, 11:48
Keine neuen Beiträge Wie Funktion nutzen ? 540 29.06.2007, 21:59
Keine neuen Beiträge update funktion einbauen 741 29.01.2007, 00:11
 



[ Time: 0.3300s ][ Queries: 101 (0.0335s) ][ GZIP on - Debug on ]