Bitte: Wie besondere Daten auslesen und umspeichern?

Status
Nicht offen für weitere Antworten.

-horn-

Bekanntes Mitglied
moien,

ich komme zu euch, weil der jenige, der diese aufgabe machen sollte, das nun doch nicht umgesetzt bekommt.

ein kommilitone und ich haben in der hochschule simulationen durchgeführt und die ergebnisse sollen nun ausgewertet werden. da das aber über 160 files sind und das viel handarbeit wäre hat uns unser professor einen anderen studenten zugeteilt, der die ganzen messergebnisse aus den txt files einlesen, bestimmte teile herausgreifen und umspeichern sollen.
dieser wollte das mit matlab machen (naja, ich kenne das programm zwar als matheprogramm, aber er sagte, das ginge) aber nun kriegt er das doch nicht hin. wenn wir das selber programmieren können (egal womit) hätten wir es dann getan. nur haben wir uns auf den verlassen, er macht es uns nicht mehr und wir haben es schon dem professor gesagt. nur wollen wir selber gerne die auswertungen machen nur wäre es echt viel handarbeit.

deswegen frage ich nun hier bei euch, ob ihr mir helfen würdet.

ich poste malbeispielhaft die ausgabe txt und beschreibe dann, was wir davon brauchen. die ganze ergebnisse liegen dann in einzeldateien vor, die alle andere namen haben (aber dann alleine in einem verzeichnis liegen würden).

Code:
Reading "C:\Dokumente und Einstellungen\Andreas\windschutz_final\parabelf2fernfeld5kmbodeneffektp30deg5_windschutz_zaun70_halfch_wall_halfch.dat"...
Done.

Force vector: (1 0 0)
                                pressure        viscous          total       pressure        viscous          total
zone name                          force          force          force    coefficient    coefficient    coefficient
                                       n              n              n                                             
------------------------- -------------- -------------- -------------- -------------- -------------- --------------
wall_zaun                      13954.011     0.62849723      13954.639     0.30900144  1.3917615e-05     0.30901536
3rd                           -190.23902     -16.377966     -206.61698   -0.004212705 -0.00036267816  -0.0045753831
2nd_l                         -392.43055      -19.13369     -411.56424  -0.0086900898 -0.00042370169  -0.0091137915
1st_l                         -270.21683     -16.590644     -286.80748  -0.0059837557 -0.00036738778  -0.0063511435
2nd_r                          159.26538     -11.840137      147.42524   0.0035268162 -0.00026219125    0.003264625
1st_r                          762.61888     -6.6914056      755.92748    0.016887642 -0.00014817632    0.016739466
wall_wall                      20243.323      14.716528       20258.04      0.4482737  0.00032588683     0.44859959
wall_boden                             0      37065.373      37065.373              0     0.82078579     0.82078579
------------------------- -------------- -------------- -------------- -------------- -------------- --------------
net                            34266.332      37010.084      71276.416     0.75880305     0.81956146      1.5783645

Force vector: (0 1 0)
                                pressure        viscous          total       pressure        viscous          total
zone name                          force          force          force    coefficient    coefficient    coefficient
                                       n              n              n                                             
------------------------- -------------- -------------- -------------- -------------- -------------- --------------
wall_zaun                     -88.104277      19.875132     -68.229144  -0.0019510053  0.00044012038  -0.0015108849
3rd                           -34.015714     -5.4930666      -39.50878  -0.0007532533 -0.00012163997 -0.00087489327
2nd_l                           111.3798     -6.5924097      104.78739   0.0024664248 -0.00014598413   0.0023204407
1st_l                          148.55387     -4.8852576      143.66861   0.0032896177 -0.00010818049   0.0031814372
2nd_r                         -268.02533     -2.9825215     -271.00785  -0.0059352264 -6.6045775e-05  -0.0060012722
1st_r                         -924.30859    -0.72049134     -925.02908   -0.020468143 -1.5954758e-05   -0.020484098
wall_wall                     -2443.5932      18.653275       -2424.94   -0.054111599  0.00041306325   -0.053698536
wall_boden                    -3801831.7              0     -3801831.7     -84.188805              0     -84.188805
------------------------- -------------- -------------- -------------- -------------- -------------- --------------
net                           -3805329.8      17.854661       -3805312     -84.266268  0.00039537851     -84.265872

