"Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "String" konvertiert werden." Was Tun ?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von DarkestMan.

    "Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "String" konvertiert werden." Was Tun ?

    Hallo Forum,

    Ich habe ein Programm geschrieben indem man Textboxen ausfüllen muss und die dann in einer Textbox untereinander im Application Ordner abgespeichert werden, dies ging noch alles sehr Gut
    doch man soll dieses Textdokument wieder aufrufen Können und alles soll wieder in die Gleiche Zeile geschrieben werden. Nun kommt mein Problem

    Bei dem Code:

    VB.NET-Quellcode

    1. Dim text As String = My.Computer.FileSystem.ReadAllText(Application.StartupPath & "\NICHT ÖFFNEN.txt", System.Text.Encoding.Default).Split(vbCrLf)


    kommt jedesmal der Fehler:

    VB.NET-Quellcode

    1. Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "String" konvertiert werden.


    Ich habe es geschafft den fehler wegzubekommen indem ich statt ".split(vbCrLf)" ",split(vbCrLf)" geschrieben habe, doch leider Funktioniert die Function danach nicht

    mein Kompletter Code für das Auslesen der Textdatei ist:

    VB.NET-Quellcode

    1. Public Function LiesZeile(ByVal dateiname As String, ByVal Zeile As Integer) As String
    2. Try
    3. Dim text As String = My.Computer.FileSystem.ReadAllText(Application.StartupPath & "\NICHT ÖFFNEN.txt", System.Text.Encoding.Default).Split(vbCrLf)
    4. If Zeile > 0 Then
    5. Return text(Zeile - 1)
    6. ElseIf Zeile < 0 Then
    7. Return text(text.Length + Zeile - 1)
    8. Else
    9. Return ""
    10. End If
    11. Catch ex As Exception
    12. Return ""
    13. End Try
    14. End Function
    15. Private Sub EigenschaftenÄndern_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    16. TextBox3.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile1.Text)
    17. TextBox2.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile2.Text)
    18. TextBox4.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile3.Text)
    19. TextBox5.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile4.Text)
    20. TextBox6.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile5.Text)
    21. TextBox7.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile6.Text)
    22. TextBox8.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile7.Text)
    23. ComboBox1.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile8.Text)
    24. ComboBox2.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile9.Text)
    25. ComboBox3.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile10.Text)
    26. ComboBox4.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile11.Text)
    27. ComboBox5.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile12.Text)
    28. ComboBox6.Text = LiesZeile(Application.StartupPath & "\NICHT ÖFFNEN.txt", Zeile13.Text)
    29. End Sub




    Vll Findet ihr ja einen Fehler



    Ich hoffe ihr könnt mir Helfen
    Split liefert einen Array zurück:

    VB.NET-Quellcode

    1. dim tmp() as string = (...)


    diesen array kannst du dann mittels for-Schleife durchlaufen, z.B:

    VB.NET-Quellcode

    1. For each Line as string in tmp
    2. 'machwas mit Line
    3. next


    alternativ kannst du auch gezielt ein item auslesen:

    VB.NET-Quellcode

    1. dim str as string = tmp(3)


    lg
    Hat sich erledigt :)


    Ich hab einfach diesen Code verwendet:

    VB.NET-Quellcode

    1. Dim fso ' FileSystemObject
    2. Dim textfile ' Dateiobjekt
    3. Dim test() As String 'Stringarray für die einzelnen Zeilen
    4. Dim i As Integer ' Indexvariable
    5. i = 0
    6. 'Das FSO wird gesetzt
    7. fso = CreateObject("Scripting.FileSystemObject")
    8. 'Das Dateiobjekt wird auf die Datei gesetzt
    9. textfile = fso.OpenTextFile(Application.StartupPath & "\NICHTLÖSCHEN.txt", ForReading)
    10. 'Schleife bis EOF(End Of File)
    11. Do While textfile.AtEndOfStream <> True
    12. ReDim Preserve test(i) 'Dynamisches vergrössern des Arrays
    13. test(i) = textfile.ReadLine ' eine Zeile lesen
    14. i = i + 1 'Index erhöhen
    15. Loop
    16. textfile.Close() 'Datei wieder schließen
    17. Textbox1.Text = test(0) 'Daten in Textfelder schreiben
    18. TextBox2.Text = test(1)
    19. TextBox3.Text = test(2)
    20. TextBox4.Text = test(3)
    21. TextBox5.Text = test(4)
    22. TextBox6.Text = test(5)
    23. TextBox7.Text = test(6)
    24. ComboBox1.Text = test(8)
    25. ComboBox2.Text = test(9)
    26. ComboBox3.Text = test(10)
    27. ComboBox4.Text = test(11)
    28. ComboBox5.Text = test(12)
    29. ComboBox6.Text = test(13)

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

    DarkestMan schrieb:

    Hat sich erledigt :)
    Ich hab einfach diesen Code verwendet:
    Hast Du verstanden, warum Dein ursprünglicher Code nicht funktioniert hat :?:
    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!

    DarkestMan schrieb:

    Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "String" konvertiert werden.


    Nein, sonst hätte er die Frage wohl gar nicht gestellt... Solche Fehler sind selbsterklärend.