VB.net xml datei speichern und diese anschließend verschieben...

Diskutiere VB.net xml datei speichern und diese anschließend verschieben... im Developer Network Forum im Bereich Hardware & Software Forum; ich muss ja keine map modifizieren sondern nur eine mapliste aber ich glaube wir komen dem schon näher
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #21
nikeee13

nikeee13

Bekanntes Mitglied
Dabei seit
04.11.2006
Beiträge
556
Reaktionspunkte
0
Eine Map kann der XmlSerializer leider nicht so ohne weiteres. Hier ein kleines Beispiel mit einer List in C#:
Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Xml.Serialization;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<String> list = new List<String>();

            list.Add("value1");
            list.Add("value2");
            list.Add("value3");

            XmlSerializer xs = new XmlSerializer(list.GetType());
            xs.Serialize(Console.Out, list);
        }
    }
}
Die eigentliche Arbeit machen die beiden letzten Zeilen. Müßte in VB äjnlich aussehen.

ich muss ja keine map modifizieren sondern nur eine mapliste
aber ich glaube wir komen dem schon näher
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #22
N

Nolath

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
1.121
Reaktionspunkte
1
Dann mache eine Textbox1 und schreibe dort den Ihnalt der maplist rein (oder zur Laufzeit wie folgt):
Module1:
Public umbruch = Chr(13) & Chr(10) 'Zeilenumbruch, ist komfortabler

Form1:
Textbox1.visible = false
Textbox1.Text = "<MapList Version="1.0">" & umbruch & "<Map Name="map1" />" & umbruch & "<Map Name="map2" />" 'wenn die zeile lang genug ist eine neue
Textbox1.Text += "<Map Name="map3" />" & umbruch & "<Map Name="map4" />" 'usw.

'Dann: xml-Datei im gleichen Verzeichnis wie das Programm erzeugen
my.computer.fileSystem.writealltext("maplist.xml", String.empty, false)
my.computer.fileSystem.writealltext("maplist.xml", Textbox1.text, true)

'Dann noch die XML-Datei verschieben, wie oben beschrieben
Dim sourceFileName As String = "maplist.xml"
Dim destFileName As String = "C:\Pfad\maplistnew.xml"

File.Copy(sourceFileName, destFileName)


Oder habe ich das falsch verstanden?
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #23
nikeee13

nikeee13

Bekanntes Mitglied
Dabei seit
04.11.2006
Beiträge
556
Reaktionspunkte
0
Dann mache eine Textbox1 und schreibe dort den Ihnalt der maplist rein (oder zur Laufzeit wie folgt):
Module1:
Public umbruch = Chr(13) & Chr(10) 'Zeilenumbruch, ist komfortabler

Form1:
Textbox1.visible = false
Textbox1.Text = "<MapList Version="1.0">" & umbruch & "<Map Name="map1" />" & umbruch & "<Map Name="map2" />" 'wenn die zeile lang genug ist eine neue
Textbox1.Text += "<Map Name="map3" />" & umbruch & "<Map Name="map4" />" 'usw.

'Dann: xml-Datei im gleichen Verzeichnis wie das Programm erzeugen
my.computer.fileSystem.writealltext("maplist.xml", String.empty, false)
my.computer.fileSystem.writealltext("maplist.xml", Textbox1.text, true)

'Dann noch die XML-Datei verschieben, wie oben beschrieben
Dim sourceFileName As String = "maplist.xml"
Dim destFileName As String = "C:\Pfad\maplistnew.xml"

File.Copy(sourceFileName, destFileName)


Oder habe ich das falsch verstanden?

ja ganz genau so!

Textbox1.Text += "<Map Name="map3" />" & umbruch & "<Map Name="map4" />" 'usw.

ihc weiss nciht, wie is das problem sonst ausdrücken soll...
schätze du weisst , was gemeint ist...

dim test as string = textbox2.text
'd.h. : textbox2.text = <Map Name="map4" />
und dann megaviele textboxen oder labels...
 
Zuletzt bearbeitet:
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #24
N

Nolath

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
1.121
Reaktionspunkte
1
du meinst das die mapnamen variablen sind :confused:
dim map1 as string = "karte1"
dim map2 as string = "karte2"
dim map3 as string = "karte3"
dim map4 as string = "karte4"
dim map5 as string = "karte5"
usw

Textbox1.Text = "<MapList Version="1.0">" & umbruch & "<Map Name= & map1 & />" & umbruch & "<Map Name= & map2 & />"

Oder liegt es an etwas anderem?


//Edit: So, dein Edit gesehen!
Nein, ich meine packe den gesamten Inhalt der XML-Datei in eine Textbox.
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #25
nikeee13

