Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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
Inhaltsverzeichnis

Textdateien schnell durchsuchen

Textdateien schnell durchsuchen
29.08.2013 14:36:11
Ben
Hallo zusammen,
ich habe folgendes Problem und benötige euer Fachwissen:
Ich habe eine .txt-Datei (TAB-getrennt; bis zu 500.000 Zeilen lang / 80MB groß). In dieser .txt-Datei möchte ich einen Datum-Uhrzeit-String / -Bereich finden und die dazugehörige Zeile komplett kopieren und in Excel einfügen.
Das war ja noch leicht :-)
Im Moment wird die Datei Zeilenweise eingelesen, die Zeile per Split auseinander genommen und der Wert verglichen - wenn er stimmt wird die Zeile kopiert.
Dieser Schleifendurchlauf (siehe unten) funktioniert einwandfrei - da ich aber nun einen gewissen "Zeitbereich" (+/- 10 Sekunden der Suchvariable) aus der Datei rausholen muss läuft die Schleife sehr häufig durch... d.h. wenn mein Zeitbereich am Ende der Datei liegt prüft er im schlimmsten Fall 450.000 Zeilen umsonst - und das dauert...
Ich suche nach einer Lösung die das schnell kann.
Hier ein Ausschnitt der .txt-Datei:
https://www.herber.de/bbs/user/87088.txt

Do While Zeit_Var  Zeit_Var Then GoTo zeit_zu_gross 'Zeit in eingelesener Zeile ist
'größer als gesuchte Zeit
If S_Ergebnis(1) 

Ich hoffe ihr könnt mir helfen. Vielen Dank.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdateien schnell durchsuchen
29.08.2013 16:29:46
fcs
Hallo Ben,
Hallo Ben,
bau dein Makro in die folgende Richtung um, dann muss die Textdatei nur einmal abgearbeitet werden.
Gruß
Franz
'Option Explicit
'Variante mit Vergleich der in Zeiten umgewandelten Textstrings
Sub Import_Data()
'Testdaten
Zeit_Var = VBA.CDate("2013-06-16 18:34:13")
Zeit_Ende = VBA.CDate("2013-06-16 18:34:22")
sFile = "D:\Test\DatFile87088.txt"
i = 2
Application.ScreenUpdating = False
iFile = FreeFile()
Open sFile For Input As iFile
Do Until EOF(iFile)
Line Input #iFile, sTxt                 'Zeile einlesen
sTxt_Neu = Replace(sTxt, Chr(34), "")   'entfernt aus der Zeile die "
S_Ergebnis = Split(sTxt_Neu, vbTab)     'Split mit Tabulator
If S_Ergebnis(1) = "TimeString" Then GoTo n_Zeile   'kleine Hilfe damit erste Zeile
datErgebnis = CDate(S_Ergebnis(1))
If datErgebnis >= Zeit_Var And datErgebnis = Zeit_Var And S_Ergebnis(1) 

Anzeige
AW: Textdateien schnell durchsuchen
30.08.2013 08:14:03
Ben
Wieder was gelernt.
Die aktuelle Durchlaufzeit von 16 .txt-Dateien mit einer Gesamtgröße von 1,2GB inkl. aufteilen auf verschiedene Arbeitsblätter, Sortierung, Auswertung usw. 1:24 Minuten !!!! GENIAL !!!
Ich freu mich riesig.
Vielen Dank! Die Lösung liegt manchmal so nah...
Gruß Ben

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige