VBA Tipp: ASCII-Zeichen in Datei zählen
Aus DBWiki
Version vom 2. März 2011, 18:55 Uhr von Arne Dieckmann (Diskussion | Beiträge)
Aufgabenstellung
Ich möchte effizient ermitteln, wie oft ein bestimmtes ASCII-Zeichen in einer Datei vorkommt.
Lösung:
Das leistet die folgende Funktion:
Public Function CountChar(FName As String, Optional SrcChar As Byte = 10) Dim Chan As Integer, Buf(1023) As Byte, Cnt As Long Dim I As Long, L As Long, Lg As Long Chan = FreeFile() Open FName For Binary Access Read As Chan Lg = FileLen(FName) Do L = Lg If L > 1024 Then L = 1024 Get Chan, , Buf For I = 0 To L - 1 If Buf(I) = SrcChar Then Cnt = Cnt + 1 Next I Lg = Lg - L Loop Until Lg <= 0 Close Chan CountChar = Cnt End Function
Aufruf
Um die Zahl der Zeilenenden (LF) zu ermitteln:
CountChar("C:\MeinVerzeichnis\MeineDatei.TXT")
oder, um die Zahl der Seitenvorschübe (FF) festzustellen:
CountChar("C:\MeinVerzeichnis\MeineDatei.PRN",12)