nikeee13

Bekanntes Mitglied
Dabei seit
04.11.2006
Beiträge
556
Reaktionspunkte
0
du meinst das die mapnamen variablen sind :confused:
dim map1 as string = textbox1.text
dim map2 as string = textbox2.text
dim map3 as string = textbox3.text
dim map4 as string = textbox4.text
dim map5 as string = textbox5.text
usw

Textbox1.Text = "<MapList Version="1.0">" & umbruch & "<Map Name= & map1 & />" & umbruch & "<Map Name= & map2 & />"

Oder liegt es an etwas anderem?

doch ja genau so oder einfach

dim map1 as string = label1.text
dim map2 as string = label2.text
dim map3 as string = label3.text
dim map4 as string = label4.text
dim map5 as string = label5.text
...
und die eigenschaften der labels auf visible = false stellen...
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #26
N

Nolath

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
1.121
Reaktionspunkte
1
aso, dann einfach:
dim map1 as string = "karte1"
dim map2 as string = "karte2"
dim map3 as string = "karte3"
dim map4 as string = "karte4"
dim map5 as string = "karte5"

und des wird alles in textbox1 geschrieben
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #27
nikeee13

nikeee13

Bekanntes Mitglied
Dabei seit
04.11.2006
Beiträge
556
Reaktionspunkte
0
aso, dann einfach:
dim map1 as string = "karte1"
dim map2 as string = "karte2"
dim map3 as string = "karte3"
dim map4 as string = "karte4"
dim map5 as string = "karte5"

und des wird alles in textbox1 geschrieben

ja nicht so dierekt...

man kann ja <Map Name="map1" /> nicht einfach in einen string konvertieren sonderen mann muss den um weg über ein label nehmen d.h.:

'voreinsellung von label1 = <Map Name="map1" /> (also das in die anfangseigenschaft kopieren)

'dann:

dim map as string = label1.text

usw...
' am ende kommt dann raus:

Code:
Module1:
Public umbruch = Chr(13) & Chr(10) 'Zeilenumbruch, ist komfortabler

Form1:
Textbox1.visible = false
Textbox1.Text = "<MapList Version="1.0">" & umbruch & map1  & umbruch & map2 'wenn die zeile lang genug ist eine neue
Textbox1.Text += map3 & umbruch & map4 'usw.

'Dann: xml-Datei im gleichen Verzeichnis wie das Programm erzeugen
my.computer.fileSystem.writealltext("maplist.xml", String.empty, false)
my.computer.fileSystem.writealltext("maplist.xml", Textbox1.text, true)

'Dann noch die XML-Datei verschieben, wie oben beschrieben
Dim sourceFileName As String = "maplist.xml"
Dim destFileName As String = "C:\Pfad\maplistnew.xml"

File.Copy(sourceFileName, destFileName)

das <MapList Version="1.0"> dann einfach auch in nen unsichtbarea label kopieren

das müsste eigentlcih gehen oder?

kann sein das fehler drinne sind....

man kann das doch alle umgehen indem man den GANZEN text des xml-dokuments in eine textbox einfügt oder?

also dann einfach :
- <MapList Version="1.0">
<Map Name="map1" />
<Map Name="map2" />
<Map Name="map3" />
<Map Name="map4" />
<Map Name="map5" />
<Map Name="map6" />
<_Map Name="map7" />
<Map Name="map8" />
<Map Name="map9" />
<Map Name="map10" />
<Map Name="map12" />
<Map Name="map13" />
<Map Name="map14" />
<Map Name="map15" />
<_Map Name="map16" />
<Map Name="map17" />
<Map Name="map18" />
<Map Name="map19" />
<Map Name="map20" />
<Map Name="map21" />
<Map Name="map22" />
<Map Name="map23" />
<Map Name="map24" />
<Map Name="map25" />
</MapList>
in die textbox einfügen oder?
und dann:
my.computer.fileSystem.writealltext("maplist.xml", String.empty, false)
my.computer.fileSystem.writealltext("maplist.xml", Textbox1.text, true)
als letztes dann ncoh:
Dim sourceFileName As String = "maplist.xml"
Dim destFileName As String = "C:\Pfad\maplistnew.xml"

da sind sowieso fehler drinne aber so in der art müsstes doch gehen oder?
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #28
N

Nolath

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
1.121
Reaktionspunkte
1
Ja, müsste gehen. Ich checke den Code gleich an meinem PC durch.

Wenn du den Text nicht in String konvertieren kannst, weil machne Sonderzeichen Probleme machen, deklariere es im Modul:

