Moin,
ich habe ein kleines Programm geschrieben, dass unter Linux problemlos Funktioniert, aber unter Windows gibt's Probleme beim korrekten auslesen der Daten, die zuvor in einer Datei gespeichert wurden. Es geht um folgende Methode:
Ich verwende zum auslesen einen Scanner. Als delimiter habe ich "/" gesetzt, da ich am Ende auch Texte mit Leerzeichen abspeichern möchte..
Die folgenden Daten werden unter Windows nicht eingelesen und ich habe keine Ahnung warum.
Alles anzeigen
Hier wird etwas ausgelesen, aber die ersten 12 Datensätze, die in der Datei gespeichert sind und es sollten eigentlich Datensatz 73-84 ausgelesen werden...
Alles anzeigen
Ich habe mich wirklich bemüht den ganzen Code einigermaßen Plattformunabhängig zu schreiben, aber das hat scheinbar nicht geklappt, ich habe aber keine Ahnung, warum unter Windows die Doubles nicht ausgelesen werden können und hoffe deswegen auf einen Hinweis.
Beim schreiben des Textes ist mir jetzt eingefallen, dass ich die Doubles auch erst als String einlesen könnte und dann eine Umwandlung in Double machen könnte, das werde ich gleich mal ausprobieren, dennoch würde ich gern wissen, wo mein Fehler jetzt lag.
Außerdem suche ich noch nach einer eleganteren Methode die Daten abzuspeichern. Eine Datenbank kommt eigentlich nicht in Frage, da zur Nutzung des kleinen Programms nichts zusätzlich installiert werden sollte. Ich hab daran gedacht das eventuell mit XML zu probieren, ist das eine übliche Methode kleinere Datenmengen abzuspeichern oder gibt es da bessere Alternativen?
ich habe ein kleines Programm geschrieben, dass unter Linux problemlos Funktioniert, aber unter Windows gibt's Probleme beim korrekten auslesen der Daten, die zuvor in einer Datei gespeichert wurden. Es geht um folgende Methode:
Ich verwende zum auslesen einen Scanner. Als delimiter habe ich "/" gesetzt, da ich am Ende auch Texte mit Leerzeichen abspeichern möchte..
Die folgenden Daten werden unter Windows nicht eingelesen und ich habe keine Ahnung warum.
Quellcode
- for (int i=0; i<12 && source.hasNextDouble(); i++) {
- if (source.hasNextDouble()) {
- gas[i] = source.nextDouble();
- }
- }
- for (int i=0; i<12 && source.hasNextDouble(); i++) {
- if (source.hasNextDouble()) {
- power[i] = source.nextDouble();
- }
- }
- for (int i=0; i<12 && source.hasNextDouble(); i++) {
- if (source.hasNextDouble()) {
- water[i] = source.nextDouble();
- }
- }
- for (int i=0; i<12 && source.hasNextDouble(); i++) {
- if (source.hasNextDouble()) {
- prevGas[i] = source.nextDouble();
- }
- }
- for (int i=0; i<12 && source.hasNextDouble(); i++) {
- if (source.hasNextDouble()) {
- prevPower[i] = source.nextDouble();
- }
- }
- for (int i=0; i<12 && source.hasNextDouble(); i++) {
- if (source.hasNextDouble()) {
- prevWater[i] = source.nextDouble();
- }
- }
Hier wird etwas ausgelesen, aber die ersten 12 Datensätze, die in der Datei gespeichert sind und es sollten eigentlich Datensatz 73-84 ausgelesen werden...
Quellcode
- for (int i=0; i<12 && source.hasNext(); i++) {
- if (source.hasNext()) {
- comment[i] = source.next();
- }
- }
- } catch(Exception e) {
- System.out.println(e);
- System.out.println("Die Datei wird beim Speichern angelegt.");
- }
- setGas(gas);
- setPower(power);
- setWater(water);
- setPrevGas(prevGas);
- setPrevPower(prevPower);
- setPrevWater(prevWater);
- setComment(comment); }
Ich habe mich wirklich bemüht den ganzen Code einigermaßen Plattformunabhängig zu schreiben, aber das hat scheinbar nicht geklappt, ich habe aber keine Ahnung, warum unter Windows die Doubles nicht ausgelesen werden können und hoffe deswegen auf einen Hinweis.

Beim schreiben des Textes ist mir jetzt eingefallen, dass ich die Doubles auch erst als String einlesen könnte und dann eine Umwandlung in Double machen könnte, das werde ich gleich mal ausprobieren, dennoch würde ich gern wissen, wo mein Fehler jetzt lag.
Außerdem suche ich noch nach einer eleganteren Methode die Daten abzuspeichern. Eine Datenbank kommt eigentlich nicht in Frage, da zur Nutzung des kleinen Programms nichts zusätzlich installiert werden sollte. Ich hab daran gedacht das eventuell mit XML zu probieren, ist das eine übliche Methode kleinere Datenmengen abzuspeichern oder gibt es da bessere Alternativen?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von af-fe ()