Lieber Michael,
müsste das nicht so gehen?:
ließ die Datei komplett in eine String-Variable 'GesamtText' ein,
mit split-Funktion, Trennzeichen chr(13) (das ist das Zeilen-Trennzeichen), in ein Array 'ZeilenArr' umwandeln,
  dann hast du die Zeilen-Anzahl
nun in einer Schleife alle Elemente von 'ZeilenArr' ablaufen
und jeweils mit split, Trennzeichen (dein Spalten-Trennzeichen), in ein weiteres Array 'SpaltenArr' umwandeln. Für das 2. Array kannst du bei jedem Schleifen-Durchlauf immer die selbe Variable 'SpaltenArr' benutzen, damit du hinterher nicht tausend Arrays hast.

Voraussetzung deines Vorhabens ist wahrscheinlich, dass deine Datei in jeder Zeile die gleiche Anzahl von Felder hat oder die 1.Zeile die größte Anzahl an Feldern unter allen Zeilen hat. Also, in der Schleife bei der 1. Zeile die Anzahl der Spalten abgreifen und zur Dimensionierung deines Ziel-Arrays benutzen.

dim f as folderitem
dim t as textinputstream
dim GesamtText as String
dim AnzahlZeilen, AnzahlSpalten as Integer
dim ZielArr(0,0) as String

...
t=f.OpenAsTextFile
GesamtText=t.ReadAll
t.close

Zeilenarr = split(GesamtText, chr(13))
AnzahlZeilen = ubound(ZeilenArr) +1

for i = 0 to ubound ZeilenArr
   SpaltenArr = split(ZeilenArr(i))
   if i = 0 then
       AnzahlSpalten = ubound(SpaltenArr) +1
       Redim GesamtArr(AnzahlZeilen, AnzahlSpalten)
   End if
   for j = 0 to AnzahlSpalten -1
       ZielArr(i,j) = SpaltenArr(j)
   next
next

Ich hoffe, dass ich nichts vergessen bzw. übesehen habe
beste Grüße, Christian Hahn.

----- Original Message ----- From: "Michael K ö hler" <[EMAIL PROTECTED]>
To: "Realbasic Mailinglist" <[email protected]>
Sent: Thursday, November 13, 2008 10:03 PM
Subject: Aus Datei in ein Array einlesen


Hallo allerseits,

sicherlich kann mir hier geholfen werden. Ich habe in einer Textdatei
verschiedene Werte stehen, die ich gerne in ein Array einlesen möchte. Mein
Problem ist, dass ich nicht weiß wieviele Spalten und wieviele Zeilen ich
erwarte (das ist von Datei zu Datei unterschiedlich). Ich habe zwar eine
Lösung wie ich da rankomme aber das ist suboptimal, ich lese die Datei dafür
zweimal ein. Das muss auch einfacher gehen. Die Anzahl der Spalten bekomm
ich mit der Split-Funktion recht simpel raus (lese vorher erst eine Zeile
aus). Zeilenweise auslesen wäre ja eine Lösung und dann einfach an das
vorhandene Array anhängen. Bei einem eindimensionalen Array geht das ja ganz
simpel mit append aber bei mehrdimensionalen hab ich noch kein Äquivalent
dazu gefunden. Hätte da jemand einen Tipp für mich?

Grüße Michael




Antwort per Email an