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

API standards et tierces Java Discussion :

Création fichier CSV Java et importation d'une BDD


Sujet :

API standards et tierces Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Création fichier CSV Java et importation d'une BDD
    Bonjour a vous,

    Je pense que c'est dans ce forum que je dois mettre ma demande, si ce n'est pas ici dite moi ou il faudrait le mettre.

    Actuellement je suis en train de développé un projet sous netbeans, je dois faire une purge d'une base de données sous microsoft access 2010.

    En clair je vais faire trois méthodes, une première qui permet de sélectionné le mois a purger, la deuxième qui créé le fichier csv du mois a purger la dernière qui supprime. J'utilise le main pour test mes méthodes et un autre fichier ou il y a toute mes méthodes. Je vous met mon code des deux méthodes que j'ai faite déjà (sélection et suppression ) il me reste a faire la création du fichier CSV.

    J'ai commencé a chercher pour sauvegarde et les bouts de code tester ne marcher pas..
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
     //méthode permettant de nettoyé la base de données 
        public void PurgerMois(String date) throws SQLException 
        {
                    // declaration des dates  pour la purges
    		String datefin = date;
    		//isole le mois du format date
    		String[] partieComplet = datefin.split(" ");
                    String[] partieDate = partieComplet[0].split("-");
    		//convertie la chaine de caractere en entier
    		int mois = Integer.parseInt(partieDate[1]);
    		//increment du mois
    		mois = mois + 1;
    		//convertie l'entier en chaîne de caractere
    		String month = Integer.toString(mois);               
    		//Mise au format date de la BDD
    		if (month.length() != 2)
    		{
    		month = "0"+month+"";
     
    		//appel de la méthode de selection du mois
    		}
     
    		//ecrase la chaine datefin avec le mois suivant
    		datefin = ""+partieDate[0]+"-"+month+"-"+partieDate[2]+"";
    		SelectionMoisPurge(date, datefin);
                    //appel de la méthode permettant d'enregistrer le mois qui va être purger
                    EnregistrerMoisPurge(date);
     
            // requete delete permettant la suppression des enregistrements avant une date donné
    	String queryDelete = "DELETE FROM T_COLLECTE WHERE DATE_HEURE  BETWEEN  #"+date+"# AND #"+datefin+"#";
            //execution de la requete delete de purge
            mabdd.RequeteDelete(queryDelete);
            System.out.println("purge du "+date+" ok");
     
        }  
     
        // méthode pour selectionner le mois a purger
        public void SelectionMoisPurge(String date, String datefin) throws SQLException 
        {
     
            //requete select permettant de selectionner les mois non purger
            String querySelect = "SELECT * FROM T_COLLECTE WHERE DATE_HEURE = #"+date+"# ";
            //execution de la requete select
            ResultSet results = mabdd.RequeteSelect(querySelect);
     
     
        }
     
        //méthode pour enregistrer le mois a purger dans un fichier csv
       public void EnregistrerMoisPurge(String adressedufichier)
        {
     
     
       }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il faut que tu nous expliques précisément ce qui ne "marche pas" : y'a-t-il une erreur de compilation, d'exécution (laquelle et sur quelle ligne de code exactement), ce que ça fait que ça doit pas faire, ou ne fait pas ce que tu attendrais que ça fasse, etc...

    Bon, de ce que je veux voir en regardant rapidement ton code :
    • Tu te simplifierais la vie en utilisant un SimpleDateFormat pour parser la date, mais bon, ce n'est obligatoire ;
    • Quand tu fais le select, tu récupères son résultat "dans" la classe ResultSet : il va falloir passer d'une manière ou d'une autre ce resultat vers la méthode qui fait la sauvegarde du fichier (soit directement par la classe ResultSet, soit par l'intérmédiaire d'une autre classe (une ArrayList par exemple) ;
    • Accessoirement, utilises des PreparedStatement pour faire des requêtes, ça supprimera certaines erreurs de syntaxe, liées aux types des données (et puis c'est toujours mieux de prendre l'habitude de les utiliser, même pour un exercice basique).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Ce que j'ai vue sur internet:

    Ce code permet de créé un fichier csv il me semble bien; je dois rajouté ce import:
    import au.com.bytecode.opencsv.CSVWriter;

    Mais mon problème il ne le reconnais pas il me dis qu'il n'existe pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');    
    String[] entries = "first#second#third".split("#");
    writer.writeNext(entries);
    writer.close();
    Je rajoute que j'ai un doute la ce code permet d'écrire dans un fichier csv mais il permet pas de le créé, comment fait-on alors? La j'ai vraiment du mal

    -Je vais regardé comment sa marche SimpleDateFormat, après alors, se format marche pour l'instant alors j'essaye de finir pour avoir quelque chose qui fonctionne.

    -Donc pour récupéré mon ResultSet de mon select, il faut que je modifie ma méthode pour que elle renvoie un ResultSet en valeur de retour et que ce ResultSet je le mette en paramètre ou que je l'utilise dans ma méthode de sauvegarde?

    -oui je m'excuse j'ai oublié de les mettre mais je les ai fait, j'ai fait un fichier avec tout ce qui est connexion a la BDD les statement les exécutions des requêtes et autres

    J'explique en quelque terme rapidement.


    J'ai ma classe AccesBDD permet la connexion, la déconnexion et les requêtes (executeQuery,Statement..) sur la BDD. Ensuite j'ai ma classe GestionBDD où la il y a tout le détail de mes méthodes d'insertion.. sur ma base de donnée, j'ai des méthodes d'insertion de sélection et de mise a jour ainsi que le constructeur qui permet la connexion et le "destructeur" qui permet la déconnexion. Et a partir de mon main je fais un appel aux constructeur la méthode que je veux test et destructeur.


    je vous remercie de vous penchez sur mon problème.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fashionsea Voir le message
    Ce code permet de créé un fichier csv il me semble bien; je dois rajouté ce import:
    import au.com.bytecode.opencsv.CSVWriter;

    Mais mon problème il ne le reconnais pas il me dis qu'il n'existe pas.
    Cette classe fait partie d'une bibliothèque, qu'il faut télécharger : il s'agit d'un ou plusieurs jar, qu'il faut ajouter au classpath.

    Citation Envoyé par fashionsea Voir le message
    Je rajoute que j'ai un doute la ce code permet d'écrire dans un fichier csv mais il permet pas de le créé
    Je ne connais pas cette bibliothèque en particulier, mais normalement, elle doit se fondé sur les classes standards de java (Writer, ou OutputStream), qui créént toujours les fichiers dans lesquels elles écrivent...donc pas de souci normalement.

    Citation Envoyé par fashionsea Voir le message
    -Donc pour récupéré mon ResultSet de mon select, il faut que je modifie ma méthode pour que elle renvoie un ResultSet en valeur de retour et que ce ResultSet je le mette en paramètre ou que je l'utilise dans ma méthode de sauvegarde?
    Exactement. Attention, cependant, quand on manipule un ResultSet entre différentes méthodes, selon les cas, il a un état (on "consomme" des enregistrements au fur et à mesure qu'on les lis, on peut(ou il faut) le fermer par close(),...) : c'est pour ça que j'évoquais le passage par un type intermédiaire, telle qu'un ArrayList, mais dans ton cas, passer par le ResultSet est surement suffisant.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Cette classe fait partie d'une bibliothèque, qu'il faut télécharger : il s'agit d'un ou plusieurs jar, qu'il faut ajouter au classpath.
    Je l'ai trouvé cette biblio mais ce n'est pas un fichier jar et c'est un fichier "unix" tout les sites ou je les ai trouvé mon donnés se même fichier au format unix, n'ayant pas de système unix a disposition je peux pas me log dessus pour continuer.

    ( site ou j'ai trouvé mon code pour la sauvegarde du fichier et le téléchargement du fichier (sous unix toujours): http://java.mesexemples.com/fichiers...-fichier-csv/# )


    je peux mettre simplement le ResultSet mais j'ai déja fait une méthode avec un arrayList donc j'ai remis sous le même format, sa devient comme comme ça: (CDataPresse étant un fichier ou je possède tout mes Set et Get)

    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
    public ArrayList SelectionMoisPurge(String date, String datefin) throws SQLException 
        {
     
            //requete select permettant de selectionner les mois non purger
            String querySelect = "SELECT * FROM T_COLLECTE WHERE DATE_HEURE = #"+date+"# ";
            //execution de la requete select
            ResultSet results = mabdd.RequeteSelect(querySelect);
     
            while (results.next())
            {     
                //
                CDataPresse mesEnregistrement = new CDataPresse();
                //NUM étant le numéro de l'enregistrement
                mesEnregistrement.SetNUM(results.getInt("NUM"));
                mesEnregistrement.SetID(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetUnite(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetHeure(results.getString("DATE_HEURE"));
                liste.add(mesEnregistrement);
            } 
     
            //retour de la liste des enregistrements
            return liste;
     
        }

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fashionsea Voir le message
    site ou j'ai trouvé mon code pour la sauvegarde du fichier et le téléchargement du fichier (sous unix toujours): http://java.mesexemples.com/fichiers...-fichier-csv/# )
    C'est juste un fichier tar.gz (et pas un fichier unix, même si effectivement ce format d'archives est plutôt utilisé sur unix) : il te suffit de décompresser ce fichier avec n'importe quel logiciel de dezip, et tu obtiendras un fichier tar, qu'il te suffit de redeziper (je sais plus si le dezippeur natif de l'explorateur windows sait le faire par contre).

    Citation Envoyé par fashionsea Voir le message
    je peux mettre simplement le ResultSet mais j'ai déja fait une méthode avec un arrayList donc j'ai remis sous le même format, sa devient comme comme ça: (CDataPresse étant un fichier ou je possède tout mes Set et Get)
    OK, très bien.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    voilà j'ai réussi a l'intégré la création de mon fichier marche comme il faut lorsque que j'exécute, manuellement.

    Donc en faite maintenant a partir de ma méthode PurgerMois j'aimerai pouvoir créé le fichier csv avec les données que j'ai sélectionné de ma méthode SelectionMoisPurge.

    C'est ta dire il me manque le lien de la base de donnée vers ma méthode EnregistrerMoisPurge, pouvez vous m'aidé?

    Je vous met un rappel des trois méthodes que j'ai actuellement:

    Aussi dans ma méthode EnregistrerMoisPurge j'ai du mettre un prénom au fichier et sa sera toujours celui la comment je fais pour choisir le nom du mois choisis sélectionné auparavant
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    //méthode permettant de nettoyé la base de données 
        public void PurgerMois(String date) throws SQLException
        {
                    // declaration des dates  pour la purges
    		String datefin = date;
    		//isole le mois du format date
    		String[] partieComplet = datefin.split(" ");
                    String[] partieDate = partieComplet[0].split("-");
    		//convertie la chaine de caractere en entier
    		int mois = Integer.parseInt(partieDate[1]);
    		//increment du mois
    		mois = mois + 1;
    		//convertie l'entier en chaîne de caractere
    		String month = Integer.toString(mois);               
    		//Mise au format date de la BDD
    		if (month.length() != 2)
    		{
    		month = "0"+month+"";
     
    		//appel de la méthode de selection du mois
    		}
     
    		//ecrase la chaine datefin avec le mois suivant
    		datefin = ""+partieDate[0]+"-"+month+"-"+partieDate[2]+"";
    		SelectionMoisPurge(date, datefin);
                    //appel de la méthode permettant d'enregistrer le mois qui va être purger
                   // EnregistrerMoisPurge(date);
     
            // requete delete permettant la suppression des enregistrements avant une date donné
    	String queryDelete = "DELETE FROM T_COLLECTE WHERE DATE_HEURE  BETWEEN  #"+date+"# AND #"+datefin+"#";
            //execution de la requete delete de purge
            mabdd.RequeteDelete(queryDelete);
            System.out.println("purge du "+date+" ok");
     
        }  
        // méthode pour selectionner le mois a purger
        public ArrayList SelectionMoisPurge(String date, String datefin) throws SQLException 
        {
     
            //requete select permettant de selectionner les mois non purger
            String querySelect = "SELECT * FROM T_COLLECTE WHERE DATE_HEURE = #"+date+"# ";
            //execution de la requete select
            ResultSet results = mabdd.RequeteSelect(querySelect);
     
            while (results.next())
            {     
                //
                CDataPresse mesEnregistrement = new CDataPresse();
                mesEnregistrement.SetNUM(results.getInt("NUM"));
                mesEnregistrement.SetID(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetUnite(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetHeure(results.getString("DATE_HEURE"));
                liste.add(mesEnregistrement);
            } 
     
            //retour de la liste de presses
            return liste;
     
        }
     
        //méthode pour enregistrer le mois a purger dans un fichier csv
       public void EnregistrerMoisPurge(String adressedufichier) throws IOException  
        {
             CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');
     
     
            //utiliser pour mon exemple je sais qu'il changera plus tard mais a l'heure actuel je ne sais pas en quoi
            String[] entries = "first#second#third".split("#");
            writer.writeNext(entries);
    	writer.close();
     
       }

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Maintenant que tu peux récupérer les informations du mois à purger dans une ArrayList, il te suffit de la passer en paramètre de ta méthode d'écriture du CSV, dans laquelle, tu parcours la liste, et tu écris les données de chaque élément de la liste.

    Tu auras plus de faciliter à gérer ça en paramétrant ta liste avec le type de ton wrapper de data :

    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
    public ArrayList<CDataPresse>  SelectionMoisPurge(String date, String datefin) throws SQLException 
        {
     
            ArrayList<CDataPresse> liste = new ArrayList<>(); // tu avais oublié cette ligne de code (initialisation)
     
            //requete select permettant de selectionner les mois non purger
            String querySelect = "SELECT * FROM T_COLLECTE WHERE DATE_HEURE = #"+date+"# ";
            //execution de la requete select
            ResultSet results = mabdd.RequeteSelect(querySelect);
     
            while (results.next())
            {     
                //
                CDataPresse mesEnregistrement = new CDataPresse();
                mesEnregistrement.SetNUM(results.getInt("NUM"));
                mesEnregistrement.SetID(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetUnite(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetHeure(results.getString("DATE_HEURE"));
                liste.add(mesEnregistrement);
            } 
     
            //retour de la liste de presses
            return liste;
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ArrayList<CDataPresse> list =  selectionMoisPurge(String date, String datefin);
    EnregistrerMoisPurge(list, cheminDuFichier);
    et :

    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
     public void EnregistrerMoisPurge(List<CDataPresse> liste, String adressedufichier) throws IOException  
        {
             CSVWriter writer = new CSVWriter(new FileWriter( adressedufichier ), '\t');
            try {
     
            //utiliser pour mon exemple je sais qu'il changera plus tard mais a l'heure actuel je ne sais pas en quoi
            for(CDataPresse  data : liste) {
               String[] entries = new String[] {
                     String.valueOf(data.getNUM()), // il te faut créer les getters correspondant à chaque information à écrire dans le CSV, comme tu as fait pour les setters que tu appelles dans selectionMoisPurge
                     String.valueOf(data.getID()), 
                     ... // là, tu continues avec la liste des infos que tu veux écrire dans le CSV...
               }
                writer.writeNext(entries);
            }
     
            } finally {
    	     writer.close();
            }
     
       }
    Pour que tu ton fichier ait un nom qui dépend du mois, il te suffit de passer en valeur du paramètre adressedufichier, une chaîne construite à partir des informations que tu veux (le mois, l'année, le nom du dossier, etc...), par concaténation.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    il reste une erreur où il n'est pas d'accord

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //information inserer dans le fichier .csv   
                while (entries.next())
     
            {        
           String.valueOf(data.GetID());
           String.valueOf(data.GetUnite());
           String.valueOf(data.GetHeure());
           String.valueOf(data.GetNUM());
     
            }
    au niveau de mon entries.next il me dis:
    cannot find symbol
    defferencing possible null pointer

    Il ne détecte pas mon "next()"

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Sans le code complet de la méthode, difficile de dire quoique ce soit de sûr, mais il semble que tu n'aies pas initialiser entries. Pour être utilisable dans une méthode, une variable doit être initialisé, c'est-à-dire avoir une valeur, et, en plus, pour pouvoir invoquer une méthode, il faut que sa valeur soit non null. D'autre part, tu invoques une méthode next() qui n'existe pas dans la classe de entries : c'est quoi cette classe ? Si c'est un tableau de String, c'est normal, il n'y a jamais eu de méthode next() sur un tableau : si le but est d'itérer sur le tableau, regardes plus attentivement l'exemple que je t'ai donné.

    Sinon, c'est quoi, les lignes du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.valueOf(data.GetID());
    Elles ne servent à rien : ce code convertit la valeur retournée par GetID() en String, et n'en fait rien.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    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
    public void EnregistrerMoisPurge(List<CDataPresse> liste, String adressedufichier) throws IOException  
        {
            String[] entries =  null;
            CSVWriter writer = new CSVWriter(new FileWriter( adressedufichier ), '\t');
             try {
     
            for(CDataPresse  mesEnregistrement : liste) {
     
            //information inserer dans le fichier .csv   
                     mesEnregistrement.GetID();
                     mesEnregistrement.GetUnite();
                     mesEnregistrement.GetHeure();
                     mesEnregistrement.GetNUM();
                     liste.add(mesEnregistrement);
     
                writer.writeNext(entries);
     
            }
             } finally {
    	     writer.close();
            }
            }
    je m'excuse j'avais supprimé le mauvais code dans le while (je garde tout ce que je fais en commentaire tant que je n'ai pas fini la méthode pour voir si c'est bon ou pas..)

    je vient de comprendre, j'avais zapper writer.writeNext(entries); donc je n'ai plus besoin de mon while en temps normal

    Ensuite pour cette ligne je ne comprend pas car il me dis found String or required String[]
    String[] entries = new String[]

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    D'une part tu écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] entries =  null;
    Ceci signifie que tu déclares une variable entries de type tableau de String, que tu initialises à null, c'est-à-dire pas de valeur : dès que tu vas t'en servir, tu auras une NullPointerException.

    Je ne sais pas "qui"/"quoi" te dit ce message d'erreur et où, mais c'est probablement lié à ça.

    Ensuite, tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mesEnregistrement.GetID();
    mesEnregistrement.GetUnite();
    mesEnregistrement.GetHeure();
    mesEnregistrement.GetNUM();
    Ce code ne fait que lire des informations dans mesEnregistrement, sans les conserver dans une variable, donc perdues, alors que le but c'est de les mettre dans le tableau entries pour pouvoir les écrire dans le CSV.

    Ensuite, il ne faut surtout pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.add(mesEnregistrement);
    Tu ajoutes à la fin de liste, l'élément courant pris dans liste, donc, à la fin de la boucle, tu vas te retrouver logiquement avec tous tes éléments de la liste en double : pourquoi faire ? Bon, de toute manière, tu ne peux pas faire ça, le code de ArrayList va soulever une exception (ConcurrentModificationException), parce qu'il est fait de telle manière qu'on ne peut pas itérer dessus et ajouter des éléments dedans en même temps.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Points : 15
    Points
    15
    Par défaut Sans vouloire faire de troll
    Bonjour,
    je ne souhaite pas faire un troll, mais j'annonce que je vais embêter mon monde.

    Je connais le contexte de la question de base posée par fashionsea, qui est un projet de cours.

    Dans l'idée, je ne suis pas le dernier à chercher de l'aide, sur une question en particulier. Par contre en l'occurrence en dehors du fait que le code n'a été que glané sur le net (pourquoi pas), ce camarade n'a pas fourni le travail demandé. On est pas forcé d'être bon, mais il y a un effort minimum à fournir. D'autres ont fait ce travail (on a 2 purges différentes), en partant de -1 en prog, et ont fini.

    Donc s'il te plait fashionsea, travaille. D'autres ont fait cet effort, niveau solidarité et respect des règles de l'examen, c'est pas correct.

    Merci.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    je te remercie joel pour ton aide très utile.

Discussions similaires

  1. création fichier CSV à partir une table
    Par neoboy dans le forum Macros Access
    Réponses: 11
    Dernier message: 06/12/2012, 11h17
  2. Réponses: 2
    Dernier message: 20/02/2012, 09h29
  3. Choix du repertoire pour création fichier csv
    Par edenyorke dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/07/2007, 10h45
  4. Création fichier csv
    Par krfa1 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/11/2005, 10h30
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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