Herbers Excel-Forum - das Archiv

txt nach zeile in array(s)

Bild

Betrifft: txt nach zeile in array(s)
von: Ralf

Geschrieben am: 14.12.2006 19:51:32
Guten Abend
Ein wenig hilflos bräuchte ich etwas Unterstützung.
Ich habe eine sehr umfangreiche Mappe mit (bislang) 84 Tabellen.
Es werden aber sicher noch mehr werden.
Momentan öffne ich von einer anderen Mappe aus die "DatenMappe" und lasse
jede Tabelle in ein Array schreiben ( Arr(i)=xxx.usedrange ), Mappe wieder zu.
Klappt alles toll.
Allerdings müssen ab und an auch Daten verändert werden, und das Speichern
dieser Datenmappe dauert schon eine Weile.
Nun habe ich mal alle Daten zusammengefasst und in eine txt geschrieben.
Das ist ja nun gar kein Vergleich. Speichern geht quasi in Echtzeit.
Nur, und das bekomme ich nicht hin, wie lese ich denn jetzt diese txt wieder
in meine verschiedenen Array ein ?
Die txt ist so aufgebaut, dass sie mit der Zeile
ID;Pos.;Anz.;Einh.;Gegenstand
beginnt, dann kommen unterschiedlich viele Zeilen,
dann wieder
ID;Pos.;Anz.;Einh.;Gegenstand
usw.
Jeweils der Bereich von ID;Pos... usw.
bis zum nächsten ID;Pos... stellte in der Mappe
eine Tabelle, bzw. ein Array dar.
Importieren von txt ist Neuland für mich.
Wenn jemand eine Lösung parat hat wäre es Weltklasse.
Wie ich eine bestimmte Zeile suchen muß,
wäre natürlich auch schon eine große Hilfe für mich.
Danke für Eure Mühe
Ralf
Bild

Betrifft: AW: txt nach zeile in array(s)
von: Christoph M

Geschrieben am: 14.12.2006 21:27:59
Hallo Ralf,
hier zwei Beispiele.
1: Lese txtFile komplett und fülle Array.
2. Lese txtFile Zeile für Zeile ein und fülle Array.
Bsp2 dauert natürlich länger, hier könntest du aber einzelne Prüfungen vornehmen.
Gib mir Bescheid, wie du damit parat kommst.
Gruß
Christoph
PS: split gibt es erst seit Excel2000
Option Explicit
Sub GetWholeText()
Dim strTxt$, strSrcFile$
Dim intFile%, i&, arrTxt
strSrcFile$ = "D:\Test.log"
intFile = FreeFile
Open strSrcFile$ For Binary Access Read As #intFile
i = LOF(intFile)
strTxt = String(i, 0)
Get #intFile, , strTxt
Close #intFile
arrTxt = Split(strTxt, vbCrLf)
End Sub
Sub GetTextByLine()
Dim strTxt$, strTmp$, strSrcFile$
Dim intFile%, i&, arrTxt
strSrcFile$ = "D:\Test.log"
intFile = FreeFile
Open strSrcFile For Input As #intFile
Do While Not EOF(intFile)
Line Input #intFile, strTmp
strTxt = strTxt & strTmp & vbCrLf
Loop
Close #intFile
strTxt = Left(strTxt, Len(strTxt) - 2)
arrTxt = Split(strTxt, vbCrLf)
End Sub

Bild

Betrifft: AW: txt nach zeile in array(s)
von: Ralf

Geschrieben am: 14.12.2006 21:46:41
Hallo Christoph,
vielen Dank für die Beispiele.
Allerdings bin ich für heute zu erledigt,
um noch konzentriert arbeiten zu können.
Ich gehe morgen gleich bei und sage Dir dann,
wie weit ich damit gekommen bin.
Bis dann, Ralf
Bild

Betrifft: ok
von: Ralf

Geschrieben am: 15.12.2006 17:17:26
Hallo Christoph,
heute mit frischer Energie ans Werk war schon ein guter Vorsatz ;-)
Das Prinzip habe ich verstanden, den Rest bekomme ich hin.
Vielen Dank und schönes Wochenende
Ralf
 Bild
Excel-Beispiele zum Thema "txt nach zeile in array(s)"
Handhabung von Arrays in benutzerdefininierten Funktionen Redimensionierung eines Arrays über mehrere Dimensionen