Ricerca dati nel file txt

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
ciao ragazzi!
ho il seguente problema da risolvere: ricevuto in input il file con i dati (provincia e numero di pezzi in quella provincia, tipo Bologna 20) dovrei determinare il totale di pezzi in quella provincia oppure segnalare la mancanza di pezzi in quella provincia.
input dati: Bologna 20, Bologna 10, Milano 20. (tutto nel file "pezzi.txt")
output dell'operazione: se cerco Bologna, mi da 30; se cerco Roma niente.
ecco, io non so come fare la ricerca dei dati all'interno di un file?
qualcuno potrebbe aiutarmi in questa impresa)
grazie!!!

Codice:
public class Autotrasportatori{
      public static void main(String[] args) {
      	  String 
         	nomeFile,
         	nomeProvincia,
         	nomeProvinciaDaCercare;
         int
         	i,
         	quantita,
         	numeroProvince,
         	posizioneProvincia,
           	opzione;
        double
        Lettore
			fileProvinciaLeggi;
		Scrittore
			fileProvinciaScrivi;
		 if(args.length==0)
		 	nomeFile="c:/autotrasportatori.txt";
		 else
		 	nomeFile=args[0];
	    do{
   		    Scrittore.video.println("---------------------");
         	Scrittore.video.println("1* Inserimento dati");
         	Scrittore.video.println("2* Visualizzazione lettura dati");
         	Scrittore.video.println("3* Ricerca provincia con il relativo totale delle barre");
          	Scrittore.video.println("4* Media dei movimenti");
          	Scrittore.video.println("0* Uscita");
           	Scrittore.video.println("---------------------");
         	opzione=Lettore.tastiera.leggiInt();
        	switch(opzione){
          		case 1:     fileProvinciaScrivi=new Scrittore(nomeFile);
          					do{
          						Scrittore.video.println("Nome provincia, premi u per uscire");
          						nomeProvincia=Lettore.tastiera.leggiString();
          						if (!nomeProvincia.equals("u")){
          							Scrittore.video.println("Quantita");
          							quantita=Lettore.tastiera.leggiInt();
         							fileProvinciaScrivi.print(nomeProvincia);
         							fileProvinciaScrivi.print(" ");
         							fileProvinciaScrivi.println(quantita);
         						}
          					}while(!nomeProvincia.equals("u"));
          					fileProvinciaScrivi.chiudi();
          					break;
      			case 2:
       						fileProvinciaLeggi=new Lettore(nomeFile);
       						numeroProvince=fileProvinciaLeggi.contaRighe();
       						for(i=0;i<numeroProvince;i++){
         						nomeProvincia=fileProvinciaLeggi.leggiString();
         						Scrittore.video.print(nomeProvincia+" ");
         						quantita=fileProvinciaLeggi.leggiInt();
         						Scrittore.video.println(quantita);
       						}
       						fileProvinciaLeggi.chiudi();
          					break;								
       		}   	
       		
        }while(opzione!=0);
 	}
 }
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Ciao Motocross, esistono diversi modi per leggere dati da un file. Ti espongo qui brevemente un semplice metodo per il tuo caso:
Mettiamo il caso che tu hai un file txt in c:\\pezzi.txt, ok??
E i dati sono distribuiti nel file in questo modo:
Bologna, 20 (Invio)
Milano, 10 (Invio)
Torino, 23 (Invio)
Puoi utilizzare questo metodo:
Codice:
public int getPezzi(String citta) throws IOException {
        BufferedReader read = new BufferedReader(new FileReader("c://pezzi.txt"));
        String line = read.readLine();
        while(line!=null) {
            StringTokenizer strTok = new StringTokenizer(line, ",");
            if(strTok.countTokens()!=2) return -2;
            String str = (String) strTok.nextElement();
            if(str.equalsIgnoreCase(citta)) {
                int n_pezzi = Integer.parseInt((String)strTok.nextToken());
                return n_pezzi;
            }
            line = read.readLine();
        }
        return -1;
    }
Se la citta non esiste ritorna -1, se i dati non corrispondono al formato
che ti ho specificato sopra ritorna -2, cioè come dire sturttura del file
non valido, altrimenti ritorna il numero di pezzi di quella citta :
Codice:
int x = getPezzi("Milano");
System.out.println(c)
int n = getPezzi("Napoli");
System.out.println(n);
L' output sara prima 20 e poi -1 in quanto Napoli non c'è.
Lo so, non è facile come argomento ma cerca di adattarlo al tuo caso.

