IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Tableau pas récupéré


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut Tableau pas récupéré
    Bonjour tout le monde,
    je ne comprend pas pourquoi je n'arrive pas à récupérer mon tableau rightId.
    Si quelqu'un pouvait m'aider à comprendre pourquoi
    Voici la class qui contient le code fautif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    import android.widget.Toast;
     
    import com.opencsv.CSVReader;
    import java.io.FileReader;
    import java.io.IOException;
     
    public class Rcsv {
        public int[] readThis(int id, int value) throws IOException {
            CSVReader reader = new CSVReader(new FileReader("C:\\AutoPlay_Android\\AutoPlay\\app\\src\\main\\res\\raw\\md.csv"));
            String[] nextLine;
            int rightId[] = new int[3];
            int i = 0;
            while ((nextLine = reader.readNext()) != null) {
                // nextLine[] is an array of values from the line
                int idValue =  Integer.parseInt(nextLine[id]);
                if (idValue == value || idValue == 2 || value == 2) {
                    rightId[i] = Integer.parseInt(nextLine[0]);
                    i = i++ ;
                }
                else {}
            }
     
            return rightId;
        }
     
    }
    Et la method avec laquelle je l'appelle dans ma fonction principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public int[] appelRead(int id, int value) {
            Rcsv rb = new Rcsv();
            try {
                int[] ret = rb.readThis(id, value);
                return ret;
            } catch (IOException e) {
                e.printStackTrace();
            }
     
            return null;
        }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Il y a deux choses qui me dérangent :

    Premièrement, es-tu sûr que ton fichier ne contient que trois valeurs intéressantes ?

    Deuxièmement, i = i++; ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut
    Yep, c'est un fichier de test qui ne contient que 3 valeurs (toute intéressantes).

    Ah, autant pour moi, je débute en java et j'ai pas réfléchis en me disant que l'incrémentation avec ++ devait marcher. Je l'ai donc remplacé par :
    Mais ça ne fonctionne toujours pas.
    Cela peut-il être dû aux séparateurs (à savoir : " , ") de mon fichier csv ? Quels sont ceux reconnus par opencsv ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Naka111 Voir le message
    Yep, c'est un fichier de test qui ne contient que 3 valeurs (toute intéressantes).

    Ah, autant pour moi, je débute en java et j'ai pas réfléchis en me disant que l'incrémentation avec ++ devait marcher.
    Ho i++ incrémente bien la valeur de i, et retourne l'ancienne valeur, que tu stocke ensuite dans i, donc au final i ne bouge pas. C'est soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i = i+1;
    i+=1;
    ou
    i++;
    Mais ça ne fonctionne toujours pas.
    Comme toujours, merci de préciser ce que veux dire "ne fonctionne pas".

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut
    D'accord, merci.

    Je veux dire par là que je ne récupère toujours pas mon tableau par le return.
    Pour vérifier si je le récupère bien, j'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int value = 2;
                    int[] idList = appelRead(2, value);
                    int[] test = {0, 1, 2};
                    if (Arrays.equals(idList, test)) {
                        Toast.makeText(MainActivity.this, "nice one bro", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "nope", Toast.LENGTH_SHORT).show();
                    }
    Je retranscrit ici le fichier csv qui me sert pour mes tests :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    0,A,0,0,0,0
    1,B,1,1,1,1
    2,C,2,2,2,2

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si u reçois null, c'est que tu es passé par ton catch exception. Dans ce cas, ce serait bie de pouvoir voir la stacktrace que tu as affiché.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/03/2008, 14h44
  2. Réponses: 12
    Dernier message: 09/12/2007, 12h52
  3. Session enregistrée mais pas récupérée
    Par Dadz dans le forum Langage
    Réponses: 15
    Dernier message: 06/06/2007, 11h28
  4. Réponses: 1
    Dernier message: 16/05/2007, 15h52
  5. Réponses: 2
    Dernier message: 20/09/2006, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo