Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    36

    Leggere un file di testo formattato

    Ciao a tutti,
    ho dei problemi con la lettura di un file di testo formattato. Il file txt è il seguente:
    codice:
    .......
    .......
    ......
    APERTURE
    APERT_1	Porta	 Porta del porto 	LOC_1	LOC_2
    APERT_2	Finestra	Passaggio	LOC_3	LOC_4
    APERT_6	Porta	Porta della House of Mojo	LOC_1	LOC_5
    APERT_3	Botola	Un passaggio segreto multidimensionale	LOC_5	LOC_6	# chiusa per default, aperta da un bottone o una leva, Dalla House of Mojo al palazzo del governatore 
    PERSONAGGI
    ........
    Da questo file dovrei ricavarne in seguenza un ipotetico ID (APERT_1, APERT_2, ecc), il nome di una classe (Porta, Finestra, ecc), la descrizione (Porta del porto, passaggio, ecc), e altri due ID (LOC_1 LOC_2, LOC_3 LOC_4, ecc).
    Fin quando si tratta di leggere il primo ID e il nome della classe va tutto bene, quando poi arrivo a leggere la descrizione non riesco a prenderla tutta. Mi spiego, questo è il codice che ho fatto:
    codice:
    do{
    			if(ID.compareTo("PERSONAGGI")!=0){
    				ID=in.next();
    				nameClass=in.next();
    				name=in.next();
    				location=in.next();
    				destination=in.nextLine();
    
    				
    				if(destination.contains("#")){
    					char[] newDestination=new char[destination.length()];
    					
    					int i=0;
    					
    					while(i<destination.length() && destination.charAt(i)!='#') {
    						
    						if(destination.charAt(i)!='\t')
    							newDestination[i]=destination.charAt(i);
    						
    						i++;
    						
    					}
    					
    					destination=new String(newDestination);
    					
    				}
    				
    				System.out.println(ID + nameClass + name + location + destination);
    			}
    		}while(ID.compareTo("PERSONAGGI")!=0);
    Vorrei che la variabile name, dopo aver fatto il name=in.next() mi contenesse la descrizione completa (es. Porta del porto) ma invece contiene solo la prima parola (Porta), attribuendo quindi alla variabile 'location' il valore 'del'. Esiste un metodo della classe Scanner con cui posso risolvere?
    Grazie

  2. #2
    Scrivi ad esempio nel file Porta_del_porto e poi dopo invochi il metodo split("_") così separa le tre parole.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    36
    Non posso farlo perchè purtroppo la formatatzione del testo è quella e non posso cambiarla. Lo scopo sarebbe quello di caricare un'ipotetica partita di un videogioco da un file di testo

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.