ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 13.01.2000

Diese Seite wurde zuletzt aktualisiert am 13.01.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zurück...


Anzeige

(-hg) mailto:hg_zeilenzaehlen@aboutvb.de

Sie möchten wissen, wie viele Zeilen eine Text-Datei enthält? Zeile für Zeile beim Einlesen Zählen, Text komplett einlesen und Zeilentrenner (vbCrLf) darin zählen - das sind nicht sonderlich schnelle Methoden. Bei ersterer kostet der zeilenweise Dateizugriff die meiste Zeit. Bei letzterer sind es die InStr-Operationen in der notwendigen Schleife, die auch nicht gerade die schnellsten sind.

Mit einem kleinen Trick kommen Sie auf schnellstem Wege zum Ziel. Sie lesen die Datei komplett ein und merken sich die Länge des Strings, der den gelesenen Text enthält. Dann entfernen Sie sämtliche Zeilentrenner aus dem String. Die Differenz zwischen der neuen Länge und der alten Länge des Strings ergibt die Anzahl der Zeilen. Sollte die letzte Zeile nicht mit einem Zeilentrenner abgeschlossen gewesen sein, muss die Anzahl noch um 1 erhöht werden.

Das Entfernen der Zeilentrenner soll schneller sein, als das reine Zählen der Zeilentrenner? Ja, wenn Sie die Zeilentrenner nicht selbst entfernen, sondern die VB-Funktion MSDN Library - VB ReplaceReplace (seit VB 6 vorhanden) die Arbeit machen lassen. Diese ist intern ziemlich gut durchoptimiert und ackert sich schneller durch einen textlangen String, als jede selbstgeschriebene VB-Routine. Sollten Sie den eingelesenen Text noch unverändert weiterverwenden wollen, weisen Sie das Ergebnis von Replace hilfsweise einer weiteren String-Variablen zu - der an Replace übergebene Original-String bleibt unverändert. In die Funktion ZeilenZahl verpackt geht es kaum noch kompakter und schneller.

Dim nFNr As Long
Dim Text As String

nFNr = FreeFile
Open DateiTxt For Binary As #nFNr
  Text = Space$(LOF(nFNr))
  Get #nFNr, , Text
Close #nFNr

MsgBox "Die Datei enthält " & ZeilenZahl(Text) & " Zeilen."

'...

Function ZeilenZahl(Text As String) As Long
  Dim TextLänge As Long
  Dim ZeilenAnzahl As Long
  Dim ExtraZeile As Integer
  Dim HilfsText As String

  If Right$(Text, 2) <> vbCrLf Then
    ExtraZeile = 1
  End If
  TextLänge = Len(Text)
  HilfsText = Replace(Text, vbCrLf, "")
  ZeilenZahl = ((TextLänge - Len(HilfsText)) \ 2) + ExtraZeile
End Function

Die VB-Funktion Replace schlägt jeden handgemachten VB-Code - mit der Funktion ZeilenZahl können Sie sich das manuelle Zählen der Zeilen einer Textdatei ersparen


Modul modCountTextLines (modCountTextLines.bas - ca. 0,3 KB)






Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer