Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textdatei letzte 10 Zeilen auslesen?

Textdatei letzte 10 Zeilen auslesen?
01.08.2005 23:58:46
Leo
Hi,
hab mit Textdateien keine Erfahrung und im Archiv auch nichts Passendes
gefunden.
Wie kann ich immer nur die letzten 10 Zeilen auslesen?
mfg Leo

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei letzte 10 Zeilen auslesen?
02.08.2005 00:41:48
K.Rola
Hallo,
was soll passieren, wenn die Datei weniger als 10 Zeilen enthält? Sollen die dann
ausgelesen werden? Wohin soll die Ausgabe erfolgen?
Gruß K.Rola
PS: Bist du aus Berlin? Falls ja, kann es sein, dass du in einem Kurs bei mir warst?
(Stromstraße ca. September 2004)
AW: Textdatei letzte 10 Zeilen auslesen?
02.08.2005 01:02:59
Leo
Hi,
wenn es weniger als 10 sind, dann eben die vorhandene Anzahl. Ausgabe über Msgbox
würde reichen, den Rest bekomme ich selbst hin.
mfg Leo
PS Stimmt, da hatte ich einen Kurs, aber da hießt du nicht K.Rola und ich musste
"Sie" sagen.
Ich schrei mich weg....
05.08.2005 17:15:40
Boris
Hi Leo,
PS Stimmt, da hatte ich einen Kurs, aber da hießt du nicht K.Rola und ich musste
"Sie" sagen.

Herrlich!!!
Grüße Boris
Anzeige
Kurs
04.08.2005 08:29:42
Rolf Beißner
Hallo K.Rola,
wo kann man denn deinen Veranstaltungskalender einsehen?
Ist da auch Hessen vorgesehen?
HG
Rolf
AW: Kurs
05.08.2005 17:30:26
K.Rola
Hallo,
Kurse gebe ich so gut wie gar nicht mehr und wenn dann nur Berlin und Umgebung und
wenn das Honorar reizvoll ist(was in diesen Zeiten aber selten der Fall ist).
Konzentriere mich wieder mehr auf meinen eigentlichen Beruf, der mit Excel/Office
VBA/VB nun gar nichts zu tun hat.
Außerdem denke ich, dass ich dir eh nicht viel beibringen könnte.
Gruß K.Rola
AW: Kurs
05.08.2005 20:38:23
Rolf Beißner
Hallo K.Rola,
vielen Dank für die Info + deine wohlwollende Einschätzung -
aber ich wäre froh, hätte ich nur die Hälfte deines hier gefragten Wissens.
Herzliche Grüße
Rolf
Anzeige
AW: Textdatei letzte 10 Zeilen auslesen?
02.08.2005 01:02:19
MichaV
Hallo Leo,
normalerweise wird die Datei eingelesen um zu ermitteln, wieviele Zeilen sie enthält. Dann wird sie nochmal eingelesen und die letzten 10 Zeilen werden ausgewertet.
Hier mal 2 andere Varianten:


      
Option Explicit
Sub TxtAuslesenVar1()
Dim Pfad As String
Dim Inhalt As String
Dim Zeilen() As String
Dim XLetzte As Integer
Dim i As Integer
Dim DatNr As Integer
Pfad = "d:\micha\excel\daten.txt"
XLetzte = 10
DatNr = FreeFile
Open Pfad For Binary As #DatNr
  Inhalt = Space(LOF(DatNr))
  
Get #DatNr, , Inhalt
Close #DatNr
  
Zeilen = Split(Inhalt, vbCrLf)
'Datei liegt 1:1 im Feld Zeilen
'Zeilen(1)= 2. Zeile der Datei
'Zeilen(Ubound(Zeilen))=Letzte Zeile der Datei
If XLetzte > UBound(Zeilen) Then XLetzte = UBound(Zeilen)
For i = 0 To XLetzte - 1
  
Debug.Print "Zeile " & i + 1 & ": " & Zeilen(UBound(Zeilen) - i)
Next i
End Sub

