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

Langage Java Discussion :

Avoir le nombre de fois où l'on rencontre une occurrence


Sujet :

Langage Java

  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut Avoir le nombre de fois où l'on rencontre une occurrence
    Bonjour,

    je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (int d=0; d<tabPrenomP.length;d++){
    			if(tabPrenomP[0][d] != null || tabPrenomP[1][d]!=null){//si l'une des cellules n'est pas null
    				//afficher l'agent + la validation
    				System.out.println("Agent: "+tabPrenomP[0][d]+" heures: "+tabheures[1][d]+" semaine: "+semaineP[1][d]);
    			}
    		 }
    ce qui me donne ce résultat:
    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
     
    Agent: CAMILLE heures: 10.5 semaine: 1
    Agent: MURIELLE heures: 2.5 semaine: 1
    Agent: ISABELLE heures: 1.0 semaine: 1
    Agent: OPHÉLIE heures: 3.0 semaine: 1
    Agent: LAURA heures: 3.5 semaine: 1
    Agent: ASSMA heures: 10.25 semaine: 1
    Agent: CAMILLE heures: 4.75 semaine: 2
    Agent: MURIELLE heures: 7.5 semaine: 2
    Agent: ASSMA heures: 5.25 semaine: 2
    Agent: YOANN heures: 4.5 semaine: 2
    Agent: ADELINE heures: 4.0 semaine: 2
    Agent: YVANE heures: 0.75 semaine: 3
    Agent: MURIELLE heures: 8.75 semaine: 3
    Agent: ISABELLE heures: 1.0 semaine: 3
    Agent: OPHÉLIE heures: 1.5 semaine: 3
    Agent: PAULE heures: 4.5 semaine: 3
    Agent: YOANN heures: 10.75 semaine: 3
    Agent: ADELINE heures: 8.25 semaine: 3
    Agent: YVANE heures: 9.25 semaine: 4
    Agent: VALÉRIE heures: 2.0 semaine: 4
    Agent: MURIELLE heures: 16.75 semaine: 4
    Agent: ISABELLE heures: 9.25 semaine: 4
    Agent: OPHÉLIE heures: 7.25 semaine: 4
    Agent: LAURA heures: 2.25 semaine: 4
    Agent: PAULE heures: 13.25 semaine: 4
    Agent: YOANN heures: 19.25 semaine: 4
    Agent: ADELINE heures: 20.0 semaine: 4
    J'aimerais relevé:
    - le nombre de fois que je rencontre 1 pour semaineP[1][d],
    - le nombre de fois que je rencontre 2 pour semaineP[1][d],
    etc... etc..
    Pour les 52 semaines de l'année.

    Y'a-t-il un autre moyen de faire en évitant de faire:

    if(semaineP[1][d]==1) nbdefoissemaine1++

    Merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Les trois tableaux sont-ils imposés ?

    Sinon, pour résoudre ton problème de manière élégante, je te suggère d'utiliser une structure de donnée plus "objet".

    Par exemple :
    - une classe "Agent", composée d'un nom, d'un prénom, et d'une liste de "TempsTravaille"
    - une classe TempsTravaillees composées d'un nombre d'heure ainsi que d'une semaine

    Il te sera ensuite plus facile de travailler avec ces objets qu'avec tes tableaux.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Par défaut
    Pourquoi pas un tableau d'int, genre "semaineOccurence" ,

    Chaque index comprenant le nombre d'occurence de sa semaine associée.

    ton code deviendrait donc :

    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
     
     
     
    int [] semaineOccurence= new int[52]; 
    //on initialise les valeurs du tableau à 0.
     for(int i = 0; i < 52; i++)
          semaineOccurence[i] = 0;  
     
    for (int d=0; d<tabPrenomP.length;d++){
    			if(tabPrenomP[0][d] != null || tabPrenomP[1][d]!=null){
    				System.out.println("Agent: "+tabPrenomP[0][d]+" heures: "+tabheures[1][d]+" semaine: "+semaineP[1][d]);
     
    //on incrémente de 1 l'index associé à la semaine.
         semaineOccurence[1+semaineP[1][d]]+=1;
     
    			}
    		 }
    En ésperant avoir répondu à tes attentes

  4. #4
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Merci pour vos réponses !

    Non, c'est pas vraiment ca php_faboul car voici ce que ca maffiche:
    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
     
    Agent: CAMILLE heures: 10.5 semaine: 1
    semaineOccurence: 0
    Agent: MURIELLE heures: 2.5 semaine: 1
    semaineOccurence: 1
    Agent: ISABELLE heures: 1.0 semaine: 1
    semaineOccurence: 2
    Agent: OPHÉLIE heures: 3.0 semaine: 1
    semaineOccurence: 3
    Agent: LAURA heures: 3.5 semaine: 1
    semaineOccurence: 4
    Agent: ASSMA heures: 10.25 semaine: 1
    semaineOccurence: 5
    Agent: CAMILLE heures: 4.75 semaine: 2
    semaineOccurence: 0
    Agent: MURIELLE heures: 7.5 semaine: 2
    semaineOccurence: 1
    Agent: ASSMA heures: 5.25 semaine: 2
    semaineOccurence: 2
    Agent: YOANN heures: 4.5 semaine: 2
    semaineOccurence: 3
    Agent: ADELINE heures: 4.0 semaine: 2
    semaineOccurence: 4
    Agent: YVANE heures: 0.75 semaine: 3
    semaineOccurence: 0
    Agent: MURIELLE heures: 8.75 semaine: 3
    semaineOccurence: 1
    Agent: ISABELLE heures: 1.0 semaine: 3
    semaineOccurence: 2
    Agent: OPHÉLIE heures: 1.5 semaine: 3
    semaineOccurence: 3
    Agent: PAULE heures: 4.5 semaine: 3
    semaineOccurence: 4
    Agent: YOANN heures: 10.75 semaine: 3
    semaineOccurence: 5
    Agent: ADELINE heures: 8.25 semaine: 3
    semaineOccurence: 6
    Agent: YVANE heures: 9.25 semaine: 4
    semaineOccurence: 0
    Agent: VALÉRIE heures: 2.0 semaine: 4
    semaineOccurence: 1
    Agent: MURIELLE heures: 16.75 semaine: 4
    semaineOccurence: 2
    Agent: ISABELLE heures: 9.25 semaine: 4
    semaineOccurence: 3
    Agent: OPHÉLIE heures: 7.25 semaine: 4
    semaineOccurence: 4
    Agent: LAURA heures: 2.25 semaine: 4
    semaineOccurence: 5
    Agent: PAULE heures: 13.25 semaine: 4
    semaineOccurence: 6
    Agent: YOANN heures: 19.25 semaine: 4
    semaineOccurence: 7
    Agent: ADELINE heures: 20.0 semaine: 4
    semaineOccurence: 8
    le résultat doit-être :
    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
     
    Agent: CAMILLE heures: 10.5 semaine: 1
    Agent: MURIELLE heures: 2.5 semaine: 1
    Agent: ISABELLE heures: 1.0 semaine: 1
    Agent: OPHÉLIE heures: 3.0 semaine: 1
    Agent: LAURA heures: 3.5 semaine: 1
    Agent: ASSMA heures: 10.25 semaine: 1
    semaine: 1 = 6 fois
    Agent: CAMILLE heures: 4.75 semaine: 2
    Agent: MURIELLE heures: 7.5 semaine: 2
    Agent: ASSMA heures: 5.25 semaine: 2
    Agent: YOANN heures: 4.5 semaine: 2
    Agent: ADELINE heures: 4.0 semaine: 2
    semaine: 2 = 5 fois
     
    Agent: YVANE heures: 0.75 semaine: 3
    Agent: MURIELLE heures: 8.75 semaine: 3
    Agent: ISABELLE heures: 1.0 semaine: 3
    Agent: OPHÉLIE heures: 1.5 semaine: 3
    Agent: PAULE heures: 4.5 semaine: 3
    Agent: YOANN heures: 10.75 semaine: 3
    Agent: ADELINE heures: 8.25 semaine: 3
    semaine: 3 = 7 fois
    Agent: YVANE heures: 9.25 semaine: 4
    Agent: VALÉRIE heures: 2.0 semaine: 4
    Agent: MURIELLE heures: 16.75 semaine: 4
    Agent: ISABELLE heures: 9.25 semaine: 4
    Agent: OPHÉLIE heures: 7.25 semaine: 4
    Agent: LAURA heures: 2.25 semaine: 4
    Agent: PAULE heures: 13.25 semaine: 4
    Agent: YOANN heures: 19.25 semaine: 4
    Agent: ADELINE heures: 20.0 semaine: 4
    semaine: 4 = 9 fois
    Pour CyberChouan:
    Voici ma classe TempsTravaillees:
    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
     
    package Modele;
     
    public class TempsTravaillees {
    	int nbheures;
    	int semaines;
     
    	public TempsTravaillees() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public TempsTravaillees(int nbheures, int semaines) {
    		super();
    		this.nbheures = nbheures;
    		this.semaines = semaines;
    	}
     
    	public int getNbheures() {
    		return nbheures;
    	}
    	public void setNbheures(int nbheures) {
    		this.nbheures = nbheures;
    	}
    	public int getSemaines() {
    		return semaines;
    	}
    	public void setSemaines(int semaines) {
    		this.semaines = semaines;
    	}
     
     
     
    }
    et ma classe Agent:
    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
     
    package Modele;
     
    public class Agent {
    	int num_ligne_agent;
    	String Agent;
    	int Validation;
    	int num_ligne_validation;
     
    	public Agent() {
    	super();
    	}
    	public Agent(int num_ligne_agent, String agent, int validation,
    			int num_ligne_validation) {
    		super();
    		this.num_ligne_agent = num_ligne_agent;
    		Agent = agent;
    		Validation = validation;
    		this.num_ligne_validation = num_ligne_validation;
    	}
    	public int getNum_ligne_agent() {
    		return num_ligne_agent;
    	}
    	public void setNum_ligne_agent(int num_ligne_agent) {
    		this.num_ligne_agent = num_ligne_agent;
    	}
    	public String getAgent() {
    		return Agent;
    	}
    	public void setAgent(String agent) {
    		Agent = agent;
    	}
    	public int getValidation() {
    		return Validation;
    	}
    	public void setValidation(int validation) {
    		Validation = validation;
    	}
    	public int getNum_ligne_validation() {
    		return num_ligne_validation;
    	}
    	public void setNum_ligne_validation(int num_ligne_validation) {
    		this.num_ligne_validation = num_ligne_validation;
    	}
     
    }
    Ensuite, je sèche...

  5. #5
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    J'ai réussi mais ce n'est vraiment pas propre comme code.
    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
     
    System.out.println("");
    		    System.out.println("*******************SEMAINE 1*********************");
     
    		    int nbPrenomsP = tabPrenomP.length;
    		    int nbPrenomsQ = tabPrenomQ.length;
     
    		    //pour ecrire chaque heure pour chaque agent dans le fichier Quimper
    		    System.out.println("tabPrenomQ |  tabPrenomP");
    		    for (int y=0; y<nbPrenomsQ; y++){//pour chaque prénom de Quimper
    		    	if(tabPrenomQ[0][y]!=null){
    		    		int z, f=0;
    		    		repet :for(z = 0; z<nbPrenomsP; z++){//et pour chaque prenom du fichier Projection
    		    			if(tabPrenomP[0][z]!=null){
    		    				if(semaineP[1][f]==1){// si la semaine de l'agent en cours trouvée est = 1
    		    					//System.out.println("semaineP après le if"+semaineP[1][f]);
    		    					System.out.println(tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z);
    		    					if(tabPrenomQ[0][y].equals(tabPrenomP[0][z])){//si le prénom du 1er fichier = prénom du 2ème fichier
    		    						System.out.println("SEMAINE 1: "+tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z+"a fait: "+tabheures[1][z]);
    		    						z=0;//POUR RETESTER LES AGENT DE LA SEMAINE 1
    		    						break repet;
    		    					}
    		    				}
    		    			}
    		    			// si la semaine de l'agent en cours trouvée n'est pas = 1: on passe au prénom suivant de Quimper
    		    			f++;
    		    		}//2eme for
    		    		z=0;
    		    	}//1er if
    		    }//2ème for
    		    System.out.println("*******************SEMAINE 4*********************");
    		    System.out.println("tabPrenomQ |  tabPrenomP");
    		    for (int y=0; y<nbPrenomsQ; y++){//pour chaque prénom de Quimper
    		    	if(tabPrenomQ[0][y]!=null){
    		    		int z, f=0;
    		    		repet :for(z = 0; z<nbPrenomsP; z++){//et pour chaque prenom du fichier Projection
    		    			if(tabPrenomP[0][z]!=null){
    		    				if(semaineP[1][f]==4){// si la semaine de l'agent en cours trouvée est = 1
    		    					//System.out.println("semaineP après le if"+semaineP[1][f]);
    		    					System.out.println(tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z);
    		    					if(tabPrenomQ[0][y].equals(tabPrenomP[0][z])){//si le prénom du 1er fichier = prénom du 2ème fichier
    		    						System.out.println("SEMAINE 1: "+tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z+"a fait: "+tabheures[1][z]);
    		    						z=0;//POUR RETESTER LES AGENT DE LA SEMAINE 1
    		    						break repet;
    		    					}
    		    				}
    		    			}
    		    			// si la semaine de l'agent en cours trouvée n'est pas = 1: on passe au prénom suivant de Quimper
    		    			f++;
    		    		}//2eme for
    		    		z=0;
    		    	}//1er if
    		    }//2ème for
    du coup, j'ai vérifié:
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    *******************SEMAINE 1*********************
    tabPrenomQ |  tabPrenomP
    CAMILLE0   =   CAMILLE0
    SEMAINE 1: CAMILLE0   =   CAMILLE0a fait: 10.5
    YOANN1   =   CAMILLE0
    YOANN1   =   MURIELLE1
    YOANN1   =   ISABELLE2
    YOANN1   =   OPHELIE3
    YOANN1   =   LAURA4
    YOANN1   =   ASSMA5
    ADELINE2   =   CAMILLE0
    ADELINE2   =   MURIELLE1
    ADELINE2   =   ISABELLE2
    ADELINE2   =   OPHELIE3
    ADELINE2   =   LAURA4
    ADELINE2   =   ASSMA5
    VALERIE3   =   CAMILLE0
    VALERIE3   =   MURIELLE1
    VALERIE3   =   ISABELLE2
    VALERIE3   =   OPHELIE3
    VALERIE3   =   LAURA4
    VALERIE3   =   ASSMA5
    YVANE4   =   CAMILLE0
    YVANE4   =   MURIELLE1
    YVANE4   =   ISABELLE2
    YVANE4   =   OPHELIE3
    YVANE4   =   LAURA4
    YVANE4   =   ASSMA5
    ISABELLE5   =   CAMILLE0
    ISABELLE5   =   MURIELLE1
    ISABELLE5   =   ISABELLE2
    SEMAINE 1: ISABELLE5   =   ISABELLE2a fait: 1.0
    MURIELLE6   =   CAMILLE0
    MURIELLE6   =   MURIELLE1
    SEMAINE 1: MURIELLE6   =   MURIELLE1a fait: 2.5
    OPHELIE7   =   CAMILLE0
    OPHELIE7   =   MURIELLE1
    OPHELIE7   =   ISABELLE2
    OPHELIE7   =   OPHELIE3
    SEMAINE 1: OPHELIE7   =   OPHELIE3a fait: 3.0
    LAURA8   =   CAMILLE0
    LAURA8   =   MURIELLE1
    LAURA8   =   ISABELLE2
    LAURA8   =   OPHELIE3
    LAURA8   =   LAURA4
    SEMAINE 1: LAURA8   =   LAURA4a fait: 3.5
    PAULE9   =   CAMILLE0
    PAULE9   =   MURIELLE1
    PAULE9   =   ISABELLE2
    PAULE9   =   OPHELIE3
    PAULE9   =   LAURA4
    PAULE9   =   ASSMA5
    ASSMA10   =   CAMILLE0
    ASSMA10   =   MURIELLE1
    ASSMA10   =   ISABELLE2
    ASSMA10   =   OPHELIE3
    ASSMA10   =   LAURA4
    ASSMA10   =   ASSMA5
    SEMAINE 1: ASSMA10   =   ASSMA5a fait: 10.25
    *******************SEMAINE 4*********************
    tabPrenomQ |  tabPrenomP
    CAMILLE0   =   YVANE18
    CAMILLE0   =   VALERIE19
    CAMILLE0   =   MURIELLE20
    CAMILLE0   =   ISABELLE21
    CAMILLE0   =   OPHELIE22
    CAMILLE0   =   LAURA23
    CAMILLE0   =   PAULE24
    CAMILLE0   =   YOANN25
    CAMILLE0   =   ADELINE26
    YOANN1   =   YVANE18
    YOANN1   =   VALERIE19
    YOANN1   =   MURIELLE20
    YOANN1   =   ISABELLE21
    YOANN1   =   OPHELIE22
    YOANN1   =   LAURA23
    YOANN1   =   PAULE24
    YOANN1   =   YOANN25
    SEMAINE 1: YOANN1   =   YOANN25a fait: 19.25
    ADELINE2   =   YVANE18
    ADELINE2   =   VALERIE19
    ADELINE2   =   MURIELLE20
    ADELINE2   =   ISABELLE21
    ADELINE2   =   OPHELIE22
    ADELINE2   =   LAURA23
    ADELINE2   =   PAULE24
    ADELINE2   =   YOANN25
    ADELINE2   =   ADELINE26
    SEMAINE 1: ADELINE2   =   ADELINE26a fait: 20.0
    VALERIE3   =   YVANE18
    VALERIE3   =   VALERIE19
    SEMAINE 1: VALERIE3   =   VALERIE19a fait: 2.0
    YVANE4   =   YVANE18
    SEMAINE 1: YVANE4   =   YVANE18a fait: 9.25
    ISABELLE5   =   YVANE18
    ISABELLE5   =   VALERIE19
    ISABELLE5   =   MURIELLE20
    ISABELLE5   =   ISABELLE21
    SEMAINE 1: ISABELLE5   =   ISABELLE21a fait: 9.25
    MURIELLE6   =   YVANE18
    MURIELLE6   =   VALERIE19
    MURIELLE6   =   MURIELLE20
    SEMAINE 1: MURIELLE6   =   MURIELLE20a fait: 16.75
    OPHELIE7   =   YVANE18
    OPHELIE7   =   VALERIE19
    OPHELIE7   =   MURIELLE20
    OPHELIE7   =   ISABELLE21
    OPHELIE7   =   OPHELIE22
    SEMAINE 1: OPHELIE7   =   OPHELIE22a fait: 7.25
    LAURA8   =   YVANE18
    LAURA8   =   VALERIE19
    LAURA8   =   MURIELLE20
    LAURA8   =   ISABELLE21
    LAURA8   =   OPHELIE22
    LAURA8   =   LAURA23
    SEMAINE 1: LAURA8   =   LAURA23a fait: 2.25
    PAULE9   =   YVANE18
    PAULE9   =   VALERIE19
    PAULE9   =   MURIELLE20
    PAULE9   =   ISABELLE21
    PAULE9   =   OPHELIE22
    PAULE9   =   LAURA23
    PAULE9   =   PAULE24
    SEMAINE 1: PAULE9   =   PAULE24a fait: 13.25
    ASSMA10   =   YVANE18
    ASSMA10   =   VALERIE19
    ASSMA10   =   MURIELLE20
    ASSMA10   =   ISABELLE21
    ASSMA10   =   OPHELIE22
    ASSMA10   =   LAURA23
    ASSMA10   =   PAULE24
    ASSMA10   =   YOANN25
    ASSMA10   =   ADELINE26
    Les résultats attendu correspondent bien a ce que je retrouve dans mes 2 fichier excel.

    Seul hic:
    Je dois faire ceci pour les 52 semaines de l'année.
    Je suis sur qu'il y'a une solution plus dynamique.

  6. #6
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    En vrai, je n'ai pas réussit !
    Maintenant, j'ai un OutOfMemoryError: Java heap space:
    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
     
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    	at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3039)
    	at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3060)
    	at org.apache.xmlbeans.impl.store.Locale$SaxHandler.startElement(Locale.java:3250)
    	at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.reportStartTag(Piccolo.java:1082)
    	at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseAttributesNS(PiccoloLexer.java:1822)
    	at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseOpenTagNS(PiccoloLexer.java:1521)
    	at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseTagNS(PiccoloLexer.java:1362)
    	at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseXMLNS(PiccoloLexer.java:1293)
    	at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseXML(PiccoloLexer.java:1261)
    	at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:4808)
    	at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
    	at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
    	at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
    	at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3439)
    	at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1270)
    	at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1257)
    	at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
    	at org.openxmlformats.schemas.spreadsheetml.x2006.main.WorksheetDocument$Factory.parse(Unknown Source)
    	at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:142)
    	at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:134)
    	at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:235)
    	at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:190)
    	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:182)
    	at Extraction2.main(Extraction2.java:138)
    que faire ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Ca veut dire que tu dépasses en zone mémoire. Pourquoi n'utilisetu pas une base de données ? ENsuite, tu fais des requetes qui répondont mieux aux questions que tu te poses.

  8. #8
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Je suis arrivée au bout de mon appli en swing.
    J'ai terminé !

    Sauf qu'il y'a cette erreur.
    A vrai dire,mon programme parcours 2 fichiers excel et il boucle pas mal de fois.
    Le premier pour récupérer les prénoms des employés avec:
    - leur heures effectuées.
    - leur point.
    - leur envois.

    Le second fichier, c'est pour alimenter le 2ème fichier qui comportent les même prénoms.

    Le 1er fichier sert à une personne pour faire ses propre calculs.
    Le 2ème fichier sert à une autre personne pour faire des calculs qui est basé sur un autre site dans une autre ville.

    Si vous avez une autre solution, je suis ouvert.

    Pendant ce temps, je vais essayer de factoriser et optimiser au mieux mon code que voici:
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
     
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Iterator;
     
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    import org.apache.poi.openxml4j.opc.OPCPackage;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.FormulaEvaluator;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFCellStyle;
    import org.apache.poi.xssf.usermodel.XSSFDataFormat;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
     
    import Modele.Agent;
     
     
    public class Extraction2 {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		// Variables
    		ArrayList<Agent> listAgent = new ArrayList<Agent>();
    		String nom_agent = null; //pour récupérer les Agents
    		int valid = 0; // pour récupérer le nombre de validation
    		int n_l_valid = 0; // pour récupérer la ligne de chaque validation
    		HSSFCell valid_recupere = null;// pour récupérer les valeurs des validations
    		java.util.Date datextract;
    		DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    		String date_extract;
    		Calendar calendar = Calendar.getInstance();
    		int semaine = 0;
    		int nbfeuille=0;
    		String onglet;
    		String ag;
    		double heures;
    		int semaineDsAnnee;
    		String tabPrenomP[][] = new String [100][100];
    		String tabPrenomQ[][] = new String [100][100];// pour Récupérer les prénoms dans le fichier 'Quimper...'
    		int semaineP[][]= new int [100][100];
    		double tabheures[][] = new double [100][100];
     
    		//But: lire le fichier 'Projection_2012_Eq2.xls' et récupérer pour chaque feuille de semaine (ex:'S04') les agents avec leur heures effectués.
    		//
    		System.out.println("----> on récupere les prénoms des agents avec leur heures effectués dans la semaine.");
    		try {
    		InputStream is = new FileInputStream("C:/Donnees/Aide_Manager/Projection_2012_Eq2.xlsx");//pour ouvrir les fichiers xlsx de 2007
    		OPCPackage opc1=OPCPackage.open(is);
    		XSSFWorkbook wb= new XSSFWorkbook(opc1);
    		XSSFSheet sheet = wb.getSheetAt(0);
    		nbfeuille= wb.getNumberOfSheets();//retourne le nombre de feuille renseigné
    		XSSFRow row = null;
    		XSSFCell cell = null;
    		int n = 0;
    		int m = 0;//
    		for (int g=0; g<nbfeuille; g++){//boucle de parcours des onglets
    			sheet = wb.getSheetAt(g);
    			onglet=sheet.getSheetName();// on récupère le nom de la feuille excel en String
    			if(onglet.startsWith("S")){//si ca commence par "S"
    				//System.out.println("nom onglet= "+onglet);
    				for(int i=2;i<19;i++){//on itère entre la ligne 2 et 19 inclu de la feuille trouvée
    					row=sheet.getRow(i);//on fixe la ligne entre les intervalle données
    			        if(row!=null){
    				       int lastCellNum=row.getLastCellNum(); 
    				          for (Iterator<Cell> cellIt = row.cellIterator(); cellIt.hasNext();){
    				        	  cell = (XSSFCell) cellIt.next();
    				  			  Agent a = new Agent();
    				  			  if(cell.getColumnIndex()==0 && cell !=null){//si on lit la colonne 0
    				  				if(row.getCell(1).getNumericCellValue()!=0){//si la colonne 'heures sxx' est renseigné
    				  				//System.out.println("Prénom: "+row.getCell(0).getStringCellValue()+" heures effectuées: "+row.getCell(1).getNumericCellValue());
    				  				//récupérer le prénom de l'agent + ses heures
    				  				nom_agent=row.getCell(0).getStringCellValue().trim();//on récupère notre agent
    								a.setAgent(nom_agent);//on récupère notre agent dans notre objet
    								a.setHeures(row.getCell(1).getNumericCellValue());
    								a.setSemaineDsAnnee(Integer.parseInt(onglet.substring(1)));
     
    				  				}
    				  			  }
    				  			  listAgent.add(a);
    				  			}
     
    			         }
    			    }
    			  }
    		}
    		//Récupère par semaine: nom_agent +heures
    		int k = 0;//pour passer à la colonne suivante
    		for (Agent agt : listAgent){
    			if(agt.getAgent()!=null){//si l'agent n'est pas null
    				ag=agt.getAgent().toUpperCase();//obtenir L'agent
    				semaineDsAnnee=agt.getSemaineDsAnnee();
    				tabPrenomP[0][k]=ag;
    				semaineP[1][k]=semaineDsAnnee;
    			}
    			if(agt.getHeures()!=0){//si la validation n'est pas null
    				heures=agt.getHeures();//obtenir son heure effectué cette semaine
    				tabheures[1][k]=heures;//assigner les 2 valeurs trouvées
    				k++;//passe à la colonne suivante
    			}
    		}
    		for (int d=0; d<tabPrenomP.length;d++){
    			if(tabPrenomP[0][d] != null || tabPrenomP[1][d]!=null){//si l'une des cellules n'est pas null
    				//afficher l'agent + la validation
    				System.out.println("Agent: "+tabPrenomP[0][d]+" heures: "+tabheures[1][d]+" semaine: "+semaineP[1][d]);
    				//relevé le nombre de fois que l'on a semainex
    				//ex: semaine1= 6, semaine2=5 etc..
    				//cela permettra plus bas de boucler sur le nombre de semaine
    				//et de tester si 
    			}
    		 }
    		System.out.println(" ");
     
    			//But: écrire dans le fichier 'Quimper2_AS_OE_1erT_2012.xlsx' et récupérer pour chaque feuille de semaine (ex:'S04') les agents avec leur heures effectués.
    			// 
    			System.out.println("----> on extrait les prénoms des agents avec leur heures effectués dans la semaine pour chaque prenom égale dans la colonne correspondante à la semaine travaillé.");
    			String prenom_recup = null;
    			String prenom_agent = null;
    			String semaineQuimper;
    			int semaineQ[][] = new int[100][100];
    			InputStream ist = new FileInputStream("C:/Donnees/Aide_Manager/Quimper2_AS_OE_2012.xlsx");
    			OPCPackage opc=OPCPackage.open(ist);
    		    XSSFWorkbook wb2= new XSSFWorkbook(opc);
     
    		    XSSFSheet sheet2 = (XSSFSheet)wb2.getSheet("heures");
    			XSSFRow row2 = null;
    			XSSFCell cell2 = null;
    			//pour ouvrir un .xlsx
    		    FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
    		    evaluator.evaluate(cell2);
    		    XSSFCellStyle cellStyle = null;
    			XSSFDataFormat fmt = wb2.createDataFormat(); //version .xlsx
     
    			//on récupère toutes les semaines trouvée ds le fichier 'Quimper...' de la ligne 1 colonne par colonne 
    		    //lis toutes les colonnes de la ligne 1(ou se trouve les semaines)
    		    System.out.println("-> on récupère toutes les semaines trouvée ds le fichier 'Quimper...' de la ligne 1 colonne par colonne.");
    		    for(int i=2;i<=66;i++){//jusqu'au totaux de décembre
    		    	row2 = sheet2.getRow(1);//récupère la ligne 1
    		    	semaineQuimper = row2.getCell(i).getStringCellValue();// récupère la chaine de la colonne en cours
    				if(semaineQuimper.startsWith("S") && !semaineQuimper.equals("Septembre")){//si ca commence par s et ne commence pas par Septembre
    					semaineQ[0][k]=Integer.parseInt(semaineQuimper.substring(1));//on récupère la semaine
    					semaineQ[1][k]=row2.getCell(i).getColumnIndex();//et aussi la colonne ou elle est présente dans le fichier
    					System.out.println("semaineQ: "+semaineQ[0][k]+" à la colonne: "+semaineQ[1][k]);
    				}
    				k++;
    			}
     
    		    System.out.println("");
    	    	System.out.println("## Récupération des prénoms seulement + la ligne où il se trouve dans le fichier 'Quimper2...'. ##");
    	    	int g = 0;//compteur pour le tableau
    		    for(int i=2;i<=17;i++){
    				row2 = sheet2.getRow(i);
    				cell2 = row2.getCell(1);
    				Agent a = new Agent();
    				if(cell2 != null){
    					prenom_agent=row2.getCell(1).getStringCellValue();//on récupère le nom+prénom de l'agent
    					String[] prenom=prenom_agent.split(" ");
    					int ligne_prenom;
    					if(prenom.length==2){//ex: [nom]espace[prenom]
    						prenom_recup=prenom[1];//recup du prénom
    						ligne_prenom= row2.getRowNum();// récup de la ligne (pour écrire l'heure dans la bonne colonne)
    						a.setAgent(prenom_recup);
    						a.setNum_ligne_agent(ligne_prenom);//recup de la ligne ou il est ds la fichier final
    						//System.out.println("sans un espace ds le nom: "+prenom_recup+" ligne_du_nom: "+ligne_prenom);
    						listAgent.add(a);
    						tabPrenomQ[0][g]=prenom_recup;
    						System.out.println("Avec Nom seul: "+tabPrenomQ[0][g]+"index: "+g);
    						tabPrenomQ[1][g]=String.valueOf(ligne_prenom);
    						g++;
    					}
    					if(prenom.length==3){//ex: [nom]espace[nom]espace[prenom]
    						prenom_recup=prenom[2];
    						ligne_prenom= row2.getRowNum();// récupération de la ligne
    						a.setAgent(prenom_recup);
    						a.setNum_ligne_agent(ligne_prenom);
    						//System.out.println("avec un espace ds le nom: "+prenom_recup+" ligne_du_nom: "+ligne_prenom);
    						listAgent.add(a);
    						tabPrenomQ[0][g]=prenom_recup;
    						System.out.println("Avec un Nom composé de 2 mots: "+tabPrenomQ[0][g]+"index: "+g);
    						tabPrenomQ[1][g]=String.valueOf(ligne_prenom);
    						g++;
    					}
    				}
    		    }
    		    /*System.out.println("");
    		    System.out.println("Liste des prénoms du fichier Quimper.xlsx");
    		    //pour voir tous les prénoms de mon tableau récupérer de Quimper
    		    for (int d=0; d<tabPrenomQ.length;d++){
    				if(tabPrenomQ[0][d] != null || tabPrenomQ[1][d]!=null){//si l'une des cellules n'est pas null
    					//afficher l'agent + la validation
    					System.out.println("Prénom: "+tabPrenomQ[0][d]+" se trouvant à la ligne: "+tabPrenomQ[1][d]);
    				}
    			}*/
    		   /*System.out.println("");
    		    System.out.println("Prénom par semaine de Projection.xlsx");
    		    //pour voir tous les prénoms de mon tableau récupérer de Quimper
    		    for (int d=0; d<tabPrenomP.length;d++){
    				if(tabPrenomP[0][d] != null ){//si l'une des cellules n'est pas null
    					//afficher l'agent + la validation
    					System.out.println("Semaine: "+semaineP[1][d]+"Prénom: "+tabPrenomP[0][d]);
    				}
    			}*/
    		    //^^^^^^^^^^^^^^
    		    System.out.println("");
    		    System.out.println("*******************SEMAINE 1*********************");
    		    int nbPrenomsP = tabPrenomP.length;
    		    int nbPrenomsQ = tabPrenomQ.length;
     
    		    //pour ecrire chaque heure pour chaque agent dans le fichier Quimper
    		    System.out.println("tabPrenomQ |  tabPrenomP");
    		    for (int y=0; y<nbPrenomsQ; y++){//pour chaque prénom de Quimper
    		    	if(tabPrenomQ[0][y]!=null){
    		    		int z, f=0;
    		    		repet :for(z = 0; z<nbPrenomsP; z++){//et pour chaque prenom du fichier Projection
    		    			if(tabPrenomP[0][z]!=null){
    		    				if(semaineP[1][f]==1){// si la semaine de l'agent en cours trouvée est = 1
    		    					//System.out.println("semaineP après le if"+semaineP[1][f]);
    		    					System.out.println(tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z);
    		    					if(tabPrenomQ[0][y].equals(tabPrenomP[0][z])){//si le prénom du 1er fichier = prénom du 2ème fichier
    		    						//écrire ds "Quimper2_AS_OE_2012.xlsx", les heure de "Projection"/onglet dans les bonnes colonnes
    		    						row2 = sheet2.getRow(Integer.parseInt(tabPrenomQ[1][z]));
    		    						cell2 = row2.createCell(2);//on l'écrit à la colonne 2 (semaine 51)
    		    						cell2.setCellValue(tabheures[1][y]/24.0);
    		    						cellStyle = wb2.createCellStyle();
    		    						cellStyle.setDataFormat(fmt.getFormat("hh:MM"));
    		    						cell2.setCellStyle(cellStyle);
    		    						System.out.println("on écrit l'heure trouvée ");
     
    		    						System.out.println("SEMAINE 1: "+tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z+"a fait: "+tabheures[1][z]);
    		    						z=0;//POUR RETESTER LES AGENT DE LA SEMAINE 1
    		    						break repet;
    		    					}
    		    				}
    		    			}
    		    			// si la semaine de l'agent en cours trouvée n'est pas = 1: on passe au prénom suivant de Quimper
    		    			f++;
    		    		}//2eme for
    		    		z=0;
    		    	}//1er if
    		    }//2ème for
    		    System.out.println("*******************SEMAINE 4*********************");
    		    System.out.println("tabPrenomQ |  tabPrenomP");
    		    for (int y=0; y<nbPrenomsQ; y++){//pour chaque prénom de Quimper
    		    	if(tabPrenomQ[0][y]!=null){
    		    		int z, f=0;
    		    		repet :for(z = 0; z<nbPrenomsP; z++){//et pour chaque prenom du fichier Projection
    		    			if(tabPrenomP[0][z]!=null){
    		    				if(semaineP[1][f]==4){// si la semaine de l'agent en cours trouvée est = 1
    		    					//System.out.println("semaineP après le if"+semaineP[1][f]);
    		    					System.out.println(tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z);
    		    					if(tabPrenomQ[0][y].equals(tabPrenomP[0][z])){//si le prénom du 1er fichier = prénom du 2ème fichier
    		    						//
    		    						System.out.println("SEMAINE 4: "+tabPrenomQ[0][y]+y+"   =   "+tabPrenomP[0][z]+z+"a fait: "+tabheures[1][z]);
    		    						z=0;//POUR RETESTER LES AGENT DE LA SEMAINE 1
    		    						break repet;
    		    					}
    		    				}
    		    			}
    		    			// si la semaine de l'agent en cours trouvée n'est pas = 1: on passe au prénom suivant de Quimper
    		    			f++;
    		    		}//2eme for
    		    		z=0;
    		    	}//1er if
    		    }//2ème for
     
    		    // Write the output to a file
    			FileOutputStream fileOut = new FileOutputStream("C:/Donnees/Aide_Manager/Quimper2_AS_OE_1erT 2012.xlsx");
    			wb2.write(fileOut);
    			fileOut.close();
    			//System.out.println("écrire à la bonne ligne l'heure que l'agent à effectué dans Projection");
     
     
    	} catch (FileNotFoundException e){
    		e.printStackTrace();
    	} catch (IOException e) {
    		e.printStackTrace();
    	} catch (InvalidFormatException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    	}
    	//écrire le nombre d'heures dans la colonne de la semaine qu'il a effectué
    	//row2 = sheet2.getRow(Integer.parseInt(tabPrenomQ[1][z]));//on l'écrit à la ligne de l'agent ds le fichier 'Quimper2..'
    //	cell2 = row2.createCell(2);//on l'écrit à la colonne 2 (semaine 51)
    //	cell2.setCellValue(tabheures[1][y]/24.0);
    //	cellStyle = wb2.createCellStyle();
    //	cellStyle.setDataFormat(fmt.getFormat("hh:MM"));
    //	cell2.setCellStyle(cellStyle);
    //	System.out.println("on écrit l'heure trouvée "+tabheures[1][y]);
    //	System.out.println("agent: "+tabPrenomQ[0][z]+" à la ligne: "+Integer.parseInt(tabPrenomQ[1][z]));
    }

  9. #9
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    En faite, j'ai compris une chose !
    L'erreur Java heap space vient du fait que j'ai changer de fichier.
    En effet, ce fichier pèse 1.02mo.

    Tandis que l'ancien fichier fait 324 ko et il n'ya pas de java heap space!

    Comment faire avec un fichier de 1.02mo ?

  10. #10
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    En faite, j'ai compris une chose !
    L'erreur Java heap space vient du fait que j'ai changer de fichier.
    En effet, ce fichier pèse 1.02mo.

    Tandis que l'ancien fichier fait 324 ko et il n'ya pas de java heap space!

    Comment faire avec un fichier de 1.02mo ?
    Créer moins d'objets temporaires et de boucles imbriquées. En résumé, optimiser le code maintenant qu'il fonctionne.

    La solution, après l'optimisation, c'est de jouer sur les paramètres -Xmx, -Xms au lancement du programme.
    Source : Memory and Garbage Collection
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  11. #11
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Dans les options du projet tu peux définir la place mémoire utilisée par la jvm avec l'option -Xmx=128M
    Essaye quand même de voir si c'est réellement l'erreur

  12. #12
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    avec -Xmx512M ca marche.

    Ce programme fera parti de mon appli en Swing.
    Lors de mon déploiement en .jar, cette erreur reviendra-t-elle?

  13. #13
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    En principe le jar se configuré de la même manière. Essaye et tu veras

  14. #14
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Quand je désire l'export en .jar, cela m'affiche ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VM arguments will not be part of the runnable JAR. Arguments can be passed on the command line when launching the JAR
    Et effectivement, cela ne marche pas quand mon .jar est déployer.

    Que faut-il faire ?

  15. #15
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    C'est assez explicite non ? Ces arguments seront à mettre quand tu lanceras ton JAR en ligne de commande pas dans la génération de ce JAR..
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  16. #16
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Avec quoi tu génères ton jar ?
    Quand je le fais sous Netbeans, je n'ai pas ce message et je lance mon jar sans paramètre... Et ça marche !

  17. #17
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Oui mais l'utilisateur final devra cliquer sur le jar et pas ouvrir la console windows.

    je le génère avec eclipse.

  18. #18
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Regarde si dans eclipse il n'y a pas un endroit pour configurer la manière dont il génère le jar. Je ne suis pas spécialiste. Mais si netbeans le fait, il n'y a pas de raison qu'eclipse ne le fasse pas

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2014, 11h01
  2. le nombre de fois que l'on trouve une chaine dans le formulaire
    Par mioke dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/08/2009, 18h05
  3. Nombre de fois où un fichier est téléchargé
    Par landi440 dans le forum Langage
    Réponses: 15
    Dernier message: 23/02/2006, 13h20
  4. Réponses: 2
    Dernier message: 07/01/2006, 00h18
  5. afficher le nombre de fois qu'il y un nombre
    Par laoboy dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 16h39

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