Guten Tag zusammen,
ich möchte mir meine Arbeit etwas erleichtern und mit deswegen ein Kleines Tool programmieren.
Ich Sollte eine Datei Einlesen und mit den Daten aus dieser Datei ein Treeview befüllen.
Zuerst einmal eine Beschreibung was überhaupt passieren soll.
Ich habe ein Textfeld in das ich einen Pfad für eine Datei eingebe.
Bei einem Click auf Button 1 wird dann die Datei in eine Stringlist eingelesen.
Dann soll nach einer Zeile gesucht werden die in etwa so aussieht: (zeile 29)
<text prefix="System/Group_Alarm" id="5">
Hier soll dann in dem Treeview ein Node mit dem Namen System und darin ein Childnode mit namen Group_Alarm erstellt werden, das klappt auch gut. (zeile 30 bis 47)
Nun ist es so das nach der oben genannten Zeile noch beliebig viele weitere Zeilen kommen können bis irgendwann der Block mit "</text>" abgeschlossen wird
und dann soll für jede Zeile Zwischen "<text " und "</text>" ein Node unter dem Childnode erstellt werden, und genau da bekomme ich probleme.
Ich Dachte mir das so das ich ja durch die Variable i (zeile 23) weiß an welcher stelle das "<text " steht.
Nun wollte ich dann mir einer weiteren For schleife von diesem Punkt aus weiter nach "</text>" suchen und dann für alles zwischen diesen Zeilen einen Node erstellen (zeile 49 - 56)
aber es passiert rein garnichts un dich komme momentan einfach nicht drauf wieso
Hier mal der Code:
Würde mich über etwas Hilfe freuen, evtl sieht ja noch jemand etwas das man schöner oder übersichtlicher lösen kann.
Grüße
JayMo
ich möchte mir meine Arbeit etwas erleichtern und mit deswegen ein Kleines Tool programmieren.
Ich Sollte eine Datei Einlesen und mit den Daten aus dieser Datei ein Treeview befüllen.
Zuerst einmal eine Beschreibung was überhaupt passieren soll.
Ich habe ein Textfeld in das ich einen Pfad für eine Datei eingebe.
Bei einem Click auf Button 1 wird dann die Datei in eine Stringlist eingelesen.
Dann soll nach einer Zeile gesucht werden die in etwa so aussieht: (zeile 29)
<text prefix="System/Group_Alarm" id="5">
Hier soll dann in dem Treeview ein Node mit dem Namen System und darin ein Childnode mit namen Group_Alarm erstellt werden, das klappt auch gut. (zeile 30 bis 47)
Nun ist es so das nach der oben genannten Zeile noch beliebig viele weitere Zeilen kommen können bis irgendwann der Block mit "</text>" abgeschlossen wird
und dann soll für jede Zeile Zwischen "<text " und "</text>" ein Node unter dem Childnode erstellt werden, und genau da bekomme ich probleme.
Ich Dachte mir das so das ich ja durch die Variable i (zeile 23) weiß an welcher stelle das "<text " steht.
Nun wollte ich dann mir einer weiteren For schleife von diesem Punkt aus weiter nach "</text>" suchen und dann für alles zwischen diesen Zeilen einen Node erstellen (zeile 49 - 56)
aber es passiert rein garnichts un dich komme momentan einfach nicht drauf wieso
Hier mal der Code:
Quellcode
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- If My.Computer.FileSystem.FileExists(TextBox1.Text) Then
- Dim sr As StreamReader = New StreamReader(TextBox1.Text)
- Dim sl As New List(Of String)
- Dim Nodes As TreeNodeCollection = TreeView1.Nodes
- Dim MainNode As String = ""
- Dim ChildNode As String = ""
- Do While sr.Peek() >= 0
- sl.Add(sr.ReadLine())
- Loop
- sr.Close()
- ListBox1.Items.Clear()
- TreeView1.Nodes.Clear()
- MainNode = ""
- ChildNode = ""
- For i As Integer = 0 To sl.Count - 1
- If Nodes.Count > 0 Then
- TreeView1.SelectedNode = Nodes(0)
- End If
- If Not InStr(sl.Item(i), "<text ") = 0 Then
- MainNode = Replace(sl.Item(i), sl.Item(i).Substring(0, InStr(sl.Item(i), "prefix=") + 7), "")
- MainNode = Mid(MainNode, 1, (InStr(MainNode, """") - 1))
- If Not InStr(MainNode, "/") = 0 Then
- ChildNode = Mid(MainNode, InStr(MainNode, "/") + 1, Len(MainNode) - 1)
- MainNode = Mid(MainNode, 1, InStr(MainNode, "/") - 1)
- End If
- If Not FindNode(MainNode, TreeView1.Nodes) Then
- TreeView1.Nodes.Add(MainNode)
- End If
- If ChildNode <> "" Then
- If Not FindNode(ChildNode, TreeView1.Nodes) Then
- TreeView1.SelectedNode = SetNode(MainNode, TreeView1.Nodes)
- TreeView1.SelectedNode.Nodes.Add(ChildNode)
- End If
- End If
- For i2 As Integer = i To sl.Count - 1
- If Not InStr(sl.Item(i), "</text>") = 0 Then
- TreeView1.SelectedNode = SetNode(ChildNode, TreeView1.Nodes)
- For i3 As Integer = i + 1 To i2 - 1
- TreeView1.SelectedNode.Nodes.Add(sl.Item(i3))
- Next
- End If
- Next
- End If
- ListBox1.Items.Add(sl.Item(i))
- Next
- Else
- MsgBox("File not found.")
- End If
- End Sub
Würde mich über etwas Hilfe freuen, evtl sieht ja noch jemand etwas das man schöner oder übersichtlicher lösen kann.
Grüße
JayMo