#csv #opencsv
#csv #opencsv
Вопрос:
У меня проблема с java librairie OpenCSV. Мне не удалось прочитать всю строку моего CSV-файла, я прочитал только вторую строку, я не знаю почему…
Мой файл 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","test@test.fr","14","11"
"0","Julie","Julie","Beginner","0878589632","1445856996","test3","93857","PAris","POKER","foo@foo.fr","14","11"
Я использую OpenCSV для создания списка Android, и только строка «Джули» «Джули» добавляется 3 раза…
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();
}
Ответ №1:
Я так понимаю, это map
какой-то словарь? Когда вы снова и снова вводите значения в одни и те же ключи, предыдущее значение перезаписывается.
Я рекомендую другую структуру данных, основанную на проблеме, которую вы пытаетесь решить.
Ответ №2:
Beautifulcoder попал в точку. Вы используете один и тот же ключ для каждого значения, которое вы вставляете в карту, поэтому вы перезаписываете все и увидите только последний элемент, который вы поместили на карту