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