Announcement

Collapse
No announcement yet.

Plus-Zeichen mit Streamreader aus Txt-Datei lesen

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

  • Plus-Zeichen mit Streamreader aus Txt-Datei lesen

    moin zusammen,
    ich bin dabei ein Programm zu schreiben, das Inhalt aus einer Txt-Datei liest, die Zeilen verarbeitet und anschließend das Ergebnis in eine sql-Datenbank schreibt.

    Hierbei bin ich leider auf ein Problem gestoßen:

    Kommt in der Textdatei ein Pluszeichen vor (wie z.B. in "notepad++"), so gibt der Streamreader die Zeile ohne Pluszeichen wieder ("notepad"). Ist es möglich dies zu ändern?

    Code:
    Dim lines As New List(Of String)()
    Dim str = New StreamReader(csvFile, System.Text.Encoding.UTF7, True)
            While Not str.EndOfStream
                'Fügt die nächste Zeile zu "lines" hinzu
                lines.Add(str.ReadLine())
            End While
            str.Close()

  • #2
    Hallo,

    wird der Inhalt mit File.ReadAllLines korrekt gelesen?


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      ja, mit
      Code:
      Dim testarray = File.ReadAllLines("c:\test.txt")
      hat er das richtige eingelesen.
      file.readalllines kannte ich nicht, da ich gerade erst neu mit vb.net angefangen habe. Handelt es sich dabei um ein relikt aus vb6 ?

      Comment


      • #4
        Handelt es sich dabei um ein relikt aus vb6
        Glaube ich nicht denn es kommt eher von C#

        Intern macht diese Methode nichts anderes als dein Code nur dass die Encoding selbst ermittelt wird bzw die Stanardeinstellung verwendet wird.


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          ah, ok.
          wieder was dazu gelernt.
          dann benutz ich einfach das und muss mir mal den streamreader abgewöhnen.^^
          VIELEN DANK

          Comment


          • #6
            habe den Fehler bei meinem ausgangs-code nun auch gefunden.
            ändert man
            Code:
            Dim str = New StreamReader(csvFile, System.Text.Encoding.UTF7, True)
            zu
            Code:
            Dim str = New StreamReader(csvFile, System.Text.Encoding.Default, True)
            Klappt es auch mit dem StreamReader.

            Mit "Default" hatte er zwar komischerweise beim anderen Rechner keine Umlaute gelesen, aber hier macht ers nun auch richtig.

            Comment


            • #7
              Ich glaube den StreamReader musst Du Dir nicht abgewöhnen, es war wohl einfach nur das falsche Mittel für das Problem
              Ich finde diese ReadAllLines Funktion ist irgendwie am falschen Platz... bei Datei auslesen denkt jeder an Streams und nicht an die Klasse File. Irgendwie wäre da eine schöne Funktion bei den Streams besser gewesen.

              Comment


              • #8
                Ich finde diese ReadAllLines Funktion ist irgendwie am falschen Platz... bei Datei auslesen denkt jeder an Streams und nicht an die Klasse File. Irgendwie wäre da eine schöne Funktion bei den Streams besser gewesen.
                Beim StreamReader (wo sich deiner Meinung nach hingehört) gibt es ReadToEnde, ReadLine, ...

                Bei File ist es für besonders schreibfaule Da braucht keine Instanz eines StreamReaders explizit erstellt werden. Insofern passt (mir) das schon


                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #9
                  Na ich find die Funktion an sich ja auch gut... aber ich meine bei der Klasse File sucht doch eigentlich keiner nach einer Möglichkeit diese auszulesen.
                  Eine Funktion ReadLines wäre doch beim Stream viel besser aufgehoben Also ich hätte die Funktion auch nicht gefunden wäre ich da nicht irgendwo beim Forenlesen o.ä. drüber gestolpert.

                  Comment

                  Working...
                  X