Problem beim Laden aus einer TXT Datei

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Problem beim Laden aus einer TXT Datei

    Hallo,
    ich habe das Problem, dass es nicht klappt, wenn ich beim Starten meiner Anwendung die Vokabeln aus einer TXT Datei in mein Vokabelprogramm laden will.

    Es wird nur jede zweite Vokabel geladen, ich verstehe aber nicht warum??

    Hier ist der Code zum laden der deutschen Vokabeln :

    If IO.File.Exists("dVK.txt") Then
    Dim srD As System.IO.StreamReader = New System.IO.StreamReader("dVK.txt")
    Do While srD.ReadLine() <> ""
    Eintrag.dVokabeln(De) = srD.ReadLine()
    De += 1
    Loop
    srD.Close()
    End If


    Weiß jemand wo das Problem ist?

    Mit freundlichen Grüßen
    Micii

    VB.NET-Quellcode

    1. Do While srD.ReadLine() <> ""
    2. Eintrag.dVokabeln(De) = srD.ReadLine()

    Da kommt 2x ReadLine() vor.
    Mach ein Do-While mit EOF-Abfrage, lies die Zeile in eine Variable ein und werte sie aus.
    Oder:

    VB.NET-Quellcode

    1. Dim lines() As String = System.IO.File.ReadAllLines(path)

    Da hast Du sofort alle Zeilen im Feld lines
    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!
    Du verwendest 2x ReadLine..
    Bei jedem Aufruf von ReadLine wird in die nächste Zeile gesprungen. du springst einmal bei der Abfrage, dann bei der Übergabe.
    Statt Eintrag.dVokabeln(De) = srD.ReadLine() solltest du
    Eintrag.dVokabeln(De) = srD.ToString() 'o.ä.
    verwenden

    //Edit: too late : ))
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Danke Milaim und RodFromGermany ;D

    Ich versuch es jetzt mit dem EOF:

    vb-paradise.de/user/3038-milaim/If IO.File.Exists("eVK.txt") Then
    Dim srE As System.IO.StreamReader = New System.IO.StreamReader("eVK.txt")
    Do While srE Is Not EOF(Index?)
    Eintrag.eVokabeln(En) = srE.ReadLine()
    En += 1
    Loop
    srE.Close()
    End If


    Also die Methode liest die Datei bis zu Ende aus ? Jetzt tue ich das Zeile für Zeile, aber was muss ich für einen Index angeben?

    Edit:
    sry Filenumber nicht Index.??
    Sieh Dir mal an, was

    VB.NET-Quellcode

    1. srE.ReadLine()
    macht, wenn die Datei zu Ende ist.
    .NET und keine Steinkohle. :D
    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!
    Ist das eine Frage oder eine Antwort?
    Falls es eine Frage ist - Drück mal auf F1, wenn der Cursor auf ReadLine() steht.
    Ist es eine Antwort, hast Du die Abbruchbedingung für Deine Schleife gefunden. :D
    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!