Mein Ziel ist es, dass in einer CSV Datei die Fahrzeugwerte (ffz) selbstständig ausgerechnet werden ohne das es alle Zahlen weiß z.B. War in der ersten Zeile die ffz = 1 und in der fünften Zeile ffz = 5. Nun soll er die ffz Anzahl selbständig aufrechnen. Hier also in der zweiten Zeile ffz =2 usw.
Die ffz steht in der CSV Datei in der 8. Spalte.
In der zweiten Zeile ist ein Wert, der nur ausgerechnet werden kann, wenn man die FFZ hat.
Ich hab versucht die untenstehende Funktion zu debuggen und weiß nur, dass er halt die Zeilen anhand der Bedingungen überspringt.
Mein momentaner Versuch:
Wenn jemand eine bessere Idee hat, wie man das Problem lösen kann, dann immer her damit.
Die ffz steht in der CSV Datei in der 8. Spalte.
In der zweiten Zeile ist ein Wert, der nur ausgerechnet werden kann, wenn man die FFZ hat.
Ich hab versucht die untenstehende Funktion zu debuggen und weiß nur, dass er halt die Zeilen anhand der Bedingungen überspringt.
Mein momentaner Versuch:
Java:
public void replace(String csvdir) throws IOException {
String csvFilename = csvdir;
CSVReader csvReader = null;
CSVWriter writer = null;
FileWriter mFileWriter = null;
try {
csvReader = new CSVReader(new FileReader(csvFilename));
} catch (FileNotFoundException ex) {
Logger.getLogger(CSVRead.class.getName()).log(Level.SEVERE, "Die Datei output.csv ist nicht vorhanden", ex);
}
List<String[]> doc = csvReader.readAll();
String temp[];
String temp2[];
String temp3[];
int j =1 ,i = 1;
double ffz, ffz1, ffz2 = 0;
double periode = 0;
double produktges = 0;
double reagg = 0;
double result = 0;
double oldprodukt = 0;
double oldreagg = 0;
double newprodukt = 0;
double newreagg = 0;
double smallnumber = 9999;
double bignumber = 0;
double oldsmallnumber = 0;
double oldbignumber = 0;
double lines = 0;
double incline = 0;
double res = 0;
while (doc.size() > j) {
temp = doc.get(j);
ffz = 0;
try {
temp2 = doc.get((int) (smallnumber - 1));
} catch (Exception ex) {
temp2 = null;
}
if (temp[1].contains("Wert konnte nicht ausgerechnet werde, da FFZ fehlt.") && temp[7].contains("Nicht eingetragen")) {
if (j < smallnumber) {
smallnumber = j;
} else {
bignumber = j;
}
try {
ffz1 = Double.parseDouble(temp[7]);
} catch (NumberFormatException ex) {
ffz1 = 0;
}
if (ffz1 > 0) {
if (temp2 != null) {
try {
ffz2 = Double.parseDouble(temp2[7]);
} catch (NumberFormatException ex) {
ffz2 = 0;
}
if (ffz2 > 0) {
lines = j - smallnumber - 1;
ffz = ffz1 - ffz2;
incline = ffz / lines;
i = (int) smallnumber - 1;
while (i >= smallnumber && i <= bignumber){
temp3 = doc.get(i);
res = ffz2 + (incline * (i - (smallnumber - 1) ));
temp3[7] = toString();
doc.set(i, temp3);
}
smallnumber = 9999;
bignumber = 0;
}
}
}
}
j++;
}
Wenn jemand eine bessere Idee hat, wie man das Problem lösen kann, dann immer her damit.