Ciao
 

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
opps...
mi sono appena accorto che con il mio codice che ho postato, nella compilazione mi da due errori: expected ';' e not statement..
potreste magari voi provare a compilare e dirmi dove sta sto errore, perchè a me segnala la riga 16 e 17 relative a queste due istruzioni: Lettore
fileProvinciaLeggi;
 

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
Alessandro, ho provato a fare cosi, ma mi da di nuovo expected e not statement...
Codice:
                          double
                          class Lettore {
			double fileAutotrasportatoriLeggi;}
		class Scrittore {
			double fileAutotrasportatoriScrivi;};
		 if(args.length==0)
		 	nomeFile="c:/autotrasportatori.txt";
		 else
		 	nomeFile=args[0];
 

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
lespaul, scusa...ma il codice public int getpezzi lo devo incorporare in un nuovo file class oppure mettere all'interno del mio (e dove).
e il secondo pezzettino?=)
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Il metodo lo puoi inerire all'intreno della tua classe, in punto qualsiasi della classe ovviamente fuori dal corpo di un altro metodo :D. Il secondo pezzettino era giusto un esempio per farti capire come funziona, cmq lo puoi insrire nel main. Mi raccomando creati un file pezzi.txt con il testo che ti ho indicato
 

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
ho provato e ho ottenuto questo:
nel public int getPezzi...can not find symbol class StringTokenizer
e dopo per l'altro pezzettino int x = getPezzi("Milano"); dice:
non-static method getPezzo(java.lang.String) cannot be referenced from a static context
cosa si risolvono errori del genere?)
(adesso cmq provo a cercare su internet)
 

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
allora, importando
import java.util.StringTokenizer;
import java.lang.String;
il primo mi ha risolto il problema relativo al metodo.
ma in generale non sono ancora riuscito a risolvere il problema del totale per la citta((
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
inserisci la keyword static direttamente al metodo in quetso modo:
Codice:
public static void getPezzi...
invece di
Codice:
public void getPezzi...
e vedi che si risolve il problema
 

motocross'88

Nuovo Utente
26 Ott 2009
17
0
0
ciao. guarda, io adesso sono a questo punto: per mi da il totale di tutte le province e non di quella che mi interessa..come faccio a modificare?
Codice:
case 3:
quantita=0;
fileAutotrasportatoriLeggi=new Lettore(nomeFile);
 numeroProvince=fileAutotrasportatoriLeggi.contaRighe();
 for(i=0;i<numeroProvince;i++){
 nomeProvincia=fileAutotrasportatoriLeggi.leggiString();
 Scrittore.video.print(nomeProvincia+" ");
 quantita=quantita+fileAutotrasportatoriLeggi.leggiInt();
}
Scrittore.video.println(quantita);
break;
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Scusami, scritto cosi purtroppo è difficile darti una riposta che possa risolvere per intero il tuo problema, ti dico sinceramente che non ho capito un granchè in questo codice, con quantita cosa devi fare?? Deve indicare il numero di pezzi di una provincia che inserisci da tastiera??
Allora in questo caso, se utilizzi il metodo che ti ho postato, basta fare in questo modo:
Codice:
quantita = getPezzi(nomeProvincia);
if (quantita==-1) {//allora non ci sono pezzi in questa provincia}
else {//stampa quantita}
Piu di questo non so che dirti, perchè ripeto non si tratta di qualcosa in particolare, ma di tutto il problema in se che penso non ti sia chiaro o meglio non riesci a implementarlo bene in java :confused:
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Problema nel $_POST di dati per ricerca su DB PHP 12
E ricerca dati nel DB mysql. PHP 16
P [PHP] ricerca dati PHP 1
R [PHP] Prendere dati da moduli di ricerca esterni PHP 4
P Problema non mi esegue la ricerca dati PHP 23
P Ricerca dati PHP 38
abulafia [postgres+php]interfaccia grafica per inserimento e ricerca dati PHP 0
F access ricerca record con apostrofo. MS Access 0
C Ricerca Prodotti Woocommerce Javascript 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
G Menù a tendina di ricerca con query PHP 1
R Problema query con ricerca id numerico PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
F Visualizzazione motore di ricerca SEO e Posizionamento 2
B Stringa sql per ricerca su più campi Database 1
F Funzione Glob - ricerca file contenente una parola PHP 1
P Ricerca campo data PHP 1
L titolo del sito nella pagina di ricerca di google SEO e Posizionamento 2
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
L Ricerca valore mysql e incremento PHP 73
E Problema motore di ricerca FULL_TEXT PHP 0
motleyrulez Ricerca filtro con Ajax PHP 1
Shyson [CSS] Posizionare casella di ricerca HTML e CSS 3
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
B Campo ricerca domini HTML e CSS 4
V Ricerca volontari questionario tesi - Ricambio Offerte e Richieste di Lavoro e/o Collaborazione 0
L Ricerca sviluppatori PHP tempo indeterminato Milano Offerte e Richieste di Lavoro e/o Collaborazione 0
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
L [PHP] Ricerca su search bar esterna PHP 1
D Ente di Formazione accreditato in Regione Lazio ricerca Front End Developer Offerte e Richieste di Lavoro e/o Collaborazione 3
N [WordPress] Ricerca tema WordPress 6
Alex_70 [PHP] Ricerca con risultati cliccabili PHP 21
Federico.Marcelo Alla ricerca di scrittori post guest Offerte e Richieste di Lavoro e/o Collaborazione 0
ANDREA20 [PHP] motore di ricerca nel sito PHP 11
O [PHP] Ricerca record tramite post PHP 7
GraceHawk [MS Access] Findfirst per ricerca record MS Access 1
T [PHP] Ricerca nel database PHP 2
A [Javascript] Mostrare un marker se è vicino al risultato di ricerca con google maps Javascript 3
V Semplice barra di ricerca con filtro categorie prodotti E-Commerce 0
A Ricerca con collegamento in altro sito web Discussioni Varie 0
C [PHP] Ricerca multipla, evitare if PHP 4
F [WordPress] Plugin Ricerca per e-commerce Woocommerce WordPress 1
M [OFFRO][RETRIBUITO] Milano IT Consulting SRL - Ricerca 1 Consulente PHP Offerte e Richieste di Lavoro e/o Collaborazione 0
D [ASP] Motore di ricerca interno su 2 tabelle Classic ASP 3
A [MySQL] Ricerca in PMA MySQL 0
andreas88 Da .htm a .php, perdo le mie posizioni su Google ricerca? SEO e Posizionamento 9
P Google risultati di ricerca inappropriati SEO e Posizionamento 1

Discussioni simili