Textdatei auslesen und Zeichenkette zerlegen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Textdatei auslesen und Zeichenkette zerlegen

    Hallo,

    ich bin neu hier und arbeite zum ersten Mal mit VB. Habt also ein wenig Nachsicht :D

    Ich möchte eine Textdatei auslesen. Diese Datei enthält wichtige Informationen in Form einer Zeichenkette (z.B: Artikelnummer; Hersteller; Bezeichnung; Lieferant). Die einzelnen Zeichen möchte ich nun getrennt dargestellt bekommen, z.B als Tabelle untereinander. Ich möchte also nun eine kleine Konsolenanwendung schreiben, die genau das macht.
    Ich habe von Microsoft ein Beispiel kopiert und eingefügt. Folgende Probleme sind aufgetreten:

    - MsgBox wurde nicht deklariert, habe stattdessen WriteLine genommen --> geht das?

    - Fehlermeldung "Conversion from string "Test" to type 'Integer' is not valid."

    - Wie kann ich nun die einzelnen Zeichen ausgeben? (Ich habe die Funktion hinter dem Code noch nicht ganz verstanden)


    Code:

    VB.NET-Quellcode

    1. Module Program
    2. Sub Main()
    3. Using MyReader As New Microsoft.VisualBasic.
    4. FileIO.TextFieldParser("C:\Users\xxx\Desktop\Test.txt")
    5. MyReader.TextFieldType = FileIO.FieldType.Delimited
    6. MyReader.SetDelimiters(";")
    7. Dim currentRow As String()
    8. While Not MyReader.EndOfData
    9. Try
    10. currentRow = MyReader.ReadFields()
    11. Dim currentField As String
    12. For Each currentField In currentRow
    13. WriteLine(currentField)
    14. Next
    15. Catch ex As Microsoft.VisualBasic.
    16. FileIO.MalformedLineException
    17. WriteLine("Line " & ex.Message & "is not valid and will be skipped.")
    18. End Try
    19. End While
    20. End Using
    21. End Sub
    22. End Module


    CodeTags gesetzt ~VaporiZed
    Bilder
    • Fehler.PNG

      43,04 kB, 1.095×574, 83 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    donkey schrieb:

    - Fehlermeldung "Conversion from string "Test" to type 'Integer' is not valid."
    So ist das, wenn man sich noch nicht mit Datentypen auskennt.
    Wenn der Text lautet: "Roulade mit Klößen" kann das Framework dies nicht in einen numerischen Wert konvertieren, weil es nicht weiß, ob Du die Masse der Roulade oder die Anzahl der Klöße haben willst.
    Überzeuge Dich also, dass im zu konvertierenden String tatsächlich die String-Repräsentation eines numerischen Wertes drinne steht.
    Wenn Du das nicht weißt, kannst Du das Framework auch danach fragen:

    VB.NET-Quellcode

    1. If Integer.TryParse(...) Then
    2. ' erfolgreich
    3. Else
    4. ' nicht erfolgreich
    5. End If
    docs.microsoft.com/de-de/dotne…t32.tryparse?view=net-5.0
    Und um gleich auf der sicheren Seite zu stehen, fängst Du am besten sofort an, Deinen Code zu debuggen:
    Debuggen, Fehler finden und beseitigen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!