Tipp 0332 Anzahl Zeilen, Wörter und Zeichen ermitteln
Autor/Einsender:
Datum:
  Angie
10.05.2003
Entwicklungsumgebung:   VB 6
In folgendem Beispiel wird gezeigt, wie man den Inhalt einer Textdatei in eine Variable einlesen kann und dann die Anzahl der Zeilen, Wörter und der Zeichen (mit und ohne Absatzschaltungen und/oder Leerzeichen) ermitteln kann.
 
Option Explicit

Private Sub cmdOpenFile_Click()
  On Error GoTo ErrHandler
  With CommonDialog1
    .CancelError = True
    .DialogTitle = "VB-fun - Datei öffnen"
    .InitDir = App.Path
    .Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly
    .Filter = "Text-Dateien (*.txt)|*.txt"
    .ShowOpen

    GetFileStatistic .FileName
  End With

  On Error GoTo 0
  Exit Sub

ErrHandler:
  Exit Sub
End Sub

Private Sub GetFileStatistic(ByVal vsFileName As String)
  Dim FN As Integer
  Dim strFileText As String

  Dim astrData() As String
  Dim strTemp As String

  Screen.MousePointer = vbHourglass

  'Dateiname
  lblFileName.Caption = vsFileName

  'Datei-Größe
  lblSize.Caption = _
        Format$(FileLen(vsFileName), "#,##0") & " Bytes"

  'Datei lesen
  FN = FreeFile()
  Open vsFileName For Binary Access Read As #FN
    strTemp = Space(LOF(FN))
    Get #FN, , strTemp
  Close #FN
  strFileText = strTemp

  'Anzahl Zeilen ermitteln
  astrData() = Split(strFileText, vbCrLf)
  lblLines.Caption = Format$(UBound(astrData) + 1, "#,##0")

  'Anzahl Wörter ermitteln
  strTemp = Replace(strFileText, vbCrLf, " ")
  Do Until InStr(1, strTemp, "  ") = 0
    strTemp = Replace(strTemp, "  ", " ")
  Loop

  astrData() = Split(strTemp, " ")
  lblWords.Caption = Format$(UBound(astrData) + 1, "#,##0")

  'Anzahl Zeichen ermitteln
  '1. Inkl. Absatzschaltungen und Leerzeichen
  lblChars1.Caption = Format$(Len(strFileText), "#,##0")

  '2. Ohne Absatzschaltungen / mit Leerzeichen
  strTemp = Replace(strFileText, vbCrLf, "")
  lblChars2.Caption = Format$(Len(strTemp), "#,##0")

  '3. Ohne Absatzschaltungen / ohne Leerzeichen
  strTemp = Replace(strFileText, vbCrLf, "")
  Do Until InStr(1, strTemp, " ") = 0
    strTemp = Replace(strTemp, " ", "")
  Loop
  lblChars3.Caption = Format$(Len(strTemp), "#,##0")

  Erase astrData()
  Screen.MousePointer = vbDefault
End Sub
 
Weitere Links zum Thema
Zeilen zählen in einer TextBox

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (4,2 kB) Downloads bisher: [ 2121 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 27. August 2011