Ciao a tutti,
io questi linguaggi ad oggetto non riesco a inquadrarli.
Passiamo al codice:
codice:
import java.io.*;
public class xmlGenerator{
// variabili
public String jobPrecedente="";
public int copie=0;
public int errori=0;
public String StartTime = "";
public String EndTime = "";
public xmlGenerator (String job,int cop,int errori, String start, String fine){
....
}
public xmlGenerator (){
jobPrecedente="";
copie=0;
errori=0;
StartTime ="";
EndTime ="";
}
// metodi SET
public void setCopie (){ copie++; }
public void setErrori (){........}
public void setJobPrecedente (String job){ jobPrecedente = job; }
public void setStartTime(String start){StartTime = start;}
public void setEndTime (String fine){EndTime = fine;}
public void resetCopieErrori(){ copie = 0; errori = 0; }
// Metodi GET
public String getJobPrecedente(){return jobPrecedente; }
public String getStartTime(){return StartTime;}
public String getEndTime(){return EndTime;}
public int getCopie(){return copie;}
public int getErrori(){ return errori;}
public static void main (String args[]) {
xmlGenerator q = new xmlGenerator();
try{
...
// FILE XML SU CUI ANDREMO A SCRIVERE SOLO LE INFO NECESSARIE:
File f3=new File("Statistics\\output.xml");
FileOutputStream fos3=new FileOutputStream(f3);
PrintStream ps3=new PrintStream(fos3);
// FILE TXT DA CUI LEGGIAMO LE INFORMAZIONI:
File f1=new File("Statistics\\input.txt");
FileInputStream fis=new FileInputStream(f1);
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader (isr);
String linea=br.readLine();
linea=br.readLine();
String [] intestazione = new String [26];
initMatrice(intestazione);
....
scriviHeader(ps3);
// Iterazione x leggere intero file
while (linea != null) {
....
// Iterazione x leggere intera riga
for(int i=0;i<linea.length();i++){
....
} // chiude ciclo FOR
scriviXmlJobUnici(q,intestazione,ps3);
//error: non-static method scriviXmlJobUnici(xmlGenerator,String[],PrintStream) cannot be referenced from a static context
....
} // chiude ciclo WHILE
....
scriviFooter(ps3);
ps3.close();
ps.close();
....
}catch (IOException e){
System.out.println("Errore: " +e);
System.exit(1);
}
}
......
// Metodo x scrivere il file xml con i dati
static void scriviChildXmlDati (PrintStream ps, int conta, String intestazione){.......... }
// Metodo per scrivere un file xml con i Job unici, le copie di ognuno e gli errori di stampa
public void scriviXmlJobUnici(xmlGenerator qq, String [] intestazione, PrintStream ps3) {
if (getJobPrecedente() == ""){ // con jobPrecendente = "" siamo alla prima iterazione delle prima riga
qq.setJobPrecedente(intestazione[0].substring(0,(intestazione[0].length()-11)));
qq.setStartTime(intestazione[19]);
qq.setEndTime(intestazione[20]);
// PrintDone = 0
if (intestazione[5]=="0"){ qq.setErrori();}
else { qq.setCopie();}
scriviFileJobUnici(ps3,qq);
}
else{
if (qq.getJobPrecedente() == intestazione[0].substring(0,(intestazione[0].length()-11))){
qq.setEndTime(intestazione[20]);
if (intestazione[5]=="0") qq.setErrori();
else qq.setCopie();
}
else{
scriviFileJobUnici(ps3,qq);
qq.resetCopieErrori();
qq.setJobPrecedente(intestazione[0].substring(0,(intestazione[0].length()-11)));
qq.setStartTime(intestazione[19]);
qq.setEndTime(intestazione[20]);
// PrintDone = 0
if (intestazione[5]=="0"){ qq.setErrori();}
else { qq.setCopie();}
}
}
}
void scriviFileJobUnici(PrintStream ps3,xmlGenerator qqq){
ps3.println ("\t\t<job id=\"0\">" + qqq.getJobPrecedente() + "</job>");
ps3.println ("\t\t<copie id=\"1\">" + qqq.getCopie() + "</copie>");
ps3.println ("\t\t<errori id=\"2\">" + qqq.getErrori() + "</errori>");
ps3.println ("\t\t<inizio id=\"3\">" + qqq.getStartTime() + "</inizio>");
ps3.println ("\t\t<fine id=\"4\">" + qqq.getEndTime() + "</fine>");
}
}
Ho evidenziato in verde l'errore e in rosso il punto nel file che da problemi e la posizione a cui fa riferimento.
Beh il bello è che non riesco a capire come potrei accedere a quelle variabili subito all'inizio della classe. Ho dovuto ridurre il codice sostituendolo con ......
Grazie