Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
700to704
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
700to704
700to704
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen in TXT Datei löschen

Zeilen in TXT Datei löschen
25.11.2005 11:06:18
UweP
Hallo,
ich habe eine Textdatei mit ca. 300.000 Einträgen.
die beginnen alle mit einem Datum und dann die Uhrzeit, Semikolon....
Ich suche ein Makro, das alle Zeilen löscht die älter sind als ein bestimmtes Datum.
(das vorher über eine Inputbox abgefragt wird.)
28.01.2005 02:51 ;02299473;Artikel1;10.05;38;02812170251;940428530000170290
28.01.2005 03:42 ;02989288;Artikel2;10.05;126;02812170342;940428530000170306
28.01.2005 03:42 ;02989288;Artikel2;10.05;126;02812170342;940428530000170315
Gruss
UweP

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen in TXT Datei löschen
25.11.2005 13:19:38
Heiko
Hallo Uwe,
habe mal ein bisschen rumprobiert, siehe hier:
https://www.herber.de/bbs/user/28713.xls
Hat mit 10000 Datensätzen bei allen drei Versionen ca. 1,5 Sekunden gedauert. Bei 300000 Datensätzen sollte es also unter einer Minute dauern, du wirst wohl berichten.
Das mit der Inputbox kannst du dir sicher schnell selbst einbauen.
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Zeilen in TXT Datei löschen - Danke
25.11.2005 13:40:55
uwep
Danke Heiko,
-- schönes Wochenende --
Gruss Uwe
AW: Zeilen in TXT Datei löschen - Danke
25.11.2005 14:38:43
Heiko
Hallo Uwe,
nochmal ne schnellere Version:

Sub TextDatAendernNeu3()
' Schreibt in die gleiche Datei
lngTime = GetTickCount
Dim strPfad As String, strhelp As String
Dim arrInput() As String, arrOutput() As String, arrZeile() As String
Dim lngPos As Long, lngHelp As Long
strPfad = "H:\EXCEL\EXCEL Privat\Beispiele\Dat_Test_Dateien\TextDatZeileloeschen.txt"
lngPos = 0
Open strPfad For Binary As #1
strhelp = Space(LOF(1))
Get #1, , strhelp
arrInput = Split(strhelp, vbCrLf)
Close #1
lngHelp = 0
For lngPos = LBound(arrInput) To UBound(arrInput)
strhelp = Left(arrInput(lngPos), 10)
' Hier das datum anpassen oder durch eine Variable ersetzen.
If CDate(strhelp) > CDate("30.01.2005") Then
ReDim Preserve arrOutput(lngHelp)
arrOutput(lngHelp) = arrInput(lngPos)
lngHelp = lngHelp + 1
End If
Next lngPos
Open strPfad For Binary As #1
Put #1, , Join(arrOutput, vbCrLf)
Close #1
MsgBox "Zeitdauer der Messung = " & (GetTickCount - lngTime) / 1000 & " Sekunden !"
End Sub

Die Zeiten die das bei dir mit 300000 Zeilen braucht würden mich schon interessieren.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige