Bestimmte Zeile auslesen.

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Bestimmte Zeile auslesen.

    Hallo liebe Community!
    Ich benutze diesen Code, um die erste Zeile einer Datei auszulesen:

    VB.NET-Quellcode

    1. Private config As New StreamReader("config.ini")
    2. Dim sLine As String
    3. sLine = config.ReadLine()
    4. Me.Text = sLine


    So, ich möchte nun aber für den Formtext nur die 2.te Zeile der Datei auslesen...

    Wie geht das?
    1. Möglichkeit 2x ReadLine() ausführen aber nur das 2. Ergebnis verwenden
    2. Nutze die Methode System.IO.File.ReadAllLines() um die Datei zeilenweise in ein Array zu laden und die 2. Zeile bekommst du dann über Irgendwas = DeinArray(1)
    zu 2.:

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Liest eine bestimmte Zeile aus einer Textdatei
    3. ''' </summary>
    4. ''' <param name="filename">vollständiger Pfad zur Datei</param>
    5. ''' <param name="line">Zeilennummer</param>
    6. ''' <returns>Inhalt der Zeile oder bei Fehler einen Leerstring</returns>
    7. ''' <remarks>Geben Sie für line einen negativen Wert an, um die
    8. ''' n-letzte Zeile auszulesen</remarks>
    9. Public Function ReadLine(ByVal filename As String, _
    10. ByVal line As Integer) As String
    11. Try
    12. Dim lines As String() = My.Computer.FileSystem.ReadAllText( _
    13. filename, System.Text.Encoding.Default).Split(vbCrLf)
    14. If line > 0 Then
    15. ' n-te Zeile vom Anfang der Textdatei
    16. Return lines(line - 1)
    17. ElseIf line < 0 Then
    18. ' n-te Zeile beginnend am Ende der Textdatei
    19. Return lines(lines.length + line - 1)
    20. Else
    21. ' ungültige Zeilennummer
    22. Return ""
    23. End If
    24. Catch ex As Exception
    25. Return ""
    26. End Try
    27. End Function

    (vbarchiv.de)
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    @bla: Also ich persönlich nutze nicht gerne den My-Namespace, habe sogar mal gelesen dass diese Klasse doch recht langsam sein sollte.

    Zudem würde OPTION STRICT verbieten, dass du "string".Split(vbCrLf) genutzen kannst, weil String NICHT in Char konvertiert werden kann, um bei der Split Methode einen String benutzen zu können musste man glaube ich es etwas komplizierter machen, habe es irgendwie hie rim Forum schonmal gesehen.
    Aber btw. würde ich empfehlen hierfür die bereits fertige Methode zu nutzen, nämlich von der System.IO.File-Klasse
    Dit war mir schon klar was du gemacht hast =) steht ja schließlich auch darunter, also RICHTIG ZITIERT *g*

    Aber trotzdem möchten wir unseren neulingen doch guten Programmierstil beibringen und zudem unnötige beifragen verhindern wenn z.B. Option Strict an ist und der User diesen Code dann einfach kopiert kommt mit sicherheit darauf folgende Antwort "der Code funktioniert nicht".