|
| Autor |
Nachricht |
c0re_ « Moderator »

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.
| 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 & vbCrLf & 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 & vbCrLf & 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

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! |
|
| |
|
 |
|
|