2016-04-27 9 views
2

Ich versuche eine TXT-Datei in eine Richtextbox (Point_BOX) zu laden, dann lösche alle bis auf die letzten 5 Zeichen in einer Listbox (Point_LIST). Ich habe online gesucht und bis jetzt ist der einzige Weg, wie ich es zur Arbeit bringen kann, indem die ersten 75 Zeichen aus der Zeile entfernt werden (die Zeilen in der TXT-Datei sollten 80 Zeichen sein, aber manchmal ist mehr/weniger).letzte Charater in Listbox behalten VB.NET

Point_BOX.Clear() 
    Point_LIST.Items.Clear() 
    OpenPointDialog.ShowDialog() 
    FileName = OpenPointDialog.FileName 
    Dim sr As IO.StreamReader = IO.File.OpenText(FileName) 
    Dim line As String = "" 
    Point_BOX.Text = sr.ReadToEnd 
    For i As Integer = 0 To sr.Peek = -1 
     line = sr.ReadLine() 
     Dim allText As String = sr.ReadToEnd() 
     Point_BOX.Text = Point_BOX.Text & line & vbNewLine 
    Next 
    sr.Close() 

    'Clean up report 
    Point_LIST.Items.AddRange(Point_BOX.Lines) 
    Dim ir As Integer = Point_LIST.Items.Count 
    Dim xr As Integer 
    For xr = 0 To ir - 2 
     Point_LIST.Items(xr) = Point_LIST.Items(xr).substring(75) 
    Next xr 

Dies funktioniert, wenn es keine Linien, die weniger als 80 Zeichen sind aber manchmal der Bericht einige einzelne Wörter in einer Zeile haben kann. Ich dachte über eine weitere Schleife nach, die überprüft, wie viele Zeichen in einer Zeile sind und wenn es weniger als 80 Zeichen ist, dann gehe zur nächsten Zeile, aber ich kann nicht helfen, denke aber, dass es einen besseren Weg gibt. Wie umgekehrt "substring (75)" (? String (5))

Antwort

2

etwas Versuchen Sie, wie diese statt:

Point_BOX.Clear() 
    Point_LIST.Items.Clear() 
    If OpenPointDialog.ShowDialog = DialogResult.OK Then 
     FileName = OpenPointDialog.FileName 
     Point_BOX.Lines = System.IO.File.ReadAllLines(FileName) 
     For Each line As String In Point_BOX.Lines 
      Point_LIST.Items.Add(Microsoft.VisualBasic.Strings.Right(line, 5)) 
     Next 
    End If 
+0

Danke @Idle_Mind! Ich habe das gerade mit mehreren Berichten getestet und es funktioniert, auch eine Menge Code aufgeklärt – Turk

0

versuchen, diese Microsoft.VisualBasic.Right (String, 5)

+0

I rate ich benutze es nicht richtig Ich habe versucht: Point_LIST.Items (xr) = Microsoft.VisualBasic.Right (xr, 5) aber es ist nichts zur Listbox hinzugefügt – Turk

Verwandte Themen