streamreader

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Hallo

    Ich mache gerade ein kleines Spiel, bin auch schon ziemlich weit jetzt hänge ich aber, und hoffe bzw. bitte euch das ihr mir weiterhelft

    Ich habe mehrere textdateien, und die sollen aber alle in der richtextbox angezeigt werden, also kommt drauf an welche txt datei man sich auswählt hier mal der code was ich gemacht habe


    VB.NET-Quellcode

    1. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChangedDim Sr As New StreamReader("C:\HausverwalterDaten\haus1.txt", System.Text.Encoding.Default)
    2. If ComboBox1.Text = "Haus1" Then
    3. reader = My.Computer.FileSystem.ReadAllText("C:\HausverwalterDaten\Haus1.txt")
    4. RichTextBox1.Text = Sr.ReadToEnd
    5. End IfDim Sr2 As New StreamReader("C:\HausverwalterDaten\Haus2.txt", System.Text.Encoding.Default)
    6. If ComboBox1.Text = "haus2" Then
    7. reader = My.Computer.FileSystem.ReadAllText("C:\HausverwalterDaten\Haus2.txt")
    8. RichTextBox1.Text = Sr2.ReadToEnd
    9. End IfEnd Sub


    Das funkt auch eigentlich schon so wie ich das will aber muss für jede txt datei extra das schreiben

    VB.NET-Quellcode

    1. Dim Sr2 As New StreamReader("C:\HausverwalterDaten\Haus2.txt", System.Text.Encoding.Default)
    2. If ComboBox1.Text = "haus2" Then
    3. reader = My.Computer.FileSystem.ReadAllText("C:\HausverwalterDaten\Haus2.txt")
    4. RichTextBox1.Text = Sr2.ReadToEnd
    5. End If


    kann man das irgendwie machen das ich das nur einmal machen muss...
    Hoffe ihr versteht was ich meine
    MFG
    sicher kannst du das tun. Lies einfach den Text der ComboBox in eine Variable ein und dann machst du sowas hier:

    VB.NET-Quellcode

    1. Dim reader As String = My.Computer.FileSystem.ReadAllText("C:\HausverwalterDaten\" & deine_Variable & ".txt")


    und dann wars das ;) aber nicht einfach kopieren sondern auch nachvollziehen was ich dir hier gezeigt habe
    hmm....irgendwie komme ich doch nicht weiter !? kannst du mir vill noch ein Tipp geben, das funkt einfach nicht so wie ich das will, habs jetzt schon mehrmals versucht

    MFG

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

    Du weißt doch was in der ComboBox Steht, oder?
    Das ist der Dateiname (ohne Erweiterung) der Datei.

    Ich zeige mal kurz was:

    Quellcode

    1. Pfad: ComboBox.Text:
    2. "C:\Bla\Test.txt" "Test"
    3. "C:\Bla\Asdf.txt" "Asdf"
    4. "C:\Bla\Baum.txt" "Baum"
    5. "C:\Bla\1234.txt" "1234"


    Was fällt Dir auf?
    Das was sich ändert ist nur der Dateiname (das was zwischen "C:\Bla\" und ".txt" steht).
    Und der Dateiname entspricht genau dem Text in der ComboBox.
    Du kannst also den Text der ComboBox an die Stelle des Dateinamens setzen.

    Strings verknüpft man mit dem & Oparator.
    Beispiel: "C:\Bla\" & "Test" & ".txt" wird zu "C:\Bla\Test.txt"

    Also ersetzt Du (laut diesem Beispiel) das "Test" durch ComboBox_IWas.Text.
    Also wird, wenn in der ComboBox "Baum" steht der Dateiname
    "C:\Bla\" & "Baum" & ".txt"
    also
    "C:\Bla\Baum.txt"
    verwendet.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Wenn ich dich richtig verstehe willst du ja alle Dateien in einem Ordner einlesen oder? Wenn nein dann formulier deine Frage genauer.
    Also du nimmst den Ordner Pfad und verwendest entweder den Code von SystemUnknow oder verwendest sowas: msdn.microsoft.com/de-de/library/07wt70x2%28v=vs.80%29.aspx
    Dann gehst du einfach alle Dateien, die du bekommst durch. Heißt so viel wie in einer Schleife und nicht alles untereinander mit Haus1, Haus2,...
    Sprich ne For oder For-each schleife würde sich anbieten. Und jetzt müsstest du das auch eig. hinbekommen


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.