Announcement

Collapse
No announcement yet.

StreamReader soll mehrzeiligen Text einlesen... Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • StreamReader soll mehrzeiligen Text einlesen... Problem

    Hallo Leute,

    ich bin erst seit 2 Tagen mit VB 2005 dran und noch ein Anfänger.


    Eine Textdatei wird per Streamreader ausgelesen, was auch funktioniert.
    Nun übergebe ich die verschiedenen String Werte, aus den jeweiligen Zeilen, an ein Array, was auch Wunderbar klappt.

    Nun zum Problem: wenn in dem Textdokument Leeren Zeilen sind, dann wird ein leerer Wert (" ") an das Array gegeben (Ist natürlich klar). Aber diese Leerzeile gehört mit zu dem ausgelesenen String der vorigen Zeile, da dieser Text-String aus einem "Kommentar-Feld" stammt und somit im Originalen auch Leerzeilen enthalten kann. Aber diese Leerzeile soll in dem Array an die richtige Stelle geschrieben werden, ... Ich hoffe das ist verständlich

    Gibt es da ne möglichkeit ?



    hier mal der Codeauszug:


    If File.Exists(speicherort) Then
    Dim reader As New StreamReader(speicherort, System.Text.Encoding.Default)
    Dim file As StreamWriter
    Dim zeile As String
    Dim buffer As String = ""

    While Not reader.EndOfStream
    Dim pos As Integer
    Dim i As Integer
    Dim Wert(30) As String


    zeile = reader.ReadLine

    For i = 1 To 30
    pos = zeile.IndexOf(";")
    If pos <= -1 Then

    Wert(i) = zeile.Substring(pos + 1)
    zeile = Wert(i)
    buffer = Wert(i)
    i = 30

    ElseIf pos > -1 Then

    Wert(i) = zeile.Substring(0, pos)
    buffer = Wert(i)
    zeile = zeile.Remove(0, pos + 1)

    End If


    ListBox1.Items.Add(buffer)

  • #2
    Zum Verständnis...

    Hab Deine Fragestellung nicht ganz verstanden.

    Du willst die Leerzeile an die vorherige anhängen (oder löschen?), damit nachher keine Leerzeilen in der Listbox sind, oder was ist die richtige Stelle an die sie geschrieben werden soll?

    Oder meinst Du das Leerzeichen vor den Strings, das entsteht wenn Du beim Semikolon "abschneidest"?

    Comment


    • #3
      hmm... probiers doch mal mit:
      Code:
      dim myarray() as string = reader.ReadToEnd.Split(";"c)
      dann kannst du dir das ganze geschleife sparen und trennst die zeilen immer am semikolon. allerdings werden so evtl. vorhandene zeilienumbrüche ebenfalls einfach in die einzelnen array-felder geklatscht.

      Comment

      Working...
      X