Herbers Excel-Forum - das Archiv

Grosse Textdatei in einen String einlesen

Bild

Betrifft: Grosse Textdatei in einen String einlesen
von: Reinhard
Geschrieben am: 11.10.2003 16:38:00
Hallo Wissende,
mit nachstehendem Code erzeuge ich eine Ascii-Datei mit ca.1,9MB Zeichen
mit
Dim Zeile as String
open "dateiname" for input as #1
while not eof(1)
input #1, Zeile
...
kann ich sie einlesen aber wegen der 200.000 Dateizugriffe dauert das ewig.
Nun ist String(feste Länge) mit maximal ca. 65.400 Bytes beschrieben aber
String(variable Länge) mit 0 bis 2 Milliarden.
Nun meine Frage, wie lese ich auf einen Rutsch eine Datei in einen String (variabler Länge) ein?
Dim weglassen? was sagt dann option explicit, außerdem habe ich es nicht geschafft, dies mit binary, random len=usw.
Gruß
Reinhard

Sub erzeugen()
Open "c:\temp\riesig.txt" For Output As #1
For n = 1 To 200000
Print #1, n
Next n
Close
End Sub

Bild

Betrifft: AW: Grosse Textdatei in einen String einlesen
von: Ramses
Geschrieben am: 11.10.2003 16:51:28
Hallo Reinhard

probier mal das

http://www.office.gmxhome.de/_excel_vba_externe_daten.htm#Sub%20Read_Extern_File()

Das habe ich 3 Beiträge weiter unten ebenfalls schon gepostet.
Das einlesen von 148000 Datensätzen dauert bei mir ca. 6 Sekunden,... ist das schnell genug?

Gruss Rainer
Bild

Betrifft: Klasse Seite, aber
von: Reinhard
Geschrieben am: 11.10.2003 17:18:05
Hallo Rainer,
ui, fällt grad Tor für Deutschland *gg*
Die Seite ist gut und sehr sehr selbsterklärend, ideal für jemand der das
Einlesen üben/verstehen möchte.
Auf den ersten Blick fand ich auch für mich was Neues, bisher scheiterte ich immer
mit Dim Anzahl(len(Datei)), aber ich sah jetzt es geht wohl mit Redim, muss mir das mal in Ruhe reinziehen.
Wenn ich die Subs korrekt verstanden habe, geschieht das eigentliche Einlesen immer noch durch
input #1, Zeile
so oft wie Zeilen da sind.
Mit meinem Anfangsposting wollte ich ja herasubekommen, wie ich eine beliebig (max 2 Milliarden Zeichen wegen variabler Stringdefinition) große Datei
in einen einzigen String auf einmal einlesen kann und wie ich einen String als variabel
bezüglich der Länge deklariere um dieses zu ermöglichen.
Danke dir
Reinhard

 Bild
Excel-Beispiele zum Thema " Grosse Textdatei in einen String einlesen"
HTML-Datei im Internet-Explorer mit fester Fenstergrösse 400 leere Textdateien anlegen
Daten aus Textdatei gezielt in Zellen übernehmen Textdatei als externe Datei per VBA einbinden
Textdatei mit vorgegebenen Feldlängen anlegen Textdateien verbinden
Variablen in einer temporären Textdatei zwischenspeichern In importierter Textdatei englische Werte in deutsche wandeln
Textdatei in Tabellenblatt importieren Export in Textdatei mit festen Feldlängen