Der Index war außerhalb des Arraybereichs.

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Der Index war außerhalb des Arraybereichs.

    Hallo zusammen ich habe folgendes Problem , und zwar habe ich eine Textdatei wo ich 1 von 10 Adressen eingespeichert habe. Die restlichen Zeilen sind leer. Ich möchte aber trotzdem alle Zeilen aus der Textdatei auslesen und in einer Richtextbox ausgeben. Nur leider kommt immer wieder ein Fehler der heißt : Der Index war außerhalb des Arraybereichs. IndexOutOfRangeExeption wurde nicht behandelt. Kann mir da jemand helfen?

    VB.NET-Quellcode

    1. Dim lines() As String = System.IO.File.ReadAllLines("k1.txt")
    2. RichTextBox1.Text = lines(0) & vbNewLine & lines(1) & vbNewLine & vbNewLine & lines(2) & vbNewLine & lines(3) & vbNewLine & vbNewLine & lines(4) & vbNewLine & lines(5) & vbNewLine & vbNewLine & lines(6) & vbNewLine & lines(7) & vbNewLine & vbNewLine & lines(8) & vbNewLine & lines(9) & vbNewLine & vbNewLine & lines(10) & vbNewLine & lines(11) & vbNewLine & vbNewLine & lines(12) & vbNewLine & lines(13) & vbNewLine & vbNewLine & lines(14) & vbNewLine & lines(15) & vbNewLine & vbNewLine & lines(16) & vbNewLine & lines(17) & vbNewLine & vbNewLine & lines(18) & vbNewLine & lines(19) & vbNewLine & vbNewLine & lines(20) & vbNewLine & lines(21)
    @AProgrammer: Mach es so:

    VB.NET-Quellcode

    1. RichTextBox1.Lines = lines
    2. ' oder besser gleich so:
    3. RichTextBox1.LoadFile("k1.txt", RichTextBoxStreamType.PlainText)
    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!
    Hallo, ich nehme mal an, das die eingelesene Datei nicht die erforderlichen 22 Zeilen enthält. Wenn nun beispielsweise nur 10 Zeilen enthalten sind, dann kommt beim versuch

    C-Quellcode

    1. lines(10)
    auszulesen die Exception. Am besten du fragst vorher ab wie viele Zeilen drinn sind und veränderst entsprechend das zusammen hängen, oder aber du machst es gleich mit einer Schleife oder Join:

    VB.NET-Quellcode

    1. RichTextBox1.Text = String.Join(vbCrLf, lines)
    Ja das ist richtig mein Programm enthät nur 20 Zeilen darunter auch leere und immer bei den leeren Zeilen kommt ein Fehler
    Könntest du mir das ganze vllt in mein Code einbauen ?

    Also zum bessere verstehen hier kommt kein fehler :
    Zeile 1: mein name
    Zeile 2: meine nummer
    Zeile 3:-
    Zeile 4:-
    Zeile 5:-
    Zeile 6:-
    Zeile 7:-
    Zeile 8:-
    Zeile 9:-
    Zeile 10:-
    Zeile 11:-
    Zeile 12:-
    Zeile 13:-
    Zeile 14:-
    Zeile 15:-
    Zeile 16:-
    Zeile 17:-
    Zeile 18:-
    Zeile 19:-
    Zeile 20:-
    Also wenn ich ein Strich in den leeren zeilen hab kommt kein fehler aber ohne striche kommen fehler also immer bei den leeren zeilen kommen fehler

    &ich will eigndlich nur zeilenweise den code einfügen und nicht den ganzen text auf einmal

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „AProgrammer“ ()

    AProgrammer schrieb:

    Ja ich verstehe das nicht ganz
    Sieh Dir Deinen Code an, sieh Dir meinen Code an und überleg, wie das zusammenpasst.
    Klar, bei Deinem Code solltest Du eine gaaaaaaanz lange Zeile rauswerfen. ;)
    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!
    Hallo,

    wenn du nur die Zeilen zeilenweise in eine RichTextBox einlesen willst,
    machst du das so:

    VB.NET-Quellcode

    1. For Each zeile In textzeilen
    2. neuezeile = Environment.NewLine & zeile
    3. RichTextBox.Text &= neuezeile
    4. Next


    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D

    AProgrammer schrieb:

    Könntest du mir das ganze vllt in mein Code einbauen ?
    Was zahlst Du?
    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!

    Alex-Digital schrieb:

    wenn du nur die Zeilen zeilenweise in eine RichTextBox einlesen willst,
    machst du das so:

    VB.NET-Quellcode

    1. For Each zeile In textzeilen
    2. neuezeile = Environment.NewLine & zeile
    3. RichTextBox.Text &= neuezeile
    4. Next
    pls no!
    lieber so:

    VB.NET-Quellcode

    1. RichTextBox.Lines=textzeilen