Originariamente inviata da
andbin
Innanzitutto: fai una classe che "modella" una riga di informazione del file, fai una classe a parte che si occupa solo della lettura/parsing del file.
io attualmente ho questa situazione:
codice:
public class Estrattore {
public static void main(String [] args) throws FileNotFoundException, IOException {
BufferedReader br = new BufferedReader(new FileReader("C://0102.TXT"));
String linea=br.readLine();
int k=0;
int i=0;
int cont=1;
System.out.println("Inserisci Da");
System.out.println("Inserisci A");
String [][] header= new String[241][6];
Scanner input = new Scanner(System.in);
String da = input.nextLine();
String a = input.nextLine();
input.close();
while(linea!=null)
{
String[] campiDellaStringa = linea.split(";");
linea=br.readLine();
if(cont>14 && cont!=16 && cont!=17)
{
for(int j=0;j<campiDellaStringa.length;j++)
{
header[i][k]=campiDellaStringa[j];
//System.out.print(header[i][k]+ " ");
k++;
}
System.out.println("");
i++;
k=0;
}
cont++;
}//while
float media= MediaAdIntervallo(header, da, a);
System.out.println(media);
}
//funzione calcolare media ad intervalli
public static float MediaAdIntervallo(String matrice[][], String partenza, String arrivo)
{
int cont=0;
float valore=0;
int inizio= CalcolaInizio(matrice, partenza);
int fine=CalcolaFine(matrice, arrivo);
for(int i=inizio;i<=fine;i++)
{
String mystring=matrice[i][3];
float temp=Float.parseFloat(mystring);
valore+=temp;
cont++;
}
return valore/cont;
}
//mi prendo gli indici
public static int CalcolaInizio(String matrice[][], String Intervallo1)
{
for(int i=0;i<matrice.length;i++)
{
if(matrice[i][1].equals(Intervallo1))
return i;
}
return -1;
}
public static int CalcolaFine(String matrice[][], String Intervallo2)
{
for(int i=0;i<matrice.length;i++)
{
if(matrice[i][1].equals(Intervallo2))
return i;
}
return -1;
}
public static String EstraiTime(String matrice[][])
{
for(int i=1;i<matrice.length;i++)
{
return matrice[i][1];
}
return "";
}
}
e poi un altro file con
codice:
public class Application extends Estrattore
{
public static void Dati(String args[])
{
JFrame win;
win = new JFrame("Esempio di JComboBox");
String lista[]=new String[10];
for(int i=0;i<lista.length;i++)
lista[i]=EstraiTime(matrice);
JComboBox cBox=new JComboBox(lista);
Container c = win.getContentPane();
c.add(cBox);
win.setSize(200,200);
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setVisible(true);
}
}
la prima parte funziona la seconda no perché appunto è in fase di progettazione