Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    14

    creare una tabella su terminale dopo la lettura file csv

    ciao a tutti ho un piccolo problema nel visualizzare una tabella sul terminale dopo aver letto un file csv, in internet ho cercato una soluzione e ho trovato questo http://bethecoder.com/applications/p...iiTable.action
    l'unico problema sarebbe salvare le righe lette in una matrice di 7 colonne e righe "infinite"

    per adesso ho ottenuto questo risulato

    Schermata da 2014-07-31 22:06:22.jpg


    con questo codice


    codice:
     scanner.useDelimiter(";");
                                    System.out.println("+----------------------------------------------------------------------------------------------+ ");
                                    System.out.println("|  Posizione   |   Data         Ora    |  Cat  |  Fam  |   Mod   |   Seriale   | codice difetto|");
                                    System.out.print("+----------------------------------------------------------------------------------------------+ ");
                                    while (scanner.hasNext())
                                    {
                                        
                                        System.out.print(scanner.next() + " ");
                                        System.out.print("| ");
                                        
                                        
                                     }
    il problema è la lunghezza delle stringhe che mi sballano il tutto....

  2. #2
    Ti potrebbe interesasre questo

    codice:
    System.out.format("%32s%10d%16s", string1, int1, string2);
    Viene utilizzato per formattare il testo stampato nel terminale

    http://docs.oracle.com/javase/6/docs...Formatter.html


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    14
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    Ti potrebbe interesasre questo

    codice:
    System.out.format("%32s%10d%16s", string1, int1, string2);
    Viene utilizzato per formattare il testo stampato nel terminale

    http://docs.oracle.com/javase/6/docs...Formatter.html

    avevo già notato la classe formatter, vorrei proprio una tabella, girando in internet ho notato che esiste
    j-text-utils che restituisce una tabelle in base alla matrice che gli viene data vi posto il link http://code.google.com/p/j-text-utils/, quindi l'unica cosa sarebbe di salvare il contenuto del file in una matrice di 7 colonne

    soltanto che non so come salvare il contenuto del file csv in una matrice
    Ultima modifica di luca120; 01-08-2014 a 08:51

  4. #4
    beh la matrice non e` altro che un array bidimensionale, ergo :
    codice:
    String[][] matrice = new String[righe][colonne];

  5. #5
    Quote Originariamente inviata da luca120 Visualizza il messaggio
    avevo già notato la classe formatter, vorrei proprio una tabella, girando in internet ho notato che esiste
    j-text-utils che restituisce una tabelle in base alla matrice che gli viene data vi posto il link http://code.google.com/p/j-text-utils/, quindi l'unica cosa sarebbe di salvare il contenuto del file in una matrice di 7 colonne

    soltanto che non so come salvare il contenuto del file csv in una matrice


    Si come ha già detto Luca la matrice è un array bidimensionale, per popolarlo devi scorrere tutto il file csv e manmano leggi dal file popoli l'array (cerca sul forum perche è stato trattato moltissime volte questo punto).

    Ciao ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    14
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    Si come ha già detto Luca la matrice è un array bidimensionale, per popolarlo devi scorrere tutto il file csv e manmano leggi dal file popoli l'array (cerca sul forum perche è stato trattato moltissime volte questo punto).

    Ciao ciao
    ho cercato appunto nel forum ma non riesco a trovarlo il mio problema è che a priori io non so quante righe sono presenti nel file...
    so solo che ho 7 colonne ed n righe quindi non so come salvare nel il contenuto del file escludendo i separatori ( ; )e metterli nella matrice per stamparli

  7. #7
    codice:
    for (int i = 0; i< m.length; i++)
      for(int j = 0; j < m[0].length; j++){
     //// fai le operazioni
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    14
    Quote Originariamente inviata da franksisca Visualizza il messaggio
    codice:
    for (int i = 0; i< m.length; i++)
      for(int j = 0; j < m[0].length; j++){
     //// fai le operazioni
    }
    si ok lo so, forse non riesco a farmi capire

    dato un file CSV come faccio a popolare una matrice, non sapendo quante righe ci sono contenute?
    io prima ho scansionato tutto il fileper sapere la quantita di righe cosi so quanto deve essere grande la matrice e qua che poi ho il problema vi copio il pezzo di codice
    codice:
     String token1 = "";
                                    File file = new File("Catalogazione.csv");
                                    int righe = 0;
                                    final int colonne = 7;
                                    FileReader fr = new FileReader(file);
                                    LineNumberReader ln = new LineNumberReader(fr);
                                    while (ln.readLine() != null) {
                                        righe++;
                                    }
                                    System.out.println("Righe Totali: " + righe);
                                    Scanner fileCatTab = new Scanner(new File("Catalogazione.csv")).useDelimiter(";");
                                    List<String> temps = new LinkedList<String>();
                                    while (fileCatTab.hasNext()) {
                                      token1 = fileCatTab.next();
                                      temps.add(token1);
                                    }
                                    fileCatTab.close();
                                    //qua ho ilproblema ho memorizzato il contenuto come faccio a cambiarlo in matrice?
                                    String[][] data = temps.toArray(new String[righe][colonne]);
                                    //printTable come secondo argomento (DATA) righiete una matrice String[][]
                                    ASCIITable.getInstance().printTable(header, data);
                                    ln.close();
    questo è un pezzo file

    Catalogazione;02/07/2014 – 22:05:14;Tapis;Endex;DCMD66A;9710070001B;1005
    Catalogazione;29/07/2014 – 21:11:41;Tapis;Endex;DCMD57;576911B;1006
    Catalogazione;29/07/2014 – 21:11:41;Tapis;Endex;DCMD76;763A253;1007
    Catalogazione;29/07/2014 – 21:11:41;Tapis;Endex;DCMD57;5767228;1006
    Catalogazione;29/07/2014 – 21:11:41;Tapis;Endex;DCMD67;1109N7;1006
    Catalogazione;29/07/2014 – 21:11:41;Tapis;Endex;DCMD57;57672206;1006


    e il codice mi restituisce solo la righe totali
    Ultima modifica di luca120; 03-08-2014 a 14:05

  9. #9
    non vorrei dire una castroneria, ma il toArray dovrebbe restituire solo un array bidimensionale.

    Io farei cosi:

    costruirei un oggetto ad hoc per il mapping del file csv, cosi` avrrei una lista e non una matrice, poi farei l'override del metodoprintTable con una lista di oggetti.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    14
    Quote Originariamente inviata da franksisca Visualizza il messaggio
    non vorrei dire una castroneria, ma il toArray dovrebbe restituire solo un array bidimensionale.

    Io farei cosi:

    costruirei un oggetto ad hoc per il mapping del file csv, cosi` avrrei una lista e non una matrice, poi farei l'override del metodoprintTable con una lista di oggetti.
    ehm, mi sa che allora per me non è fattibile ma per le conoscenze che ho io.....

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.