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

EDI, CMS, Outils, Scripts et API PHP Discussion :

tableaux dynamiques ds des boucles FOR imbriquees


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Points : 48
    Points
    48
    Par défaut tableaux dynamiques ds des boucles FOR imbriquees
    Bonsoir tout le monde

    je comprends pas du tout d' ou vient mon probleme. le script est simple.

    je vous explique le concept

    - lister les fichiers d' un repertoire >> pas de probleme
    - executer certaines actions ds une boucle for en fonction du nbre de fichiers

    Je ne vous mets que la boucle for, la premiere partie du script ne pose aucun probleme.

    ce que je veux faire:
    creer pour chaque fichier présent ds le repertoire 4 tableaux.
    le nom de chacun de ces tableaux est générique:
    1° tableau= $tableau_fichier_source[$i] >> doit contenir tout le fichier source
    2° tableau= $tableau_fichier_source_entete[$i] >> doit contenir l' entete
    3° tableau= $tableau_fichier_source_mvts[$i] >> doit contenir un nbre variable de L propre au fichier
    4° tableau= $tableau_fichier_source_resultat[$i] >> doit contenir une seule L

    tout se passe au niveau de la creation de ces tableaux et/ou de la seconde boucle FOR (imbriquée ds la 1°).
    je ne sais pas si je nomme correctement mes tableaux MAIS ds la seconde boucle FOR, je remplis mon 1° tableau et je l' affiche avec print_r (il me l' affiche autant de fois qu' il y a de L ds le fichier (normal).
    Par contre lorsuqe je réitere l' operation pour remplir mes 2°, 3° et 4° tableaux, là il m' affiche des valeurs telles: 'A' ou 'Array()'

    pourriez vous m' expliquer d' ou vient le probleme s' il vous plait.

    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
     
    // # [PREMIERE BOUCLE FOR] ###############################################
    	// BOUCLE QUI TRAVAILLE SUR TOUS LES FICHIERS PGN
    	for($i= 0; $i< $nbre_fichiers; $i++) {
     
    		// ouverture de chacun des fichiers en lecture seule
    		// je rajoute 1 car le 1° fichier du repertoire débute à l' indice 1
    		$fichier[$i]= "parties_pgn/partie_".($i+ 1).".pgn";
     
    		// test d' existence des fichiers
    		if(file_exists($fichier[$i])) {
     
    			// ouverture de chaque fichier pgn
    			$fichier_ouvert[$i]= fopen($fichier[$i], "r");
     
    			// lecture de chaque fichier pgn
    			$fichier_lecture[$i]= file($fichier[$i]);
     
    			// on compte les L de chacun des fichiers pgn
    			$fichier_nbre_L[$i]= count($fichier_lecture[$i]);
    			echo '<br>'.$fichier[$i].' possede: '.$fichier_nbre_L[$i].' lignes. <br>';
     
    			// on cree 1 tableau pour chacun des fichiers sources
    			// but:
    			// contenir tout le fichier source
    			$tab_fichier_source[$i]= array();
     
     
    			// on cree 3 tableaux pour chacun des fichiers sources
    			// EN DEHORS DE LA DEUXIEME BOUCLE FOR POUR POUVOIR Y ACCEDER
    			// but:
    			// $tab_fichier_source_entete[$i]	>> pour stocker les L débutant par "["
    			// $tab_fichier_source_mvts[$i]		>> pour stocker la liste des mvts des 2 joueurs
    			// $tab_fichier_source_resultat[$i]	>> pour stocker le resultat de la partie
    			$tab_fichier_source_entete[$i]= array();
    			$tab_fichier_source_mvts[$i]= array();
    			$tab_fichier_source_resultat[$i]= array();
     
    			for($j= 0; $j< $fichier_nbre_L[$i]; $j++) {
    				// on stocke chacune des L de chacun des fichiers pgn
    				// ds le $tab_fichier_source[$i] prevu à cet effet
    				array_push($tab_fichier_source[$i], $fichier_lecture[$i]);
     
    				// 1) >> définition de la recherche qui porte sur le 1° caractere de chaque L de chaque fichier pgn
    				$recherche[$j]= substr($tab_fichier_source[$i], 0, 1);
    				//echo $recherche[$j];
     
    				// tests d' égalité
    				if($recherche[$j]=== "[") {
    					array_push($tab_fichier_source_entete[$i], $tab_fichier[$i]);
    				}/*
    				else if($recherche[$i]!= "[" && $recherche[$i]!= "{" && $recherche[$i]!= "\n") {
    					array_push($tab_fichier_source_mvts[$i], $tab_fichier_source[$i]);
    				}
    				else if($recherche[$i]=== "{") {
    					array_push($tab_fichier_source_resultat[$i], $tab_fichier_source[$i]);
    				}*/
    			}
    		}
    	}
    	// # [/ PREMIERE BOUCLE FOR] ###########################################
    Merci bien pour l' aide
    areuh_fr

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    salut,

    bon j' ai trouvé,

    en fait c' etait au niveau de ce que j' ajoutais.

    voilà la bonne instruction
    array_push($tab_fichier_source[$i], $fichier_lecture[$i][$j]);

    et voilà la définiton de le recherche
    $recherche[$i][$j]= substr($tab_fichier_source[$i][$j], 0, 1);

    je vous dis a plus tard.
    areuh_fr

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    euh désolé mais y' a un truc que je capte pas

    je remets le code corrigé

    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
     
    // # [PREMIERE BOUCLE FOR] ###############################################
    	// BOUCLE QUI TRAVAILLE SUR TOUS LES FICHIERS PGN
    	for($i= 0; $i< $nbre_fichiers; $i++) {
     
    		// ouverture de chacun des fichiers en lecture seule
    		// je rajoute 1 car le 1° fichier du repertoire débute à l' indice 1
    		$fichier[$i]= "parties_pgn/partie_".($i+ 1).".pgn";
     
    		// test d' existence des fichiers
    		if(file_exists($fichier[$i])) {
     
    			// ouverture de chaque fichier pgn
    			$fichier_ouvert[$i]= fopen($fichier[$i], "r");
     
    			// lecture de chaque fichier pgn
    			$fichier_lecture[$i]= file($fichier[$i]);
     
    			// on compte les L de chacun des fichiers pgn
    			$fichier_nbre_L[$i]= count($fichier_lecture[$i]);
    			echo '<br>'.$fichier[$i].' possede: '.$fichier_nbre_L[$i].' lignes. <br>';
     
    			// on cree 1 tableau pour chacun des fichiers sources
    			// but:
    			// contenir tout le fichier source
    			$tab_fichier_source[$i]= array();
     
     
    			// on cree 3 tableaux pour chacun des fichiers sources
    			// EN DEHORS DE LA DEUXIEME BOUCLE FOR POUR POUVOIR Y ACCEDER
    			// but:
    			// $tab_fichier_source_entete[$i]	>> pour stocker les L débutant par "["
    			// $tab_fichier_source_mvts[$i]		>> pour stocker la liste des mvts des 2 joueurs
    			// $tab_fichier_source_resultat[$i]	>> pour stocker le resultat de la partie
    			$tab_fichier_source_entete[$i]= array();
    			$tab_fichier_source_mvts[$i]= array();
    			$tab_fichier_source_resultat[$i]= array();
     
    			for($j= 0; $j< $fichier_nbre_L[$i]; $j++) {
    				// on stocke chacune des L de chacun des fichiers pgn
    				// ds le $tab_fichier_source[$i] prevu à cet effet
    				array_push($tab_fichier_source[$i], $fichier_lecture[$i][$j]);
    				// echo $tab_fichier_source[$i][$j].'<br>';
     
    				// 1) >> définition de la recherche qui porte sur le 1° caractere de chaque L de chaque fichier pgn
    				$recherche[$i][$j]= substr($tab_fichier_source[$i][$j], 0, 1);
    				// echo $recherche[$i][$j];
     
    				// tests d' égalité				
    				if($recherche[$i][$j]=== "[") {
    					array_push($tab_fichier_source_entete[$i], $tab_fichier_source[$i][$j]);
    					  // echo $tab_fichier_source_entete[$i][$j].'<br>';
    				}
     
    				else if($recherche[$i][$j]!= "[" && $recherche[$i][$j]!= "{" && $recherche[$i][$j]!= "\n") {
    					array_push($tab_fichier_source_mvts[$i], $tab_fichier_source[$i][$j]);
    					// N AFFICHE RIEN MAIS LES VALEURS ST BIEN ENREGISTREES
    					// echo $tab_fichier_source_mvts[$i][$j].'<br>';
     
    				}
     
    				 else if($recherche[$i][$j]=== "{") {
    					array_push($tab_fichier_source_resultat[$i], $tab_fichier_source[$i][$j]);
    					// N AFFICHE RIEN MAIS LA VALEUR EST BIEN ENREGISTREE
    					// echo $tab_fichier_source_resultat[$i][$j].'<br>';
    				}
    			} // print_r(array_values($tab_fichier_source_mvts[$i]));
    		}
    	}
    	// # [/ PREMIERE BOUCLE FOR] ###########################################
    toujours ds la seconde boucle FOR.
    C' est au niveau de l' affichage que je foire.
    Le 1° array_push fonctionne, son echo aussi.

    Les 2 autres array_push fonctionnent mais pas leur echo respectif, par contre print_r(array_values)) fonctionne lui.

    Vous pouvez m' expliquer SVP

    je vais enlever le tag résolu temporairement

    Merci
    areuh_fr

Discussions similaires

  1. Utilisation des boucles for dans les tableaux VBA
    Par vodulci09 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2012, 21h42
  2. Utilisations des tableaux en sortie de boucle for
    Par TSI06 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 28/06/2010, 21h24
  3. Optimisation des boucles for
    Par Kikouyou1080 dans le forum Général Python
    Réponses: 5
    Dernier message: 04/06/2010, 18h16
  4. Utilisation des boucles for
    Par _Michel dans le forum Débuter
    Réponses: 6
    Dernier message: 23/09/2008, 12h49
  5. [Tableaux] Utilisation FPDF et boucle for
    Par Flynt dans le forum Langage
    Réponses: 3
    Dernier message: 27/02/2008, 10h20

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