IntroVb.net laden mehrere Zeilen aus einer Textdatei zu verschiedenen Listboxen
Okay, so habe ich eine load
und eine save
Taste. Ich speichere alle listbox items
in eine .txt
Datei und lade sie dann in die Listbox.
Nun, das wäre ziemlich einfach, wenn es nur eine Listbox wäre. Mein Problem ist, dass es 9 Listenfelder und nur eine TXT-Datei, die alle Elemente aus den 9 Listenfeldern enthält. Ich möchte keine 9 verschiedenen .txt-Dateien. Denken Sie daran, dass die Anzahl der Listeneinträge variiert.
Dies ist, wie die Taste save
Ausgänge an die .txt-Datei (Eine andere Version weiter unten)
Channel 1
c:\folder\folder
Channel 2
\\server\folder\foldera
\\server\folder\folderb
Channel 3
\\anotherserver\foldera
\\anotherserver\folderb
\\anotherserver\folderc
\\anotherserver\folderd
\\anotherserver\foldere
Channel 4
\\somepath\folder\folder\foldera
Channel 5
\\server\folder\foldera
Channel 6
\\server\folder\foldera
\\server\folder\foldera
Channel 8
\\server\folder\foldera
Channel 9
\\server\folder\foldera
Jeder Kanal ist die Listenfelder und die Wege sind die Elemente, die die jeweils List-Box enthält. Hier
ist mein speichern btnsave.click
Dim configfile As String = "C:\Applicationpath\Config\" & System.DateTime.Now.ToString("yyyyMMdd") & "_Config.txt"
Using fs As FileStream = File.Create(configfile)
fs.Close()
End Using
Write_Configfile()
... und Write_config()
macht folgendes:
Dim objWriter As New System.IO.StreamWriter(configfile, True)
Try
objWriter.WriteLine("Channel 1")
For Each itm1 As String In Me.lbchannel1.Items
objWriter.WriteLine(itm1)
Next
objWriter.WriteLine(" ")
objWriter.WriteLine("Channel 2")
For Each itm2 As String In Me.lbChannel2.Items
objWriter.WriteLine(itm2)
Next
objWriter.WriteLine(" ")
und den ganzen Weg zu kanalisieren 9. Es ist wahrscheinlich ein einfacher Weg, dies zu tun, Ich kenne.
Das Problem und die Frage
Nun zur load
Taste. Ich dachte, wenn ich jede Listbox aus einem bestimmten Teil der Textdatei laden könnte, würde es mir gut gehen. Ich würde gerne sagen "Hey, fügen Sie alle Elemente zu Kanal 1 (listbox1), die zwischen" Channel 1 "und" Channel 2 "in der Konfigurationsdatei geschrieben werden - und so weiter auf Kanal 9. Und das ist, wo ich bin stecken.
ich muss readline
nach einem bestimmten Wort oder zwischen bestimmten Wörtern. Nicht eine bestimmte Zeile gelesen, denn wie ich schon sagte, wie viele Elemente die Listboxen variiert enthält.
beachten Sie, dass ich das speichern ändern Ausgabe wie folgt aussehen, wenn das macht die Sache einfacher:
c1:c:\folder\folder
c2:\\server\folder\foldera
c2:\\server\folder\folderb
'and so on...
So zu meinem Versuch, die dies gewesen:
Aber das gibt mir diesen Fehler {"Conversion from string C:\Applicationpath\Config\20160405_config.txt to type integer is not valid."}
und ich bin sicher, es ist nicht der richtige Weg, es zu tun.
in Ihrem ersten Codebeispiel, Sie schreiben nur die 9 Kanäle, aber nicht, was die Listbox enthält ... –
Yep. Danke für den Tipp. –
Yay, genau was ich wollte. Lief wie am Schnürchen. Vielen Dank! – MadsTheMan