Wenn das nicht geht: dim map1 as string = <Map Name="map1" />

Dann mache es im Modul: Public map1 = "<Map Name="map1" />"
So wird nicht genau festgelegt, was map1 für ein Typ ist. Kann aber sein, dass es dann Probleme mit dem schreiben in die Datei gibt.

Ich mach gleich einen Edit und sage ob es funktioniert.
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #29
N

Nolath

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
1.121
Reaktionspunkte
1
Für Edit leider zu spät geworden.
Das hier wäre ein funktionaler fertiger Code:
(der inhalt von maplist.xml ist der Text von Textbox1)

Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Visible = False

        My.Computer.FileSystem.WriteAllText("maplist.xml", String.Empty, False)
        My.Computer.FileSystem.WriteAllText("maplist.xml", TextBox1.Text, True)

        Dim sourceFileName As String = "maplist.xml"
        Dim destFileName As String = "C:\Pfad\maplistnew.xml"

        Try
            My.Computer.FileSystem.CopyFile(sourceFileName, destFileName) 'verusch die Datei zu kopieren
        Catch
            MsgBox("Die Datei 'C:\Pfad\Maplistnew.xml' ist bereits vorhanden!", MsgBoxStyle.Exclamation) 'wenn es die Datei bereits gibt: Fehlermeldung, Programm hört hier auf

        Finally
            My.Computer.FileSystem.DeleteFile("maplist.xml") 'egal ob es die nun gibt oder nicht: die alte Datei wird gelöscht
        End Try



    End Sub
End Class

Ich habe noch eine Try Catch Anweisung eingefügt, weil das Porgramm sonst Abstürzt wenn es die Datei C:\Pfad\maplist.xml schon gibt.
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #30
nikeee13

nikeee13

Bekanntes Mitglied
Dabei seit
04.11.2006
Beiträge
556
Reaktionspunkte
0
Für Edit leider zu spät geworden.
Das hier wäre ein funktionaler fertiger Code:
(der inhalt von maplist.xml ist der Text von Textbox1)

Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Visible = False

        My.Computer.FileSystem.WriteAllText("maplist.xml", String.Empty, False)
        My.Computer.FileSystem.WriteAllText("maplist.xml", TextBox1.Text, True)

        Dim sourceFileName As String = "maplist.xml"
        Dim destFileName As String = "C:\Pfad\maplistnew.xml"

        Try
            My.Computer.FileSystem.CopyFile(sourceFileName, destFileName) 'verusch die Datei zu kopieren
        Catch
            MsgBox("Die Datei 'C:\Pfad\Maplistnew.xml' ist bereits vorhanden!", MsgBoxStyle.Exclamation) 'wenn es die Datei bereits gibt: Fehlermeldung, Programm hört hier auf

        Finally
            My.Computer.FileSystem.DeleteFile("maplist.xml") 'egal ob es die nun gibt oder nicht: die alte Datei wird gelöscht
        End Try



    End Sub
End Class

Ich habe noch eine Try Catch Anweisung eingefügt, weil das Porgramm sonst Abstürzt wenn es die Datei C:\Pfad\maplist.xml schon gibt.

ja Danke!

genau das brauchte ich!
(und es funktioniert natürlich)

Nochmal danke!

N][KEEE13
 
  • VB.net xml datei speichern und diese anschließend verschieben... Beitrag #31
nikeee13

nikeee13

Bekanntes Mitglied
Dabei seit
04.11.2006
Beiträge
556
Reaktionspunkte
0
nochmal ne frage...
(für editierfunktion leider zu spät)
wieso wird hierbei nen fehler angezeigt?:


Label3.Text = Label3.Text & "\" & ComboBox1.Text
Dim sourceFileName As String = Label4.Text
Dim destfilename As String = Label3.Text

My.Computer.FileSystem.CopyFile(sourceFileName, destfilename,true)
End Sub

ich habe keine ahnung wieso...

also label3 ist der pfad wo es hin soll (z.B.: C:\Programme\test1\)
und label4 ist der ort der datei (z.B.: C:\Programme\beispiel\test.wav)
es könnte auch dran liegen das es NUR (und damit meine ich NUR) *..wav datein kopiern will..
aber daran liegt es HÖCHSTWAHRSCHEINLICH NICHT!

hoffe jemand kann mir helfen...
(wenn es nicht so direkt geht dann bitte mit umweg)
NIKEEE13

PS: Habs auch schon mitner try catch anweisung versucht damit das proggie nciht immer abstützt aber das bringt (wie erwartet) auch nix
 
Thema:

VB.net xml datei speichern und diese anschließend verschieben...

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben