F
FanHi
Gast
Guten Abend Leute!
Im Grunde geht es darum, aus einem Array mit 15 Elementen die aktuellen Werte jede Sekunde in eine Zeile in ein .csv file zu schreiben um aus den Werten später in Excel ein Diagramm zu machen.
1. wollte ich fragen, ob jemand vl. eine bessere Möglichkeit kennt
und 2. hab ich ein Problem mit
es kommt die Fehlermeldung :
"Cannot refer to a non-final variable csvwriter inside an inner class defined in a different method"
nja ich hätt einfach gern ein paar Verbesserungsvorschläge und Vermutungen was falsch sein könnte.
danke
mfg FanHi
Im Grunde geht es darum, aus einem Array mit 15 Elementen die aktuellen Werte jede Sekunde in eine Zeile in ein .csv file zu schreiben um aus den Werten später in Excel ein Diagramm zu machen.
1. wollte ich fragen, ob jemand vl. eine bessere Möglichkeit kennt
und 2. hab ich ein Problem mit
Code:
csvwriter.write("1;2;3;4;5;6;7;8;9;10;11;12;13;14;15\n");
es kommt die Fehlermeldung :
"Cannot refer to a non-final variable csvwriter inside an inner class defined in a different method"
nja ich hätt einfach gern ein paar Verbesserungsvorschläge und Vermutungen was falsch sein könnte.
Code:
import java.io.*;
import java.util.*;
import javax.*;
public class csvwrite{
public static void Csvwrite(int channel,int time, int value)throws IOException{
String filename;
//die datei soll im Namen das Datum und die Uhrzeit haben. z.B. 1-6-2007-18:05.csv
filename=(String.valueOf(Calendar.getInstance().get(Calendar.DATE))+"-"+String.valueOf(Calendar.getInstance().get(Calendar.MONTH))+"-"+String.valueOf(Calendar.getInstance().get(Calendar.YEAR)))+"-"+String.valueOf(Calendar.getInstance().get(Calendar.HOUR_OF_DAY))+":"+String.valueOf(Calendar.getInstance().get(Calendar.MINUTE));
boolean log=true; //damit ich das Ganze irgendwann mal wieder abbrechen kann
try{
BufferedWriter csvwriter= new BufferedWriter(new FileWriter(filename+".csv"));
csvwriter.write("time;ch 1;ch 3;ch 3;ch 4;ch 5;ch 6;ch 7;ch 8;ch 9;ch 10;ch 11;ch 12;ch 13;ch 14;ch 15\n"); //kopfzeile ist immer gleich
csvwriter.write(";;;;;;;;;;;;;;\n"); // Unter der Kopfzeile soll eine frei sein
while(log==true){
log=false; //vorerst, damit er nicht ewig schreibt, kommt später weg
int delay = 1000; // TimerTick jede sekunde
javax.swing.Timer logTimer= new javax.swing.Timer(delay, new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e) {
csvwriter.write("1;2;3;4;5;6;7;8;9;10;11;12;13;14;15\n"); //problemzeile
//-->ersetzt im moment die werte die später aus dem Array ausgelesen werden sollen
}
});
logTimer.start();
}
csvwriter.close();
}
catch (IOException e) {
Main.Log.addlog("Error beim erstellen der Datei: "+filename+".csv");
}
}
}
danke
mfg FanHi