Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Reinserimento nome del file da leggere

    Ciao a tutti, stavo cercando di gestire il reinserimento del nome del file da leggere qualora quello che inseriremmo dovesse essere errato.

    invece purtroppo, il programma continua a farmi andare avanti dicendomi che ha caricato 0 cd e chiedendomi autore, titolo del cd etc da cercare.

    Io vorrei invece che mi chiedesse di reinserire il nome del file e una volta trovato, procedere con le altre richieste.
    tutto qui

    dove sbaglio?

    codice:
    import java.util.Scanner;import java.util.ArrayList;
    import java.io.FileReader;
    import java.io.FileNotFoundException;
    import java.io.PrintWriter;
    
    
    public class gestoreCd {
    
    
    	public static void main(String[] args) throws FileNotFoundException {
    
    
    		ArrayList<cd>arrayCd=new ArrayList<cd>();
    		Scanner scan=new Scanner (System.in);
    		int contatoreCd=0;
    		int contatoreRicerca=0;
    		int i;
    		boolean riprovaInserimento=true;
    
    
    		System.out.println("**********GESTIONE CD**********");
    		System.out.println("Inserisci il nome del file da leggere");
    
    
    		try{
    			String inputFile=scan.next();
    			FileReader fr=new FileReader(inputFile);
    			Scanner input=new Scanner(fr);
    			input.useDelimiter("\\s*<cd>\\s*");
    
    
    			while((input.hasNext())&&(riprovaInserimento=true)){
    
    
    				String riga=input.next();
    				Scanner line=new Scanner(riga);
    				line.useDelimiter("\\s*;\\s*");
    				String autore=line.next();
    				String titolo=line.next();
    				String anno=line.next();
    				String casa=line.next();
    
    
    				cd cd=new cd(autore,titolo,anno,casa);
    				arrayCd.add(cd);
    				contatoreCd++;
    
    
    			}
    		}
    		catch(FileNotFoundException e){
    			riprovaInserimento=false;
    			System.out.println("FILE NON TROVATO, riprova");
    
    
    			//deve tornare al nome del file da cercare
    
    
    
    
    
    
    		}
    
    
    		System.out.println("caricati "+contatoreCd+ "CD");
    		System.out.println("Scrivi il nome dell'autore da cercare ");
    		String autoreRicerca=scan.next();
    		System.out.println("Scrivi il titolo dell'album da cercare ");
    		String titoloRicerca=scan.next();
    		System.out.println("Scrivi l'anno di pubblicazione da cercare ");
    		String annoRicerca=scan.next();
    		System.out.println("Scrivi il nome della casa discografica da cercare ");
    		String casaRicerca=scan.next();
    
    
    		PrintWriter out=new PrintWriter("output.txt");
    		System.out.println("---");
    
    
    		for(i=0;i<arrayCd.size();i++)
    		{
    			cd cd=arrayCd.get(i);
    			if(autoreRicerca.equalsIgnoreCase(cd.getAutore()))
    			{
    				cd.getAll();
    				System.out.println("---TROVATO---");
    				contatoreRicerca++;
    
    
    			}
    		}
    
    
    		if(contatoreRicerca==0)
    			System.out.println("---");
    		contatoreRicerca=0;
    
    
    		for (i=0;i<arrayCd.size();i++)
    		{
    			cd cd=arrayCd.get(i);
    			if(titoloRicerca.equalsIgnoreCase(cd.getTitolo()))
    			{
    				cd.getAll();
    				System.out.println("---");
    				contatoreRicerca++;
    			}
    		}
    		if(contatoreRicerca==0)
    			System.out.println("---");
    		contatoreRicerca=0;
    
    
    		for(i=0;i<arrayCd.size();i++)
    		{
    			cd cd=arrayCd.get(i);
    			if(annoRicerca.equals(cd.getAnno()))
    			{
    				cd.getAll();
    				System.out.println("---");
    				contatoreRicerca++;
    
    
    			}
    		}
    		if(contatoreRicerca==0)
    			System.out.println("---");
    		contatoreRicerca=0;
    
    
    		for(i=0;i<arrayCd.size();i++)
    		{
    			cd cd=arrayCd.get(i);
    			if(casaRicerca.equalsIgnoreCase(cd.getCasa()))
    			{
    
    
    				cd.getAll();
    				System.out.println("---");
    				contatoreRicerca++;
    			}
    		}
    		if(contatoreRicerca==0)
    			System.out.println("---");
    		contatoreRicerca=0;
    
    
    		out.close();
    
    
    	}
    
    
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    codice:
    String inputFile = null;
    File testFile = null;
    while((testFile == null) || !testFile.exists()) {
       System.out.println("Inserisci il nome del file:");
       inputFile=scan.next();
       testFile = new File( inputFile );
    }

    Questo piccolo pezzetto di codice continua a chiedere il nome del file finchè non si inserisce un nome di file esistente nel file system.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Ciao Lele, scusami ma non ho capito cosa devo togliere, o meglio, dove devo inserire il codice che mi hai scritto.
    Mettendolo dopo il try mi si incasina tutto!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Le prime due righe vanne messe prima del try. Le altre subito dopo.

    PS: controlla anche la guardia del tuo while: (riprovaInserimento=true) questa è un'assegnazione, non un confronto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.