title image


Smiley Sequentielles Lesen einer großen Datei
Hallo,

ich habe eine Textdatei (CSV) mit ca. 100.000 Datensätzen mit je 28 Feldern

Da Excel diese Datei nicht öffnen kann, will ich die Daten filtern.

In Feld 6 steht ein Datum (immer der 1. eines Monats als Ganzzahl ,nicht als datumswert) , zB. 20040801

Mit folgendem Code kann ich die Sätze lesen, filtern und ausgeben.



____________________________________________________________________



Makro in eigenem Excel-File. Tabelle1 enthält zur Steuerung:

A1: pfad/name Eingabedatei

B1: pfad/name Ausgabedatei

A2: Nummer der Spalte, nach der gefiltert wird (zB 6, für Spalte F)

B2: Filterwert (ZB 20040801)



____________________________________________________________________



Sub fexport()

On Error goto cleanup

infile = Range("a1").Value

outfile = Range("b1").Value

filtercol = Range("a2").Value

filterval = Range("b2").Value

' Open both Files

Open infile For Input As #1

Open outfile For Output As #2

'Loop Inputfile

Do While Not EOF(1) ' Check for end of file.

Line Input #1, InputData ' Read line of data.

Range("a10") = InputData

Range("a10").TextToColumns Destination:=Range("A10"), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _

Semicolon:=False, Comma:=True, Space:=False, Other:=False



Set currrow = Range("a10", Range("IV10").End(xlToLeft))

'check if critieria matched

If currrow.Cells(filtercol).Value = filterval Then

Print #2, InputData

End If

currrow.Clear

Loop

' EOF, continue with Cleanup

Cleanup:

Close #1

Close #2

End Sub

__________________________________________________________________________________





Es klappt auch mit einer kleinen Testdatei (200 Sätze). Aber sobald ich die

große Datei eintrage "hängt" sich Excel auf (Fehlermeldung - wenn eine kommt: Out of Memory).

Scheinbar wird nicht immer nur ein Satz gelesen - gefiltert - geschrieben,

was mein Code eigentlich tun soll.



Hat jmd. eine Idee, wie man das in den Griff bekommt ? Wird bei Line Input irgendein Puffer gefüllt, den ich immer wieder freigeben muß ?






Viele Grüße aus Langen (Hessen),
           "Quinoman"
Michael


Bei Lösungsvorschlägen bitte das Feedback nicht vergessen. Ich (und oft auch andere) möchte gerne wissen, ob etwas geholfen/geklappt hat.



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: