realbasic-nug.de
[Top] [All Lists]

Re: Aus Datei in ein Array einlesen

To: Realbasic Mailinglist <realbasic-nug.de@lists.realsoftware.com>
Subject: Re: Aus Datei in ein Array einlesen
From: Michael Köhler <realbasic@skie.info>
Date: Fri, 28 Nov 2008 12:20:48 +0100
Authentication-results: mx.google.com; spf=neutral (google.com: 74.124.194.228 is neither permitted nor denied by best guess record for domain of realbasic-nug.de-bounces@lists.realsoftware.com) smtp.mail=realbasic-nug.de-bounces@lists.realsoftware.com
Delivered-to: listarchive@realsoftware.com
In-reply-to: <FB39427D7EDA4011AA103ABD7FC125E1@HahnPC>
Reply-to: REALbasic NUG German <realbasic-nug.de@lists.realsoftware.com>
Sender: realbasic-nug.de-bounces@lists.realsoftware.com
Thread-index: AclRS1zpm0BUfL0+Ed2LSAAewgRxmQ==
Thread-topic: Aus Datei in ein Array einlesen
User-agent: Microsoft-Entourage/11.4.0.080122
So, zum Abschluss noch meine derzeitige Lösung

DIM f AS FolderItem     'Die Quell-Datei
DIM ti AS TextInputStream     'So wird sie eingelesen
DIM tmp1(1), tmp2(-1) AS String     'Wird zum Auflösen benötigt
DIM Delimiter AS String    = ";"     'Festlegen des Trennzeichens der
Spalten, hier Semikolon als Beispiel
DIM Zielarray(-1,-1) AS String     'Da wird alles abgespeichert
DIM Zeilen, Spalten, i, j AS Integer    'Ist selbserklärend

'Öffnen der Datei 

f=GetOpenFolderItem("text")

IF f <> NIL THEN 
  ti=f.OpenAsTextFile
  tmp1(0)=ti.ReadAll
  ti.Close 
  
 'Definieren des Zeilenendezeichens
  
  tmp1(0)=ReplaceLineEndings(tmp1(0), EndOfLine)
  
 'Bestimmen der Zeilen
  
  tmp2=Split(tmp1(0), EndOfLine)
  Zeilen=UBound(tmp2)
  
 'Bestimmen der Spalten
  
  Spalten=UBound(Split(tmp2(0), Delimiter))
  
 'Zielarray anpassen und füllen
 'Als erstes wird angegeben, wieviele Zeilen und Spalten das Array haben
soll 
  
  REDIM Zielarray(Zeilen, Spalten)
  
 'die -1 sind notwendig da die Indexe durchlaufen werden und ein Rechner bei
0 anfängt zu zählen und nicht bei 1. Die erste Zeile ist also Zielarray(0,x)
die letzte ist Zielarray(Zeilen-1,x)
  FOR i=0 TO Zeilen-1
       tmp1=Split(tmp2(i), Delimiter)
   FOR j=0 TO Spalten-1
    Zielarray(i,j)=tmp1(j)
   NEXT 
  NEXT 
END IF

PS: Christian, ReplaceLineEndings hatte ich schon gefunden, ich wies nur
darauf hin, dass Andys Tipp mit System Objekt mich nicht wirklich weiter
brachte. Er meinte ja auch ReplaceLineEndings, davon steht in System Objekt
aber nichts. Da hätte ich mich totsuchen können und wäre dennoch nicht drauf
gekommen was er meinte.


Am 26.11.2008 9:32 Uhr schrieb "Christian Hahn" unter
<christian.hahn@snafu.de>:

> Hallo, Michael,
> in der Online-Hilfe ins Suchfenster eingeben "ReplaceLineEndings",
> dann bekommst du die Informationen über die globale Funktion.
> beste Grüße, Christian Hahn.
> 
> ----- Original Message -----
> From: "Michael K ö hler" <realbasic@skie.info>
> To: "Realbasic Mailinglist" <realbasic-nug.de@lists.realsoftware.com>
> Sent: Tuesday, November 25, 2008 11:33 PM
> Subject: Re: Aus Datei in ein Array einlesen
> 
> 
> Hm, OK. Von ReplaceLineEndings steht bei System Objekt nix. Hätte ja sein
> können, dass du was anderes meintest ;)
> 
> 
> Am 25.11.2008 12:51 Uhr schrieb "Andy Fuchs" unter <andy@foxwerk.de>:
> 
>> Thomas hat's doch schon geschrieben:
>> 
>>> 1. Dateiinhalt mit ReadAll in einen String einlesen
>>> 2. Mit der Funktion "ReplaceLineEndings(str, EndOfLine)" die Trenner ins
>>> Default-Format umwandeln.
>>> 3. Mit Funktion Split(str, EndOfLine) ein Array der Zeilen erzeugen.
>> 
>> andy
>> 
>> On 25.11.08 12:45, "Michael Köhler" <realbasic@skie.info> wrote:
>> 
>>> Hm...hab mal in der Sprachreferenz geschaut unter System Objekt aber ich
>>> bin
>>> wohl zu blind, über den Zeilentrenner hab ich da nix gelesen. Was genau
>>> meinst du also? Ich fürchte ich kann dir da grad leider nicht folgen.
>>> 
>>> Grüße Michael
>>> 
>>> PS: Und nein, du bist mir nicht zu nahe getreten. Ich find Tipps ja immer
>>> gut. Es gibt ja meist immer mehr als nur eine Blickrichtung.
>>> 
>>> 
>>> Am 25.11.2008 0:36 Uhr schrieb "Andy Fuchs" unter <andy@foxwerk.de>:
>>> 
>>>> Hallo Michael,
>>>> 
>>>> ohne Dir zu Nahe treten zu wollen, aber hast Du's mal mit dem
>>>> RB-Handbuch
>>>> versucht? Dynamische Zeilentrennerist doch kalter Kaffee... Tipp:
>>>> System-Object.
>>>> 
>>>> andy
>>>> 
>>>> 
>>>> On 24.11.08 23:30, "Michael Köhler" <realbasic@skie.info> wrote:
>>>> 
>>>>> müsste. Bin jetzt letzte Woche aber auch nicht wirklich dazu gekommen
>>>>> weiter
>>>>> zu machen, bzw. mir was schlaueres zu überlegen statt das File erstmal
>>>>> Zeilenweise zu lesen und die Zeilen dabei zu zählen und dann beim
>>>>> zweiten
>>>>> Mal erst mein Array fülle.
>>>> 
>>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 
> 





<Prev in Thread] Current Thread [Next in Thread>