2014-06-13 6 views
0

J'ai un problème avec la librairie java OpenCSV. Je ne parvenais pas à lire toutes les lignes de mon fichier CSV, je ne lis que la deuxième ligne, je ne sais pas pourquoi ...OpenCSV - Lire toutes les lignes

Mon fichier CSV:

"NumACLEB","Nom","Prenom","Niveau","Telephone","Portable","Rue","Code Postale","Ville","Activite","Adresse Mail","Cotisation Acleb","Cotisation Adherent" 
"0","Pierre","Paul","Jacques","0585987445","0187458596","tests","92569","PARIS","POKER","[email protected]","14","11" 
"0","Julie","Julie","Beginner","0878589632","1445856996","test3","93857","PAris","POKER","[email protected]","14","11" 

J'utilise OpenCSV à créer une liste android, et seule la ligne « Julie » « Julie » est ajouté 3 fois ...

try 
     { 
      CSVReader csvReader = new CSVReader(new FileReader(SettingsActivity.SaveFolder+"PDF/Liste_Membres.csv"),'\t'); 
      //List<String[]> content = csvReader.readAll(); 
      String[] row = csvReader.readNext(); 
      while(row != null) 
      { 
       if(row[1]!="Nom") 
       { 
        map.put("viewname", row[1]+" "+row[2]); 
        map.put("viewDetails", "Ville : "+row[8]+" Cotisation ACLEB : "+row[11]+"€ Cotisation poker : "+row[12]+"€"); 
        map.put("img", String.valueOf(R.drawable.aclebapc_logo)); 
        listItem.add(map); 
       }else 
       { 
        map.put("viewname", "NOM Prenom"); 
        map.put("viewDetails", "Ville - Cotisation ACLEB - Cotisation poker"); 
        map.put("img", String.valueOf(R.drawable.aclebapc_logo)); 
        listItem.add(map); 
       } 
       row = csvReader.readNext(); 
      } 
     }catch(IOException ex) 
     { 
      Context context = getApplicationContext(); 
      CharSequence text = "Erreur lors de l'ouverture du fichier CSV..."; 
      int duration = Toast.LENGTH_SHORT; 
      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
     } 

Répondre

0

Je prends map est une sorte de dictionnaire? Lorsque vous placez les valeurs dans les mêmes clés encore et encore, elle écrase la valeur précédente.

Je recommande une structure de données différente en fonction du problème que vous essayez de résoudre.

0

Beautifulcoder a frappé le clou sur la tête. Vous utilisez la même clé pour chaque valeur que vous insérez dans la carte, de sorte que vous écrasez tout et que vous ne voyez que le dernier élément que vous avez placé sur la carte

Questions connexes