Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63

    Strano problema nel "contare" (html/servlet)

    Vi spiego il mio problema.

    Ho un foglio excel con un'intestazione e dei valori nella tabelle. I valori sono 5, che si ripetono riga per riga. Il foglio excel l'ho trasformato in una tabella html e nell'intestazione sono andato a creare una checkbox

    codice:
    <input type=\"checkbox\" name=\"intestazione\" value='"+k+"' checked=\"yes\" >
    con k inizializzato a zero. Lo uso per capire nella servlet successiva quali sono le colonne selezionate.

    Una volta selezionate un determinato numero di colonne vado nella successiva servlet attraverso un form per analizzare i dati all'interno delle colonne selezionate e non.
    Facendo in questo modo



    codice:
    String check[] = request.getParameterValues("intestazione"); // qui trovo le colonne selezionate
    
     try {
                String cartella="C://Documents and Settings//user//Documenti//NetBeansProjects//prog//build//web//";
                String filePath = cartella + nome;
                FileInputStream fs = new FileInputStream(new File(filePath));
                WorkbookSettings ws = null;
                Workbook workbook = null;
                Sheet s = null;
                Cell rowData[] = null;
                double rowCount = 0.0;
                int columnCount = 0;
                int totalSheets = 0;
                ws = new WorkbookSettings();
                workbook = Workbook.getWorkbook(fs, ws);
                totalSheets = workbook.getNumberOfSheets();
                s = workbook.getSheet(0);
                columnCount=s.getColumns();
                rowCount = s.getRows();
                
                for (int i = 1; i < rowCount; i++) {
                    rowData = s.getRow(i);                
                    if (rowData.length > 1) {
                        int p=0;
                        for (int j = 0; j < columnCount; j++) {
                            p++;
                            for (int l=0; l<check.length;l++){
                                if(Integer.parseInt(check[l]) == p){ // Vuol dire che ho una cella della Colonna selezionata
                                    D.Conta(rowData[j].getContents());                       
                                }
                                else //ho una colonna non selezionata
                                        H.Conta(rowData[j].getContents());
                            }
                        }
                    }
                    
                    out.println("hAA "+ H.getA() ); 
                    out.println("hCC "+ H.getC() );
                    out.println("hGG "+ H.getG() );
                    out.println("hTT "+ H.getT() );
                    out.println("hCT "+ H.getCT() ); out.println("
    ");out.println("
    ");
                    
                    out.println(" dAA "+ D.getA() );
                    out.println(" dCC "+ D.getC() );
                    out.println(" dGG "+ D.getG() );
                    out.println(" dTT "+ D.getT() );
                    out.println(" dCT "+ D.getCT() ); out.println("
    ");out.println("
    ");
                    
                    H.Pulizia();D.Pulizia();
                }        
                
                
                
            } finally {            
                out.close();
            }
    Ad occhio mi sembrava giusta, ma quando vado a vedere l'out.println a video i valori del primo if
    codice:
    if(Integer.parseInt(check[l]) == p)
    sono giusti.
    Quelli del 2nd if sono completamenti sballati.

    Ho fatto una prova con una tabella con 50colonne e ho selezionato 2 colonne. I valori delle 2 colonne sono giusti, quelle delle colonne non selezionate sono sbagliati.
    Dove sbaglio?!


    edit:
    Ho appena notato che se seleziono più colonne, il contatore incrementa l'errore.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    il problema è questo mi sa, se faccio


    codice:
    if(Integer.parseInt(check[l]) != p && rowData[j] != null){ // Vuol dire che ho una cella della Colonna selezionata                                 D.Conta(rowData[j].getContents());     }
    i contantori mi restituiscono dei valori sbagliati.

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.