Array in Datei Speichern?
Übersicht

![]() |
SupeRalFBetreff: Array in Datei Speichern? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte (mit so wenig Aufwand wie möglich) eine Array-Variable in eine Datei speichern und anschließend wieder auslesen. geht das einfach so? mit google bin ich nur auf ein Toturial gestößen, wie man werte in eine txt speichert, nicht ganze Arrays. | ||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: mit google bin ich nur auf ein Toturial gestößen, wie man werte in eine txt speichert, nicht ganze Arrays.
Arrays sind auch "Werte" ( Variablen ). Die speicherst du genau auf die gleiche Art und Weise. Code: [AUSKLAPPEN] Local array:Int[] = [ 1, 2, 3, 4 ]
Local stream:TStream = WriteStream( "MeineDatei.txt" ) For Local I:Int = 0 To array.length - 1 WriteLine stream, array[ I ] Next CloseStream stream |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Öffne mit WriteFile einen Stream, schreib die Array-Länge als erstes mit WriteInt rein, dann ließ jeden Eintrag in dem Array aus und schreib auch den in das File.
Kleines Beispiel zum schreiben eines Integer-Arrays in eine Datei: Code: [AUSKLAPPEN] Local Stream:TStream = WriteFile ("DeinPfad")
Stream.WriteInt (Array.Length) For Local i:Int = EachIn Array Stream.WriteInt (Array[i]) Next Stream.Close () Das auslesen funktioniert so ähnlich: Code: [AUSKLAPPEN] Local Stream:TStream = ReadFile ("DeinPfad")
Array = Array[..Stream.ReadInt ()] For Local i:Int = Array.Length Array[i] = Stream.ReadInt () Next Stream.Close () cheers |
||
c64 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Code: [AUSKLAPPEN] LoadByteArray SaveByteArray allerdings nur ByteArrays, sollte aber kein problem sein sich die daten aufzubereiten. |
||
Betreten verboten! Kinder haften für ihre Eltern! |
![]() |
SupeRalF |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen dank für eure antworten, aber irgendwie glaub ich, trifft das nicht das, was ich machen will.
in der Praxis habe ich einen Editor für ein Spiel, bei dem man die felder in einem Rastermuster editieren kann. ganz oben hab ich deshalb stehen: Code: [AUSKLAPPEN] Global level [100,100]
zum test (ging schneller) steht da drunter nun: Code: [AUSKLAPPEN] level[0,0]=1 level[1,1]=1 level[2,2]=2 level[3,3]=2 level[4,4]=1 level[5,5]=1 das ist also mein spielfeld. nun will ich diesen array mit allen darin vorhandenen integern speichern. aber WIE? EDIT: ich habs geschafft!!! einfach mit einer doppelten for schleife... halt so: Code: [AUSKLAPPEN] Local stream:TStream = WriteStream( "D:/MeineDatei.txt" )
For Local a:Int = 0 To 99 For Local i:Int = 0 To 99 WriteLine stream, level[i,a] Next Next |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, wie es oben beschrieben wurde, nur mit einer weiteren Schleife.
Code: [AUSKLAPPEN] For Local I:Int = 0 To 99
For Local J:Int = 0 To 99 WriteInt datei, level[ I, J ] Next Next |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
SupeRalF |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank für eure Hilfe! klappt bisher alles wunderbar. ![]() jetzt muss ich nur noch die datei wieder in einen array umwandeln, also wieder laden. mit dem code von d-bug kann man leider nur 1-dimensionale arrays auslesen, ein rumexperimentieren mit readline brachte mir immer einen fehler hervor... wie kann ich meinen 2-d array wieder laden? |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hiho
Die Daten im Array sind vom Datentyp int, du solltest also auch WriteInt fürs schreiben der Datei benutzen. Auslesen geht genauso wie das schreiben, nur ReadInt verwenden. Ich denke du solltest dir zum Thema Datentypen noch ein wenig Hintergrundwissen aneignen. Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group