Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Maximale Größe Datenfeld

Maximale Größe Datenfeld
23.01.2006 21:06:43
Trixi
Kann ich ein Datenfeld unbegrenzt dimensionieren oder gilt dafür auch die maximale Zeilenzahl einer Excel-Tabelle?
Vielen Dank an die Forum-Teilnehmer
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Maximale Größe Datenfeld
23.01.2006 21:09:57
MichaV
Hallo,
Dimensionen einer Datenfeldvariablen. Bis zu 60 Dimensionen sind zulässig. Das Argument Indizes hat die folgende Syntax:
Gruß- Micha
AW: Maximale Größe Datenfeld
23.01.2006 21:16:04
Trixi
JA aber geht z.B.
ReDim MusterArray(1 to 100000) as Variant ?
Danke Euch
AW: Maximale Größe Datenfeld
23.01.2006 21:53:01
Trixi
Also ich verstehe das so, dass ein Array damit nicht mehr als 65536 Werte in einer Dimension enthalten kann und es somit nicht möglich ist, beispielsweise eine Textdatei mit über 65536 Zeilen in ein array einzulesen?
Recht so ?
AW: Maximale Größe Datenfeld
23.01.2006 22:30:24
MichaV
Hallo Trixi,
die Göße des Datenfeldes hängt einzig und allein von der Speicherkapazität Deines Rechners ab.
Hier mal ein Beispiel, welches bei mir problemlos läuft: Einlesen einer Datei mit 500.000 Zeilen in ein Datenfeld. Ich hab Dir gleich beide Möglichkeiten aufgeschrieben, beachte vor allem die zeitlichen Unterschiede.
Problematisch wirds irgendwann, wenn Du mehrere Dimensionen mit einer hohen Feldanzahl hast.


      
Option Explicit
Sub grossesdatenfeld()
Dim i As Long
Dim t
Dim s As String
Const maxFelder = 500000 'Anzahl der einzulesenden Zeilen bzw. _
                            die gewünschte Größe Deines Datenfeldes

ReDim t(1) 'um eine Redimensionierung zu ermöglichen

'Zuerst die Datei erstellen
Open "test.dat" For Output As #1
  
For i = 1 To maxFelder
    
Print #1, "Zeile " & i
  
Next
Close #1
MsgBox "Daten vorbereitet, werden nun eingelesen"
'Einlesen der Datei Zeile für Zeile. Code ist langsam,
'weil das Datenfeld Schritt für Schritt vergrößert werden muß
Open "test.dat" For Input As #1
i = 0
  
Do
    i = i + 1
    Line 
Input #1, s
    
ReDim Preserve t(1 To i)
    t(i) = s
  
Loop Until EOF(1)
  MsgBox "Einlesen Zeile für Zeile" & vbCrLf & "Obergrenze des Datenfeldes: " & 
UBound(t)
Close #1
'Einlesen auf einen Schlag. Das Einlesen an sich dauert genauso lange wie oben,
'aber da das Datenfeld nur 1x durch die Split- anweisung dimensioniert wird,
'wird der Gesamtvorgang enorm beschleunigt
Open "test.dat" For Binary As #1
    s = Space(LOF(1))
    
Get #1, , s
    t = Split(s, vbCrLf)
    MsgBox "Einlesen auf einen Schlag" & vbCrLf & "Obergrenze des Datenfeldes: " & 
UBound(t)
Close #1
Kill "test.dat"
End Sub 


Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
Anmerkung
23.01.2006 22:50:14
MichaV
Hallo,
zwischen den beiden Einlese- Methoden gehört noch ein
Erase t
um das Datenfeld wieder zurückzusetzen. Damit verringert sich der zeitliche Unterschied, ist aber immernoch deutlich bemerkbar.
Gruß- Micha
AW: Anmerkung
24.01.2006 00:02:22
Trixi
Danke, hilft mir sehr
Das freut mich! Danke für die Rückmeldung! owT
24.01.2006 00:06:38
MichaV
Anzeige
Nochwas !
24.01.2006 09:46:22
Trixi
Bei mir dauert:
Methode 1 - 1:02
Methode 2 - 0:16
Methode 3 - 0:03 (!!)
und die geht so
Start = Now
Open "test.dat" For Input As #1
txtLines = 0
Do While Not EOF(1)
Line Input #1, Text1 ' Hilfsvariable zum einlesen verwenden
txtLines = txtLines + 1
Loop
Close #1
Open "test.dat" For Input As #1
ReDim t(1 To txtLines)
For i = 1 To txtLines
Line Input #1, t(i)
Next i
Close #1
MsgBox "Einlesen mit doppeltem Durchlauf" & vbCrLf & "Obergrenze des Datenfeldes: " & UBound(t) & " Dauer " & CDate(Now - Start)
Kill "test.dat"
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige