Input/Output Zahlen aus Text-Datei in 3-dimensionales Array einlesen

Andind

Neues Mitglied
Hallo zusammen,

ich würde gerne Double-Zahlen aus einer txt.Datei in der Form x.xxxxxxE-x mit 6 oder 7 Nachkommastellen in ein dreidimensionales Array einlesen. Die Daten sind schon blockweise geordnet. Ein Block hat 73 Zeilen und in jeder Zeile befinden sich 96 Zahlenwerte, die jeweils durch ein Komma getrennt sind. Nach jedem Block befinden sich 2 Leerzeilen, insgesamt sind es 43 Blöcke.

Ich hoffe, jemand von euch kann mir weiterhelfen. Vielen Dank!

MfG Andreas
 

eRaaaa

Top Contributor
Was ist dein Ansatz, wo gibts Probleme etc. ?
Ein Beispiel der Datei und wie das dazugehörige Array aussehen soll kann auch nicht schaden!
 

Andind

Neues Mitglied
Das Array soll in [43][73][96] gegliedert sein, damit meine ich [Blöcke][Zeilen][Spalten].
Ich habe momentan noch gar keinen Ansatz, bin ziemlich ratlos...

Die Textdatei sieht folgendermaßen aus:

{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
.
.
.
.
.
<2 Leerzeilen, dann beginnt der nächste Block>

{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
{x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, x.xxxxxxEx, ............., x.xxxxxxEx}
.
.
.
.
 

eRaaaa

Top Contributor
Ich habe momentan noch gar keinen Ansatz, bin ziemlich ratlos...

Das ist schlecht, ist schließlich deine Hausaufgabe :D Du wirst hier von niemanden Code erhalten.
Dein Array ist doch aber klar vorgegeben.
Ein Block könntest du auch als 2D Array sehen
Pseudocode:
Code:
		erstelle dein 3DArray 
		loop: solange es eine weitere Zeile gibt: {
			erstelle 2DArray[73][96];
			loop: for (int i = 0; i < 2DZeilenLänge; i++) {
				lese Zeile
				(entferne eventuell erste und letzte Klammer { und })  <-- sind die wirklich vorhanden?
				String-Array = splitte Zeile am Komma
				loop: for (int j = 0; j < String-ArrayLänge; j++) {
					parse String zu Double
					setze dieses Double an Stelle i, j im 2DArray
				}
			}
			Zuweisung: -> 3DArray[BlockZähler++] = 2DArray;
			überlese die nächsten zwei Zeilen
		}

Vlt fängst du auch erst einmal an, die Datei Zeile für Zeile auszulesen!
 

Oben