Moment Center: (0 0 0)
zone name                                               pressure moment                                viscous moment                                  total moment                          pressure coefficient                           viscous coefficient                             total coefficient
                                                                    n-m                                           n-m                                           n-m                                                                                                                                          
------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- ---------------------------------------------
wall_zaun                                               (0 0 -29525.88)                                (0 0 -1223.87)                               (0 0 -30749.75)                             (0 0 -0.10897153)                           (0 0 -0.0045169521)                             (0 0 -0.11348848)
3rd                                                     (0 0 775.16717)                              (0 0 -5.2626081)                               (0 0 769.90456)                            (0 0 0.0028609191)                          (0 0 -1.9422773e-05)                            (0 0 0.0028414963)
2nd_l                                                  (0 0 -761.51279)                               (0 0 112.39608)                              (0 0 -649.11671)                           (0 0 -0.0028105247)                           (0 0 0.00041482162)                           (0 0 -0.0023957031)
1st_l                                                  (0 0 -4678.4883)                               (0 0 170.83154)                              (0 0 -4507.6568)                            (0 0 -0.017266955)                           (0 0 0.00063049007)                            (0 0 -0.016636465)
2nd_r                                                  (0 0 -4901.5997)                              (0 0 -57.022046)                              (0 0 -4958.6217)                            (0 0 -0.018090395)                          (0 0 -0.00021045197)                            (0 0 -0.018300847)
1st_r                                                  (0 0 -34234.322)                              (0 0 -27.326094)                              (0 0 -34261.648)                             (0 0 -0.12634904)                          (0 0 -0.00010085275)                             (0 0 -0.12644989)
wall_wall                                               (0 0 226329.37)                              (0 0 -1150.8556)                               (0 0 225178.52)                              (0 0 0.83531662)                           (0 0 -0.0042474769)                              (0 0 0.83106914)
wall_boden                                          (0 0 1.0608148e+10)                               (0 0 129728.81)                           (0 0 1.0608278e+10)                               (0 0 39151.624)                              (0 0 0.47879171)                               (0 0 39152.103)
------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- ---------------------------------------------
net                                                 (0 0 1.0608301e+10)                                (0 0 127547.7)                           (0 0 1.0608429e+10)                               (0 0 39152.189)                              (0 0 0.47074187)                                (0 0 39152.66)

so, was wir da brauchen sind die werte, die unter "total force" in der spalte stehen. die namensgebung ist in allen files gleich, also 1st_r und co (links) sind gleich, nur stehen die mal nicht immer in der selben reihenfolge sortiert.

das programm müsste nun alle in dem verzeichnis liegenden txt files nacheinander einlesen, nacheinander die bezeichnungen abklappern (also die 1str_r, wall_wall, etc), muss dann rechts in der spalte bei total force sich den wert nehmen und dann speichern.

das ganze kann csv, oder auch xls/ods sein, hauptsache man kann damit dann direkt arbeiten.

damit man die werte dann zuordnen kann sollte aus der obersten zeile der dateinamen übernommen werden und bei jedem total force gibt es zwei werte. das ist einmal die x richtung (Force vector: (1 0 0)) und y richtung (Force vector: (0 1 0)).

dazu müsste dann auch noch das moment (steht unter Moment Center: (0 0 0)) auch gespeichert werden.

die sorterierung kann erstmal alles zusammen nach datei geschehen, hauptsache es steht dann in einer tabelle oder man kann es durch csv einfach in eine tabelle einbauen
zb.
DATEINAME;Force vector: (1 0 0);wall_wall;wall_zaun;1st_l ;2nd_l;3rd;2nd_r;1st_r;Force vector: (0 1 0);wall_wall;wall_zaun;1st_l ;2nd_l;3rd;2nd_r;1st_r;Moment Center: (0 0 0);wall_wall;wall_zaun;1st_l ;2nd_l;3rd;2nd_r;1st_r;
wenn dann mal kein wall_wall oder wall_zaun dabei ist einfach als 0 setzen.

