Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253

    Lettura parziale contenuto file di testo

    Ciao a tutti,

    volevo sapere se c'è un modo per dire a Java cosa leggere all'interno di un file di testo una volta che ho iniziato a scorrerlo.

    Mi spiego: ho un file di testo fatto in questo modo

    [livello 1]

    dati livello 1
    dati livello 1
    dati livello 1

    [livello 2]
    dati livello 2
    dati livello 2


    C'è un modo per farmi pescare solo cioè che è contenuto per ciascun livello e non tutto il contenuto dei file?

  2. #2

    Spero di aver capito.

    Come da titolo.
    tu puoi scorrere il file il lettura ed eventualmente analizzare il file per ogni suo singolo carattere, oppure per stringhe ( tramite StringTokenizer ).
    In questo modo puoi iniziare la lettura tra un stringa di inizio campo come [TESTO0] e la fine [/TESTO0], ma questo risulterebbe molto elaborioso....

    Un'altra soluzione è l'utilizzo dei file propertiest, i quali sono strutturati nel seguente modo
    codice:
    TEST0=titolo
    TEST0.uno=prima riga
    TEST1...
    ...
    In questo modo tramite la classe Properties di Java puoi richiede la lettura del campo TEST0 oppure di TEST0.uno ecc... ottenendo come risultato tutto quello c'è dopo '='.
    Anche in questo modo però devi conoscere a priori il valore leftValue, ovvero quello che sta a sinistra dell'uguale per ottenere il rightValue.

    Altro non mi viene in mente

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    No, non esiste una classe preconfezionata, ma è possibile scrivere un algoritmo che lo faccia.
    Questo genere di file (i cosiddetti file INI o a contesti) sono molto semplici da gestire.
    E' richiesta una variabile per mantenere in memoria lo stato (o contesto) al quale siamo giunti.

    Esempio:
    codice:
    String stato = "";   // Memorizza il contesto attuale
    BufferedReader br = new BufferedReader( new FileReader(tuoFile) );
    HashMap valori = new HashMap();   // Sarà una mappa chiave->valore
    String linea = "";
    while((linea = br.readLine()) != null) {
       if (linea.length() > 0) {
          if ( linea.startsWith("[") ) {   // Ho trovato un contesto
             stato = linea.substring(1, linea.length()-2);
             valori.put(stato, "");   // Memorizzo per ora un valore vuoto
          } else {
             String val = (String) valori.get(stato);
             if(val != null) {
                val += linea + "\n";   // Vedi tu se aggiungere o meno il carrige return
                valori.put(stato, val);
             }
          }
       } else { stato = ""; }
    }
    br.close();
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    253
    in poche parole devo essere in grado a partire da questi contenuti presenti nel file INI di generare un CSS per 1 web application in linguaggio java/jsp quindi la risposta a giandiego.amira è: sì conosco a priori il valore a sinistra perchè per ogni riga ci sarà un attributo specifico da prendere e mettere nel punto giusto del CSS.

    Faccio una prova seguendo i vostri suggerimenti e vi dico il responso!

    Grazie

  5. #5
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Allora nuovamente consiglio l'utilizzo dei file Properties se conosci a priori il leftValue.
    Potresti anche impostarli per ogni singolo utente del tipo
    Codice PHP:
    css.utente1.body.image=c:\image\utente1\prova.png 
    Ovviamente sono partito per la tangente delle mille implementazioni.....

    Però devi valutare bene quale sia la soluzione migliore e di non escludere nessun'altra soluzione, in quanto è da analizzare la sua complessità di esecuzione...in questo modo si ottengono ottimi risultati!!!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

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.