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

Entrée/Sortie Java Discussion :

Liste, fichier texte & Affichage


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Liste, fichier texte & Affichage
    Bonjour,

    Je dois faire un programme en JAVA. Pour cela, je dois charger un fichier texte, ajouter les éléments dans une liste, ensuite modifier la liste, afficher la liste et enregistrer le tout dans un fichier texte.

    VOILA CE QUE COMPORTE LE JOUEUR :

    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
    public class C_Joueurs {
     
        private String pseudo;
        private String email;
        private String mdp;
        private String sexe;
        private String date_naissance;
        private String date_creation;
        private String date_last_connexion;
        private int score;
        private int last_score;
        private int nb_connexion;
        private int position;
        private static LinkedList L_joueur = new LinkedList();
     
        public C_Joueurs(String V_pseudo, String V_email, String V_mdp, String V_sexe, String V_date_naissance, String V_date_creation, String V_date_last_connexion, int V_score, int V_last_score, int V_nb_connexion, int V_position) {
            pseudo = V_pseudo;
            email = V_email;
            mdp = V_mdp;
            sexe = V_sexe;
            date_naissance = V_date_naissance;
            date_creation = V_date_creation;
            date_last_connexion = V_date_creation;
            score = V_score;
            last_score = V_last_score;
            nb_connexion = V_nb_connexion;
            position = V_position;
            L_joueur.add(this);
     
        }
    1/J'ai un fichier texte nommé "joueurs.txt" avec les informations des joueurs. Le fichier texte présente une information par ligne avec "***" pour séparer chaque joueurs. Mais je n'arrive pas à charger son contenu dans la liste joueur par ordre croissant des pseudo.

    2/Ensuite, je ne sais pas comment modifier par exemple l'email du joueur nommé "toto" dans la liste des joueurs.

    3/Je voulais savoir comment afficher la liste. Moi j'avais écrit :

    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
     static public void AFFICHAGE() {
            Iterator i = L_joueur.iterator();
            while (i.hasNext()) {
                C_Joueurs per = (C_Joueurs) i.next();
                System.out.println(per.pseudo);
                System.out.println(per.email);
                System.out.println(per.mdp);
                System.out.println(per.sexe);
                System.out.println(per.date_naissance);
                System.out.println(per.date_creation);
                System.out.println(per.date_last_connexion);
                System.out.println(per.score);
                System.out.println(per.last_score);
                System.out.println(per.nb_connexion);
                System.out.println(per.position);
            }
        }
    4/Et je ne sais pas comment enregistrer toute la liste de joueur dans un fichier texte nommé "sauvegarde.txt".

    Beaucoup de question en peu de temps. Je suis désolé mais je suis vraiment perdu là. Pourriez-vous s'il vous plait me donner les procédures que je n'arrive pas à écrire svp.

    Je vous en remercie à l'avance.

    Cordialement.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par Sarhoowalph Voir le message
    1/J'ai un fichier texte nommé "joueurs.txt" avec les informations des joueurs. Le fichier texte présente une information par ligne avec "***" pour séparer chaque joueurs. Mais je n'arrive pas à charger son contenu dans la liste joueur par ordre croissant des pseudo.
    A mon avis le plus simple est de d'abord remplir la liste en lisant le fichier (donc dans l'ordre du fichier), puis de trier la liste.
    Pour trier la liste, intéresse-toi à la méthode Collections.sort, soit en utilisant un comparateur soit en implémentant Comparable dans C_Joueurs.


    Citation Envoyé par Sarhoowalph Voir le message
    2/Ensuite, je ne sais pas comment modifier par exemple l'email du joueur nommé "toto" dans la liste des joueurs.
    Tu crées une méthode setEmail(String email) {this.email = email;}
    Tadaaaaaa. Ça s'appelle un "setter" (tu as également le "getter" qui marche dans l'autre sens : il te renvoie la valeur du champ) et c'est quand même hyper-archi-basique.


    Citation Envoyé par Sarhoowalph Voir le message
    Je voulais savoir comment afficher la liste. Moi j'avais écrit [...]
    C'est une solution.
    Autre solution : implémenter la méthode toString dans C_Joueurs, et puis pour l'affichage appeler tout simplement dans ta boucle System.out.println(i.next());

    Citation Envoyé par Sarhoowalph Voir le message
    4/Et je ne sais pas comment enregistrer toute la liste de joueur dans un fichier texte nommé "sauvegarde.txt".
    Pour lire ton fichier d'entrée, tu as probablement utilisé un FileReader ; eh bien maintenant utilise un FileWriter.
    Tu as déjà affiché ta liste de joueurs dans la console ; eh bien maintenant recommence, mais en utilisant la méthode write du FileWriter au lieu de System.out.print




    Remarque bonus :
    Ton nom de classe C_Joueurs est vraiment moche.
    1/ c'est quoi ce "C_" ? ça veut dire "classe" ? ça ne sert à rien.
    2/ la classe C_Joueurs représente un joueur, pourquoi écrire ça au pluriel ?
    Renomme-la donc Joueur tout court.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse. Voilà ce que j'ai fais mais ça ne marche toujours 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    // CHARGEMENT DU FICHIER TEXTE EN CREANT LA LISTE DES JOUEURS
        static public void CHARGEMENT_FICHIER_TEXTE()
            FileReader chargement = new FileReader("joueurs.txt");
            BufferedReader br = new BufferedReader(chargement);  
     
            String pseudo2;
            String email2;
            String mdp2;
            String sexe2;
            String date_naissance2;
            String date_creation2;
            String date_last_connexion2;
            String score2;
            String last_score2;
            String nb_connexion2;
            String position2;
     
            pseudo2 = br.readLine();
            while (pseudo2 != null) {
                pseudo2 = br.readLine();
                email2 = br.readLine();
                mdp2 = br.readLine();
                sexe2 = br.readLine();
                date_naissance2 = br.readLine();
                date_creation2 = br.readLine();
                date_last_connexion2 = br.readLine();
                score2 = br.readLine();
                last_score2 = br.readLine();
                nb_connexion2 = br.readLine();
                position2 = br.readLine();
                C_Joueurs joueur = new C_Joueurs(pseudo2, email2, mdp2, sexe2, date_naissance2, date_creation2, date_last_connexion2, Integer.valueOf(score2), Integer.valueOf(last_score2),  Integer.valueOf(nb_connexion2), Integer.valueOf(position2));
                L_joueur.add(joueur);
     
            }
            chargement.close();
        }
     
        // MODIFIER UNE INFORMATION DANS LA LISTE DES JOUEURS
        static public void MODIFIER_INFORMATIONS_PERSONNELLES(C_Joueurs joueur, String V_mdp, String V_email) {   
              L_joueur.setmdp(String mdp)
            {
                this.mdp = V_mdp;
            }
            setemail(String email)
            {
                this.email = email;
            }
        }
     
        // AFFICHER LA LISTE DES JOUEURS
        static public void AFFICHAGE() {
            Iterator i = L_joueur.iterator();
            while (i.hasNext()) {
                C_Joueurs per = (C_Joueurs) i.next();
                System.out.println(per.pseudo);
                System.out.println(per.email);
                System.out.println(per.mdp);
                System.out.println(per.sexe);
                System.out.println(per.date_naissance);
                System.out.println(per.date_creation);
                System.out.println(per.date_last_connexion);
                System.out.println(per.score);
                System.out.println(per.last_score);
                System.out.println(per.nb_connexion);
                System.out.println(per.position);
            }
        }
     
        //ENREGISTRER LA LISTE DES JOUEURS DANS LE FICHIER TEXTE
        static public void ENREGISTREMENT_LIST_FICHIER_TEXTE(C_Joueurs joueur) {
     
            File Fichier = new File("joueurs.txt");
            FileWriter enregistrement = new FileWriter(Fichier);
     
            Iterator i = L_joueur.iterator();
            while (i.hasNext()) {
                C_Joueurs per = (C_Joueurs) i.next();
                enregistrement.write(per.pseudo);
                enregistrement.write(per.email);
                enregistrement.write(per.mdp);
                enregistrement.write(per.sexe);
                enregistrement.write(per.date_naissance);
                enregistrement.write(per.date_creation);
                enregistrement.write(per.date_last_connexion);
                enregistrement.write(per.score);
                enregistrement.write(per.last_score);
                enregistrement.write(per.nb_connexion);
                enregistrement.write(per.position);
     
            }
            enregistrement.close();
     
     
        }
    }
    Je n'arrive pas ! Pourriez-vous, s'il vous plait, m'écrire les procédures.
    Je vous remercie à l'avance.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Pense à utiliser les balises [code].

    Citation Envoyé par Sarhoowalph Voir le message
    Voilà ce que j'ai fais mais ça ne marche tjs pas
    Je n'arrive pas !
    Qu'est-ce qui ne marche pas ?

    Citation Envoyé par Sarhoowalph Voir le message
    Pourriez-vous, s'il vous plait, m'écrire les procédures.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Toute la procédure modifier et enregistrer ne marche pas...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par Sarhoowalph Voir le message
    Toute la procédure modifier et enregistrer ne marche pas...
    "Ça ne marche pas", ça ne veut rien dire.
    Dis "ça ne compile pas, et voici les messages d'erreur"
    ou "j'obtiens des erreurs à l'exécution, les voici"
    ou "l'exécution s'effectue sans erreur, mais j'obtiens tel résultat alors que je m'attendais à obtenir tel autre".

    Ceci dit, ici ton problème est clair, ton code ressemble tellement peu à du Java que ça ne peut pas compiler, et que même les messages d'erreur du compilateur ne peuvent plus t'aider
    Ce bout de code en particulier est une horreur :
    Citation Envoyé par Sarhoowalph Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    static public void MODIFIER_INFORMATIONS_PERSONNELLES(C_Joueurs joueur, String V_mdp, String V_email) {   
       L_joueur.setmdp(String mdp)
       {
          this.mdp = V_mdp;
       }
       setemail(String email)
       {
          this.email = email;
       }
    }
    Il va falloir que tu reprennes les bases de Java. Il y a plusieurs tutoriels pour débutants sur le site, fais ton choix.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai résolu pas mal de mes problèmes

    Une autre question : je suis en graphique, j'ai un JFrame Accueil et un JDialog Joueur. En cliquant sur un bouton dans la fenetre accueil, je veux cacher la fenetre accueil et ouvrir la fenetre joueur.

    Ainsi, j'ai écris dans le code de la fenetre accueil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.setVisible(false);
    Joueur.setVisible(true);
    Mais Joueur.setVisible(true); n'est pas accepté.




    Autre question :
    J'ai la liste joueur que je veux modifier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static public void MODIFIER_INFORMATIONS_PERSONNELLES(C_Joueurs joueur, String V_email) {
     
           if (L_joueur.equals(joueur)==true){
               System.out.println(joueur.email);
           }
           else { System.out.println("NON");
           }
    J'envoie le joueur et je veux modifier son e-mail. Tout d'abord, je vérifie que ca marche en regardant si le prog trouve le joueur dans la liste. Le joueur possède exactement les informations et pourtant le programme dis qu'il ne trouve pas le joueur dans la liste.
    Autre méthode, remplacer L_joueur.containAll(Collection c) mais je ne sais pas comment utiliser les collections

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Je trouve bizarre la maniére dont tu sauvegarde tes joueurs
    Pour un peu plus de facilité tu pourrais:

    1/Soit serializer tes objets joueurs

    2/Soit sauvegarder tes joueurs dans un fichier XML (tellement plus pratique et de plus en plus à la mode)

    De plus il existe une librairie pour faire de la sauvegarde/chargement dans des fichiers XML plus facilement:
    http://www.jdom.org/

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut ... et ouvrir la fenetre joueur
    Salut,

    Tu ecris ... et ouvrir la fenetre joueur avec j minuscule
    et tu codes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Joueur.setVisible(true);
    avec J majuscule...

    Cordialement,

    Dan

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par helitik Voir le message
    Je trouve bizarre la maniére dont tu sauvegarde tes joueurs
    Pour un peu plus de facilité tu pourrais:

    1/Soit serializer tes objets joueurs

    2/Soit sauvegarder tes joueurs dans un fichier XML (tellement plus pratique et de plus en plus à la mode)

    De plus il existe une librairie pour faire de la sauvegarde/chargement dans des fichiers XML plus facilement:
    http://www.jdom.org/
    De même qu'il est préférable de savoir marcher avant de courir, il est plus logique d'apprendre à écrire un fichier texte avant de s'attaquer à un fichier XML


    devYan.

  11. #11
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Programme peu conventionnel et qui va rapidement devenir non-maintenable. tu devrais réécrire tout ceci de manière plus structuré.

    Sinon en ce qui concerne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static public void MODIFIER_INFORMATIONS_PERSONNELLES(C_Joueurs joueur, String V_email) {
     
           if (L_joueur.equals(joueur)==true){
               System.out.println(joueur.email);
           }
           else { System.out.println("NON");
           }
    Tu compares des choux et des patates L_joueur est une LinkedList et joueur un C_Joueurs, logique que ça ne marche pas.
    Pense à itérer sur ta liste et de comparer les C_Joueurs contenus.
    Ça ne marchera certainement toujours pas car tel quel tu utilises la méthodes equals hérité de Object, à savoir sur les références de tes objets.
    Pense donc a surcharger equals() et hashcode() dans ta classe C_Joueurs.
    Banzai

Discussions similaires

  1. Réponses: 13
    Dernier message: 19/12/2010, 10h40
  2. Lecture d'un fichier texte et affichage dans flash
    Par TaleMaker dans le forum Flash
    Réponses: 2
    Dernier message: 29/04/2010, 12h18
  3. Fichier texte / tri / affichage
    Par Sarrha dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 09/04/2009, 08h14
  4. Lecture Fichier text et affichage textbox
    Par miss_monika dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/05/2007, 10h34
  5. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46

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