Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Source Codes
Autor
Nachricht
c0re_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 29.11.2007
Beiträge: 425

[B] Auslesen bestimmter Zeilen einer Datei
Verfasst am: 30.04.2008, 17:36

Ich hatte vorhin ein kurzes Gespräch mit Epiphone, welches mich veranlasst hat,
heute mal wieder VB statt Delphi zu öffnen. Razz

Zitat:
Epiphone (14:47:54 7/05/2008)
is es möglich in einem txt doc nur die letzen 3 zeilen auszulesen?
bzw. die ersten 3 zeilen überspringen und dann den rest auslesen?

c0re (14:48:13 7/05/2008)
Klar. :/

c0re (14:48:26 7/05/2008)
Soll ich dir ne Func schreiben?

Epiphone (14:48:31 7/05/2008)
wär klasse

Hier ist sie. Ihr könnt sie einfach in ein Modul einfügen und sie im kompletten Projekt benutzen.

Code:
Public Function ReadLines(sPath As String, _
Optional lStart As Long = 0, Optional lEnd As Long = 0) As String
 
    On Error GoTo Errhandler:
 
    Dim sTemp As String, sOutput As String
    Dim FF As Integer
 
    FF = FreeFile
 
    Open sPath For Input As #FF
        If lStart = 0 Then GoTo 10
 
        For i = 1 To lStart - 1
            Input #FF, sTemp
        Next
 
10
        If lEnd = 0 Then GoTo 20
 
        For i = lStart To lEnd
            If EOF(FF) = True Then
                Exit For
            End If
 
            Input #FF, sTemp
 
            If sOutput = "" Then
                sOutput = sTemp
            Else
                sOutput = sOutput &amp; vbCrLf &amp; sTemp
            End If
        Next
    Close #FF
 
    GoTo 30
 
20
    Do Until EOF(FF) = True
        Input #FF, sTemp
 
        If sOutput = "" Then
            sOutput = sTemp
        Else
            sOutput = sOutput &amp; vbCrLf &amp; sTemp
        End If
    Loop
 
30
    ReadLines = sOutput
 
Exit Function
Errhandler:
 
    ReadLines = "An error occurred."
 
End Function

Aufruf:

Code:
sVar = ReadLines(Dateipfad, Startzeile, Endzeile)

Dabei ist sind Startzeile/Endzeile jeweils die ersten/letzten ausgegebenen Zeilen.
Um nun zum Beispiel die letzten 3 Zeilen auszulesen benutzt ihr diese Hilfsfunktion:

Code:
Public Function CountLines(sPath As String) As Long
    On Error GoTo Errhandler:
 
    Dim lLines As Long, FF As Integer, sTemp As String
 
    FF = FreeFile
 
    Open sPath For Input As #FF
        Do Until EOF(FF) = True
            Input #FF, sTemp
            lLines = lLines + 1
        Loop
    Close #FF
 
    CountLines = lLines + 1
 
Exit Function
Errhandler:
 
    CountLines = 0
End Function

Nun ruft ihr die Funktion folgendermaßen auf:

Code:
sVar = ReadLines(Dateipfad, CountLines(Dateipfad) - 3, 0)

Als Rückgabewert erhaltet ihr die letzten 3 Zeilen der Datei.
 
Epiphone_
Newbie
Newbie

Anmeldedatum: 13.02.2008
Beiträge: 10


Verfasst am: 01.05.2008, 00:07

hat perfekt funktioniert..war ja auch nich anders zu erwarten!

danke dir bro! wenn ich mit meinem latein am ende bin ist c0re meine erste wahl!

nice!
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Source Codes

Tags: zeilen überspringen, auslesen, datei

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1105 30.10.2009, 12:26
Keine neuen Beiträge IntStr()funktion 1301 11.10.2007, 09:49
Keine neuen Beiträge TopMost Funktion unter DirectX 1020 27.07.2007, 11:48
Keine neuen Beiträge Wie Funktion nutzen ? 1212 29.06.2007, 21:59
Keine neuen Beiträge update funktion einbauen 1453 29.01.2007, 00:11
 


[ Time: 0.1459s ][ Queries: 83 (0.0913s) ][ GZIP on - Debug on ]