[Text] Spezielle Zeile aus einer Textdatei lesen Verfasst am: 26.07.2007, 22:36
So, da will ich mal wieder ein kleines Tutorial schreiben.
Und zwar will ich euch zeigen, wie ihr eine bestimmte zeile aus einer Textdatei auslesen, in einer Variable speichern und ausgeben könnt
Also dann mal los.
Als erstes legen wir uns eine neue Textdatei an und fügen 10 Zeilen mit Inhalt ein. Und speichern sie in unserem Debug Ordner unseres
Projekts
Bsp:
C:\Dokumente und Einstellungen\Marduk\Eigene Dateien\Visual Studio 2005\Projects\tutorial\tutorial\bin\Debug
Bsp:
erste zeile
zweite zeile
dritte zeile
...
Als nächstes brauchen wir eine Form, eine Textbox, einen Button und ein Label.
Anschließend gehen wir in unser Codefenster und importieren uns den IO Namespace. Dazu geben wir in der ersten Zeile folgendes ein
Code:
Imports System.IO
Public Class Form1
Als nächstes klicken wir doppelt auf unseren Button.
Danach deklarieren wir erst mal ein paar Variablen
Code:
Dim sr As StreamReader = New StreamReader("datei.txt.txt") 'Das ist unser StreamReader, mit dem wir die Datei 'auslesen werden
Dim line As String 'Hier speichern wir unsere Zeile, die wir haben wollen
Dim i As Integer
So, um nun an unsere Zeile zu kommen, wenden wir eine ganz simple Lösung an.
Wir lassen den StreamReader so lange eine Zeile auslesen und in die nächste springen, bis wir in unserer Zielzeile sind.
Dazu verwenden wir eine For Schleife.
Hier der Code:
Code:
For i = 1 To 5 'Wir wollen die Zeile 5 auslesen
line = sr.ReadLine() 'der SR liest die erste Zeile, speichert sie in der Variable und liest die nächste Zeile und überschreibt die Variable wieder. Bis wir zur 5ten Zeile kommen.
Next
In der fünften Zeile angekommen, stoppen wir die Schleife und lassen uns die Zeile in einem Label ausgeben.
Code:
lblzeile.Text = line
Ausgabe: "fünfte Zeile"
So einfach ist das. Da wir ja nicht immer nur die fünfte Zeile auslesen wollen, ersetzen wir die "5" in der Scheife mit dem Inhalt
aus unserer Textbox.
Code:
For i = 1 To txtzeile.Text
line = sr.ReadLine()
Next
Ausgabe: je nach dem welche Zahl ihr eingegeben habt.
Also wie ihr seht kann man "schwierige" Probleme, mit einfachen Mitteln lösen
Schönes tut. Freut mich das inzwischen auch ein paar Leute hier vb.net fördern.
Nur ich hab eine Frage: Würde ein Error kommen wenn man zb. in einer 5zeiligen txt datei die 6 7 oder 8 zeile auslesen will?
Also wenn man eine Zeile auslesen will die es gar nicht gibt? _________________
Marduk_ « Moderator »
Anmeldedatum: 17.06.2007 Beiträge: 389
Verfasst am: 27.07.2007, 15:41
Laut meinem Debugger ist der Inhalt dann "Nothing" ,also bleibt das Label leer. Bei mir wird keine Fehlermeldung angezeigt. _________________