das doofe an der sache ist halt, dass nicht immer alle bezeichnungen (1st_r) dabei sind, dass die dann unterschiedlich sortiert sind, und dass die dritte spalte für total force nicht immer die gleich anzahl an zeichen hat bis sie beginnt.

würde mich sehr über hilfe freuen oder jeden tipp, wie wir das selber hinkriegen.

danke im voraus,


Andreas
 

Murray

Top Contributor
Bahnhof?

In Deiner Beispielzeile tauchen ja überhaupt keine Werte auf. Und was soll beim Moment übernommen werden? total moment? Denn total_force gibt es da ja nicht.

Poste doch mal das gewünschte Ergebnis, also was für ein CSV aus der geposteten Ursprungsdatei entstehen soll.
 

0x7F800000

Top Contributor
och je.. Woher habt ihr denn die Dateien in diesem nicht sonderlich sympathischen Format bekommen?
Da es ja einfach nur text ist, würde ich spontan vorschlagen, sich aus paar schleifen und regex-matchern eine methode zu basteln, die die interessanten daten rausfiltert, und erstmal ganz normal im string-array ausgibt. Das ganze in csv wieder umzuschreiben wäre dann hoffentlich kein Problem mehr. Alle dateien automatisch durchzugehen dürfte wohl auch machbar sein, oder?

Ist insgesamt recht knifflig halt, aber nichts allzu kompliziertes an sich.
Da muss man vielleicht eine halbe Stunde rumbasteln oder so...
 
G

Gelöschtes Mitglied 9001

Gast
Unter den Annahmen, dass
-die drei Tabellen immer in dieser Reihenfolge erscheinen
-die gewünschten Daten sich immer in der gleichen Spalte befinden (Spalte 3, wenn die linkeste Spalte als Spalte 0 gezählt wird)
-bei Moment Center total moment gemeint ist

müßte folgender Code funktionieren (ist vielleicht nicht sonderlich schön auf die Schnelle, sollte aber seinen Dienst tun):


Code:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.Writer;
import java.util.HashMap;


public class testprojekt {
	String sep = ";";
	
	public class ParseException extends Exception {
	}
	
	public HashMap<String,String> getColumn(LineNumberReader lr, int col) throws IOException, ParseException {
		HashMap<String, String> data = new HashMap<String, String>();
		
		String input = lr.readLine();
		
		while (input != null && !input.startsWith("---")) {
			String colsepchars = input.contains("(")?"\\s+\\(|\\)\\s+\\(|\\s+\\)":"\\s+";
			
			String [] columns = input.split(colsepchars);
			if (columns == null || columns.length <= col) {
				throw new ParseException();
			}

			data.put(columns[0], columns[col]);
			
			input = lr.readLine();
		}
		
		return data;
	}
	
	public void jumptonexttable(LineNumberReader lr) throws IOException, ParseException {
		String input;
		
		do {
			input = lr.readLine();
			if (input == null) throw new ParseException();
		} while (!input.startsWith("---"));
	}
	
	public void writemapdata(HashMap map, Writer w) throws IOException {
		String [] neededfields = {"wall_wall", "wall_zaun", "1st_l", "2nd_l", "3rd", "2nd_r", "1st_r"};
		
		for(String field: neededfields) {
			Object value = map.get(field);
			w.write(value==null?"0":value.toString());
			w.write(sep);
		}
	}
	
