vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Dateisystem · Dateien lesen/schreiben   |   VB-Versionen: VB2005, VB200810.02.09
Bestimmte Zeile aus einer Textdatei auslesen

Diese Funktion liest eine bestimmte Zeile aus der angegebenen Datei und gibt diese als String zurück.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  33.991 
www.tools4vb.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgend stellen wir Ihnen eine Funktion vor, mit der man eine beliebige Zeile aus einer Textdatei auslesen kann. Die Funktion ReadLine eignet sich allerdings nicht für sehr große Dateien, da zunächst der gesamte Dateiinhalt in ein String-Array eingelesen wird.

Das Auslesen der Datei erfolgt in unserem Beispiel über die My.Computer.FileSystem-Klasse. Durch Aufruf der "ReadAllText"-Methode wird der gesamte Inhalt eingelesen. Die Split-Anweisung zerlegt den Inhalt dann in einzelne Zeilen und speichert diese in einem String-Array.

Um nun auch die Möglichkeit zu bieten, nicht nur die n-te Zeile, sondern auch die n-letzte Zeile auslesen zu können, gibt man einfach für "line" eine negative Zahl an (-1 für die letzte Zeile, -2 für die vorletzte und so weiter).

Im Falle eines Fehlers (wenn bsp. eine ungültige Zeilennummer angegeben wurde), wird immer ein Leerstring zurückgegeben.

''' <summary>
''' Liest eine bestimmte Zeile aus einer Textdatei
''' </summary>
''' <param name="filename">vollständiger Pfad zur Datei</param>
''' <param name="line">Zeilennummer</param>
''' <returns>Inhalt der Zeile oder bei Fehler einen Leerstring</returns>
''' <remarks>Geben Sie für line einen negativen Wert an, um die 
''' n-letzte Zeile auszulesen</remarks>
Public Function ReadLine(ByVal filename As String, _
  ByVal line As Integer) As String
 
  Try
    Dim lines As String() = My.Computer.FileSystem.ReadAllText( _
      filename, System.Text.Encoding.Default).Split(vbCrLf)
 
    If line > 0 Then
      ' n-te Zeile vom Anfang der Textdatei
      Return lines(line - 1)
    ElseIf line < 0 Then
      ' n-te Zeile beginnend am Ende der Textdatei
      Return lines(lines.length + line - 1)
    Else
      ' ungültige Zeilennummer
      Return ""
    End If
  Catch ex As Exception
    Return ""
  End Try
End Function

Beispiel für den Einsatz von "ReadLine":

' 5-te Zeile einer Datei lesen
txtLine.Text = ReadLine("C:\textdatei.txt", 5)
' vorletzte Datei lesen
txtLine.Text = ReadLine("C:\textdatei.txt", -2)

Dieser Tipp wurde bereits 33.991 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (11 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel