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

    Classe controllo struttura file

    Ciao a tutti...

    Ho un grave problema...

    ho un file di test con una certa struttura... Alcuni dati sono evidenziati da un'etichetta (es. NOME: Pippo) altri separati da un ";" mentre altri da spazi

    Mi è stata richiesta una classe che controlla se la struttura del file contiene tutti i dati necessari e nell'ordine richiesto altrimenti solleva un'eccezione opportuna....

    Sono bloccato e questo è molto molto grave .... ....

    Qualcuno ha qualche idea o codice di esempio ???

    grazie mille .... ciaooooooooooooooooooooooooo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    10
    Ciao makrider se riesci a spiegarti un pò meglio magari scrivendo un esempio di struttura del file,ti posso dare un aiutino.
    ciao a presto
    Non può piovere per sempre...

  3. #3
    Si dafcon ha proprio ragione, allega il file di testo in questione e spacifica
    come vuoi che la struttura del file deve essere, di seguito si puo' fare tutto!!
    Ciao
    Nulla, ma e' sempre qualcosa.

  4. #4
    scusate ma dovevo pensarci da subito...

    il file dovrebbe essere strutturato in questo modo:

    pippo.txt
    <Descrizione>
    NOME:<Nome>
    COGNOME:<Cognome>
    CITTA: <Città>
    NAZIONE: <Nazione>
    VEICOLO: <Veicolo>
    <Descrizione Veicolo>
    <Numero Telaio>; <Dimensione Larghezza>; <Dimensione Lunghezza>
    MOTORE: <Motore>
    <Descrizione Motore>
    <Cilindrata>; <Potenza>; <Coppia>
    .....

    es:
    MarioRossi.txt
    File anagrafico Mario Rossi
    NOME: Mario
    COGNOME: Rossi
    CITTA: Milano
    NAZIONE: Italia
    VEICOLO: CRG Cat.1
    Veicolo di Categoria 1
    123456 n; 1680 cm; 3500 cm
    MOTORE: Fiat 1600
    Propulsore derivazione fiat aspirato
    1600 cc; 135 cv; 101 nM
    ....

    Il file può contenere più righe del gruppo VEICOLO e MOTORE
    Ad ogni gruppo VEICOLO deve corrispondere un successivo gruppo MOTORE

    La classe deve verificare che il file contenga tutti i dati richiesti e inoltre deve verificare che la sequenza VEICOLO -> MOTORE sia eseguita.

    es. che non vi sia un gruppo VEICOLO senza un successivo gruppo MOTORE.

    non posso utilzzare file tmp e il file mi viene fornito con gli spazi e le punteggiature che ho riportato... (non posso cambiarle... purtroppo)

    grazie per l'aiuto.

    Ciao Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    10
    caro makrider
    ho cercato di abbozzare qualcosa, vedi se come struttura di base va bene altrimenti fammi sapere che faccio di meglio. Ci sone delle cose che non mi sono molto chiare come ad esempio se in un file ci sono diversi "clienti" come nel seguente caso:

    MarioRossi.txt //Primo cliente
    File anagrafico Mario Rossi
    NOME: Mario
    COGNOME: Rossi
    CITTA: Milano
    NAZIONE: Italia
    VEICOLO: CRG Cat.1
    Veicolo di Categoria 1
    123456 n; 1680 cm; 3500 cm
    Fiat 1600
    Propulsore derivazione fiat aspirato
    1600 cc; 135 cv; 101 nM
    -------------------
    File anagrafico MARIO BIANCHI //Secondo cliente
    NOME: Mario
    COGNOME: BIANCHI
    CITTA: Milano
    NAZIONE: Italia
    VEICOLO: CRG Cat.1
    Veicolo di Categoria 1
    123456 n; 1680 cm; 3500 cm
    Fiat 1600
    Propulsore derivazione fiat aspirato
    1600 cc; 135 cv; 101 nM

    oppure se ogni file ha un solo "cliente". Se contiente un solo cliente il check va bene e lavora tranquillamente, ma se il file contiene schede di più persone ci sono delle informazioni che dovresti darmi.Ti Creo un altro posta per il sorgente
    Non può piovere per sempre...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    10

    Buon Divertimento

    import java.util.*;
    import java.io.*;
    /**
    * La classe verifica la presenza dei campi all'interno del file pippo.txt, varificata tale presenza
    * dispone di metodi accessori per ritornare lo stato dei campi.
    * @author dafcon
    *
    */
    public class Dafcon {
    public Dafcon()throws Exception{
    brFile=new BufferedReader(new InputStreamReader(new FileInputStream(new File("pippo.txt"))));
    }
    public void check()throws Exception{
    StringTokenizer tokenizer;
    String read;


    while((fileRead=brFile.readLine())!=null){

    tokenizer=new StringTokenizer(fileRead,":");

    read=tokenizer.nextToken();


    if(read.equalsIgnoreCase("nome"))
    nome=true;
    if(read.equalsIgnoreCase("cognome"))
    cognome=true;
    if(read.equalsIgnoreCase("citta"))
    citta=true;
    if(read.equalsIgnoreCase("nazione"))
    nazione=true;
    if(read.equalsIgnoreCase("veicolo"))
    veicolo=true;
    if(read.equalsIgnoreCase("motore"))
    motore=true;

    }

    }
    //Metodi accessori per il ritorno dei check
    public boolean checkNome(){
    return nome;
    }
    public boolean checkCognome(){
    return cognome;
    }
    public boolean checkCitta(){
    return citta;
    }
    public boolean checkNazione(){
    return nazione;
    }
    public boolean checkVeicolo(){
    return veicolo;
    }
    public boolean checkMotore(){
    return motore;
    }
    //Testo la classe
    public static void main(String[] arg)throws Exception{
    Dafcon daf=new Dafcon();

    daf.check();
    System.out.println("Nome: "+daf.checkNome());
    System.out.println("Cognome: "+daf.checkCognome());
    System.out.println("Città: "+daf.checkCitta());
    System.out.println("Nazione: "+daf.checkNazione());
    System.out.println("Veicolo: "+daf.checkVeicolo());
    System.out.println("Motore: "+daf.checkMotore());
    }

    private String fileRead;
    private BufferedReader brFile;
    private boolean nome,cognome,citta,nazione,veicolo,motore;
    }
    Non può piovere per sempre...

  7. #7
    la classe è ok...

    Per ogni file solo un individuo...

    Il problema che la classe che gentilmente mi hai fornito non verifica che ad esempio all'interno di MOTORE: xxxx
    siano presenti anche tutti gli altri dati successivi e che se siano nel formato giusto. es. float per i numeri e string per i testi. che le unità di misura sono corrette ecc. ecc.


    questo è il vero problema perchè i separatori sono diversi e ci sono spazi, unità di misura ecc.

    grazie ancora..

    ciao ciao

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.