Sub TxtAuslesenVar2()
Dim Pfad As String
Dim Inhalt As String
Dim Zeilen() As String
Dim XLetzte As Integer
Dim i As Integer
Dim DatNr As Integer
Pfad = "d:\micha\excel\daten.txt"
XLetzte = 10
ReDim Zeilen(1 To XLetzte)
DatNr = FreeFile
Open Pfad For Input As #DatNr
Do While Not EOF(DatNr)
  Line 
Input #1, Inhalt
  
For i = XLetzte - 1 To 1 Step -1
    Zeilen(i + 1) = Zeilen(i)
  
Next i
  Zeilen(1) = Inhalt
Loop
Close #1
'Die letzten X Zeilen liegen im Feld XLetzte
'XLetzte(1)=Die letzte Zeile
'XLetzte(Ubound(Xletzte))=die X-Letzte Zeile
For i = 1 To XLetzte
  
Debug.Print "Zeile " & i & ": " & Zeilen(i)
Next i
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
Funktionieren beide, danke! oT
02.08.2005 01:08:06
Leo
l
Danke für Deine Rückmeldung! owT
02.08.2005 01:13:58
MichaV
Halt!
02.08.2005 01:21:12
Leo
Hi,
wenn die Textdatei weniger als 10 Zeilen hat, passiert gar nichts. Ich denke aber,
ich bekomme das selbst geregelt.
mfg Leo
AW: Halt!
02.08.2005 01:33:01
Ramses
Hallo
na dann kann ich dir ja noch meine Variante zeigen :-)
Option Explicit
Option Base 1
'Start CodeSequenz

Sub TestOpen()
LastTenRows "C:\TextTest.txt", 10
End Sub

Sub LastTenRows(myFile As String, txtLines As Integer)
'by Ramses
'Öffnet ein Textfile und liest die jeweils letzten 10 Zeilen ein
'und schreibt diese untereinander in das aktuelle Blatt
Dim i As Integer, n As Integer
Dim helpVar As String
Dim arrBuff() As String, tmpBuff As String
If Right(myFile, 3) <> "txt" Then
    MsgBox "Keine Textfile übergeben"
    Exit Sub
End If
n = 1
'********************
'Für alle Versionen
ReDim arrBuff(10000)
Open myFile For Input As #1
Do While Not EOF(1)
    Line Input #1, arrBuff(n)
    n = n + 1
Loop
Close #1
ReDim Preserve arrBuff(n - 1)
'*******************
'----------------------
'*******************
'Oder
'ab EXCEL 2000
'Open myFile For Binary As #1
'tmpBuff = Space(LOF(1))
'Get #1, , tmpBuff
'Close #1
'arrBuff = Split(tmpBuff, vbCrLf)
'****************
If UBound(arrBuff) <= txtLines Then
    For i = 1 To UBound(arrBuff)
        Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = arrBuff(i)
    Next i
    MsgBox "Nur " & i & " Datensätze in " & myFile
Else
    For i = UBound(arrBuff) - txtLines To UBound(arrBuff)
        Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = arrBuff(i)
    Next i
End If
End Sub

'Ende CodeSequenz


Gruss Rainer
Anzeige
Halt?
02.08.2005 01:33:13
MichaV
da passiert immer was.
Welche Variante meinst Du denn?
Bei der 1. Variante "schrumpft" das Array auf die Anzahl der Zeilen.
Bei der 2. Variante sind die letzten Felder des Arrays leer.
Gruß- Micha
AW: Halt!
02.08.2005 01:58:17
MichaV
Hallo Leo,
vielleicht bist Du über die falsche Ausgabe gestolpert. So muß es in Var1 richtig heißen:
Debug.Print "Zeile " & i + 1 & ": " & Zeilen(UBound(Zeilen) - 1 - i)
Gruß- Micha
PS: Tschuldigung
Danke an alle oT
02.08.2005 15:07:50
Leo
l

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige