Variable -Fehler???

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von VB-08.

    Variable -Fehler???

    Hi,
    ich möchte mit dem Streamreader lesen, doch die Variable "r" wird als Fehler deklariert. Mein Code:

    VB.NET-Quellcode

    1. Dim pfad As String = "TEST.txt"
    2. Dim ***r*** As New StreamReader(File.ReadAllLines(pfad))
    3. For Each line In r.ReadToEnd
    4. !Anweisung...!
    5. Next

    Nur die Variable mit den *** ist als Falsch deklariert.
    Fehler:
    Fehler bei der Überladungsauflösung, da keine zugreifbare "New" mit diesen Argumenten aufgerufen werden kann:
    'Public Sub New(path As String)': Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "String" konvertiert werden.
    'Public Sub New(stream As System.IO.Stream)': Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "System.IO.Stream" konvertiert werden.
    Hier geht mit OpenFileDialog auch ganz gut.
    Musst vorher importieren, sprich
    Imports system.io

    Und OpenFileDialog auf deine form ziehen, wie gerade in einerm anderen post schon beschrieben, links in der toolbox zu finden.
    der code.

    VB.NET-Quellcode

    1. Try
    2. Dim pfad As New OpenFileDialog
    3. pfad.Title = "Datei wählen"
    4. pfad.Filter = "Textdateien [*.txt]|*.txt"
    5. pfad.CheckFileExists = True
    6. pfad.ShowDialog(Me)
    7. Dim reader As System.IO.StreamReader
    8. pfad.OpenFile()
    9. reader = System.IO.File.OpenText(pfad.FileName)
    10. RichTextBox1.Text = reader.ReadToEnd()
    11. Catch fehler As Exception
    12. End Try


    Richtextbox1.text muss durch deine Textbox/Richtextbox ersetzt werden.

    gruß
    kay2k4

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

    VB-08 schrieb:

    der Speicherort ist schon im Code festgesetzt, weißt du warum dieser Fehler entsteht :?:
    also ich sehe in dein post keinen speicherort.
    Versuch es mal mit meinen code.

    oder wenn ohne OpenFileDialog machen willst dann versuch es hiermit.
    Könnte gerade ein fehler drine sein, ist jetzt ausen kopf.


    VB.NET-Quellcode

    1. Dim FiStr As FileStream = _
    2. New FileStream("Hier dein pfad", FileMode.Create)
    3. Dim StrWr As StreamWriter = New StreamWriter(FiStr)
    4. StrWr.WriteLine(Und hier deine textbox o. normalen text)
    5. StrWr.Close()


    müsste aber eigendlich gehen.

    gruß
    kay2k4
    der genau Pfad ist eigentlich: Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\TEST.txt", wollte nur das wichtigtse schreiben.
    Jez wird kein Fehler bei der Variable angezeigt doch einer bei

    VB.NET-Quellcode

    1. For Each line In FiStr.****Read****
    2. !Anweisung!
    3. Next

    *** ist der Fehler:
    Fehler bei der Überladungsauflösung, da keine zugreifbare "Read" diese Anzahl von Argumenten akzeptiert.
    Gewöhn dir mal an, in einer For Each-Schleife der Schleifenvariable, hier also line, einen Datentyp zuzuweisen. Ein Streamreader liefert mit .Read() nur je einen einzelnen Buchstaben (bzw. eigentlich einen Integer-Wert dessen), den er ab der aktuellen Position liest. Also schau dir mal folgende Beispiele an:

    VB.NET-Quellcode

    1. Dim strr As New IO.StreamReader(New IO.FileStream("C:\test.txt", IO.FileMode.Open))
    2. Dim line As String
    3. Do
    4. line = strr.ReadLine()
    5. MessageBox.Show("Gelesene Zeile: " & line)
    6. Loop Until line Is Nothing
    7. strr.Close()


    VB.NET-Quellcode

    1. Dim strr As New IO.StreamReader(New IO.FileStream("C:\test.txt", IO.FileMode.Open))
    2. Dim line As String
    3. Do
    4. line = strr.Read
    5. MessageBox.Show("Gelesenes Zeichen: " & line)
    6. Loop Until line Is Nothing
    7. strr.Close()
    Danke, ich hab noch 1 Problem: Mit dem Befehl new_webbrowsers () wird ein neuer Tab und ein neuer Webbrowser in dem Tab erstellt. Jetzt möchte dass wenn sich in einer TXT z.B. 2 Zeilen befinden:
    TXT:
    __________________
    Google.de
    Chip.de
    __________________

    der new_webbrowsers () Befehl ^^ 2 mal ausgefürt wird und das Item im 1. Tab an die 1. Zeile navigiert, das Item im 2. Tab an die 2. Zeile navigiert.............

    (info: Jeder Webbrowser ist das Item einer Tabpage)


    Mein Code:

    VB.NET-Quellcode

    1. MsgBox("Sitzung laden")
    2. Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\OpenTabs.txt"
    3. Dim strr As New IO.StreamReader(New IO.FileStream(pfad, IO.FileMode.Open))
    4. Dim line As String
    5. Do
    6. line = strr.ReadLine()
    7. 'KEINE IDEE MEHR
    8. Loop Until line Is Nothing
    9. strr.Close()
    10. MsgBox("Sitzung geladen")

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „VB-08“ ()