|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2005
Città: Genova
Messaggi: 75
|
(Java) problema caricamento file con \t
Come vi avevo anticipato nell'altro post eccomi di nuova qua'.
Questo codice da me sviluppato a livello didattico sul sort di un array e sulla ricerca binaria e' andato a buon fine caricando l'array direttamente da codice. Se io volessi caricare da file composto da 2 campi (uno stringa ed un intero) separati da tabulazione (\t) e 82 records (dati4.txt) come posso fare? Chiaramente devo sempre poter gestire sort e ricerca. Io ho provato (codice commentato) ma sono riuscito a fare apparire il primo record dopodiche' dava errore; Allego il codice: Codice: import java.util.*; import java.io.*; import javax.swing.JOptionPane; class MyFile { public int dim; public String nome; public MyFile (int dim, String nome) { this.dim = dim; this.nome = nome; } } class KeyDim implements Comparator { public int compare (Object MyFile1, Object MyFile2) { int dim1 = ((MyFile) MyFile1).dim; int dim2 = ((MyFile) MyFile2).dim; return (dim1 < dim2 ? -1 : (dim1 == dim2 ? 0 : 1)); } } class KeyNome implements Comparator { public int compare (Object MyFile1, Object MyFile2) { String nome1 = ((MyFile) MyFile1).nome; String nome2 = ((MyFile) MyFile2).nome; return nome1.compareTo (nome2); } public static void main(String[] args) throws IOException{ KeyDim keydim = new KeyDim(); KeyNome keyNome = new KeyNome(); //Carico file da dati4.txt // String nomeFile=JOptionPane.showInputDialog("Digita il nome del file da leggere"); // // BufferedReader fileLettura; // try // { // fileLettura = new BufferedReader(new FileReader(nomeFile)); // while(true) // { // String linea = fileLettura.readLine(); // if(linea==null) // break; // System.out.println(linea); // } // } // catch (FileNotFoundException e) // { // System.out.println("Il file "+nomeFile + " non esiste o non puo' essere aperto"); // } // catch (IOException e) // { // System.out.println("errore di lettura "+e); // } // // System.exit(0); //Carico file manualmente MyFile[] a = new MyFile[8]; a[0] = new MyFile (12120, "Acrobat.exe"); a[1] = new MyFile (13152, "Quovadis.txt"); a[2] = new MyFile (13200, "execute.bat"); a[3] = new MyFile (13300, "revers.exe"); a[4] = new MyFile (13400, "equi.bat"); a[5] = new MyFile (13500, "ripple.exe"); a[6] = new MyFile (13600, "gong.mid"); a[7] = new MyFile (12119, "guida.doc"); System.out.println ("Array non ordinato: "); for (int k = 0; k < a.length; k++) System.out.println (a[k].dim + " " + a[k].nome); System.out.println ("Array ordinato rispetto alla Dimensione: "); Arrays.sort (a, keydim); for (int k = 0; k < a.length; k++) System.out.println (a[k].dim + " " + a[k].nome); System.out.println ("Array ordinato rispetto al nome: "); Arrays.sort (a, keyNome); for (int k = 0; k < a.length; k++) System.out.println (a[k].dim + " " + a[k].nome); //Implemento la ricerca binaria per nome System.out.println (""); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Cerca file con nome: "); String nomeCercato = in.readLine(); MyFile fileCercato = new MyFile(-1, nomeCercato); int pos = Arrays.binarySearch (a, fileCercato, keyNome); if (pos >= 0) System.out.println ("File trovato (dopo averlo ordinato secondo nome) in posizione: " + pos); else System.out.println ("Nome file inesistente"); } } |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2001
Città: 100 metri dal mare
Messaggi: 4855
|
Prova questo
Quote:
|
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 2005
Città: Genova
Messaggi: 75
|
Grazie,
![]() Che velocita'. appena posso lo compilo. S questa macchina non posso. ![]() Ha installato s.o.W98SE e CPU Duron 1300MHz e non mi permette di installare JDK1.4 e 1.5; mi dice che non ho abbastanza privilegi. Sapete dirmi qualcosa????? ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2001
Città: 100 metri dal mare
Messaggi: 4855
|
Beh il grosso del lavoro lo hai fatto te', ho dovuto aggiungere si e no 4 righe di codice..
Quello del W98 dovrebbe essere un problema di autorizzazione, dovresi chiedere quindi all'amministratore ( sempre che ne esista uno ) di darti appunto l'aturizzazione con il tuo utente di installare programmi. Ciao ! |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2001
Città: 100 metri dal mare
Messaggi: 4855
|
Visto che non puoi provarlo ti posto pure l'output
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:24.