	public void parseFile(File f, Writer w) throws IOException, ParseException {
		LineNumberReader lr = null;
		
		try {
			lr = new LineNumberReader(new FileReader(f));
			jumptonexttable(lr);
			HashMap<String,String> vector100 = getColumn(lr, 3);
			
			jumptonexttable(lr);
			HashMap<String,String> vector010 = getColumn(lr, 3);
			
			jumptonexttable(lr);
			HashMap<String,String> moment = getColumn(lr, 3);
			
			w.write(f.getName()+sep);
			w.write("Force vector: (1 0 0)"+sep);
			writemapdata(vector100, w);
			w.write("Force vector: (0 1 0)"+sep);
			writemapdata(vector010, w);
			w.write("Moment Center: (0 0 0)"+sep);
			writemapdata(moment, w);
			
			w.write("\r\n");
		
		} finally {
			try {
				if (lr != null) lr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}
	
	public void outdata(String s) {
		System.out.println(s);
	}
	
	public testprojekt()  {
		System.out.println("Stelle Daten zusammen");
		Writer w = null;
		try {
			w = new BufferedWriter(new FileWriter(new File("wholedata.dat")));
			
			File Dir = new File(".");
			for(File f: Dir.listFiles(new FilenameFilter() {
				public boolean accept(File dir, String name) {
					return name.toUpperCase().endsWith(".TXT");
				}})) {
				
				try {
					parseFile(f, w);
				} catch (ParseException e) {
					System.out.println("Fehler beim Lesen der Datei "+f);
				}
			}
		}
		catch (IOException e) {
			System.out.println(e.getLocalizedMessage());
		}
		
		try {
			if (w != null) w.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String [] args) {
		new testprojekt();
	}
}

Die Textdateien müssen im gleichen Verzeichnis wie das Programm liegen, die Ausgabedatei ist wholedata.dat (CSV) und liegt dann ebenfalls im gleichen Verzeichnis.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ineedhelpinjava OOP Bitte wichtig Java Basics - Anfänger-Themen 6
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
Vivien Bitte um Optimierungsvorschläge / Verbesserungsvorschläge / allgemeines Feedback Java Basics - Anfänger-Themen 8
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
P Bitte Hinweise zu folgendem "Klassenproblem" Java Basics - Anfänger-Themen 3
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
T Bitte um Hilfe Java Basics - Anfänger-Themen 9
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
J Bitte Hilfe Java Basics - Anfänger-Themen 4
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
A GUI- Allgemeines Problem (Bitte helfen) Java Basics - Anfänger-Themen 15
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
S Variablen Hilfe bitte Java Basics - Anfänger-Themen 6
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
Q Importieren meiner Boundary? Bitte Hilfe Java Basics - Anfänger-Themen 3
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
CyberFish initialisieren, obwohl es gemacht wurde! Bitte um Hilfe Java Basics - Anfänger-Themen 10
H Bitte um Hilfe von Profis. Java Basics - Anfänger-Themen 5
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Bitte Hilfe für Funktionalität eines Sudokus Java Basics - Anfänger-Themen 8
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
J Vererbung Anfänger Programm bitte um Kritik&Anregungen Java Basics - Anfänger-Themen 21
N Bitte Java Basics - Anfänger-Themen 2
D ???:L Bitte einmal mit drüber nachdenken Java Basics - Anfänger-Themen 5
eLogic DownloadManager - Bitte helft mir Java Basics - Anfänger-Themen 7
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
M Problem: code too large - bitte um Hilfe Java Basics - Anfänger-Themen 12
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
B Java und Javac funktionieren nicht - bitte hilfe Java Basics - Anfänger-Themen 5
P Bitte helft mir Java Basics - Anfänger-Themen 3
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
R Jave Problem... bitte um Hilfe!! Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
C Bitte kurzes Feedback - JavaVersionen Java Basics - Anfänger-Themen 6
M Bitte um Verbesserungsvorschläge Java Basics - Anfänger-Themen 14
N verständniss problem bitte um hilfe Java Basics - Anfänger-Themen 3
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
B Monat und Jahr bitte um Hilfe Java Basics - Anfänger-Themen 8
J Datentypen Generics - Bitte helfen !! Java Basics - Anfänger-Themen 9
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
S Datei-KopierProgramm ? CODE BITTE VERBESSERN Java Basics - Anfänger-Themen 11
D code erklären bitte ! Java Basics - Anfänger-Themen 15
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
M Bitte um Kontrolle meines Quelltextes Java Basics - Anfänger-Themen 10
J Leichte Java Anfängerfrage. Bitte schnelle Antwort. :) Java Basics - Anfänger-Themen 10
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
T Problem mit Aufgabe..bitte um Hilfe Java Basics - Anfänger-Themen 8
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39
D Ausgabe sauber formatieren *bitte nochmal reinschaun* Java Basics - Anfänger-Themen 7
S Bitte um Hilfe beim unsortierten Binärbaum!! Java Basics - Anfänger-Themen 6
D Ausgabe in Datei ( bitte helfen ) Java Basics - Anfänger-Themen 13
N Bitte um Hilfe - zyklisch Existenz einer Datei prüfen Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben