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 PHP Discussion :

Extraire fichier texte vers un tableau


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut Extraire fichier texte vers un tableau
    Bonsoir à tous,

    Je récupère un fichier *.txt contenant :
    01/01/2009
    DURAND
    MARSEILLE
    04/01/2009
    DUPONT
    LYON
    DUFOUR
    LIMOGE
    23/01/2009
    MERCIER
    LILLE

    Je voudrais constituer une table (array)
    Avec cette structure pour une date donnée :
    01/01/2009 | DURAND | MARSEILLE
    04/01/2009 | DUPONT | LYON
    04/01/2009 | DUFOUR | LIMOGE
    23/01/2009 | MERCIER | LILLE

    Je n’ai aucune idée de comment faire cela
    ni trouvé d’exemple traitant ce sujet.

    J’ai pensé au PHP car il gère bien les fichiers.

    Pourriez-vous me donner un conseil ou
    un point de départ pour débuter code ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    enfin pour faire ce que tu veux faire, il n'y a pas besoin d'etre un langage maitre de la manipulation de fichier, une simple lecture ligne a ligne suffit.
    en deux coups de cuillere a pot :
    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
    <?php
    $handle = @fopen("date.txt", "r");
    $i = 0;
    if ($handle) {
        while (!feof($handle)) {
    	$ligne[$i] = fgets($handle);
            if ($i == 2) {
                  $tableau[] = $ligne;
                  $ligne = array();
                  $i = 0;
            }
            else {
                  $i++;
            }
     
        }
        fclose($handle);
    }
    print_r($tableau);
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Ok, merci sabotage

    Et si maintenant, je veut transférer cette table
    dans un tableau HTML ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ah ba si c'est pour manger tout de suite on peut le faire :
    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
    <?php
    $handle = @fopen("date.txt", "r");
    $i = 0;
    echo '<table>';
    if ($handle) {
        while (!feof($handle)) {
    		$i++;
            if ($i == 1) {
    			echo '<tr>';
            }
    		echo '<td>' . fgets($handle) . '</td>';
    		if ($i == 3) {
    			echo '</tr>';
    			$i = 0;
    		}
        }
    		echo '</table>';
        fclose($handle);
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Ok, c'est bon (presque) !

    Quand il y a deux ou plus de RDV le mème jour,
    il faudrai pouvoir renseigner la cellule date
    pour équilibrer le tableau.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La ca devient le probleme de ta source de données : quand il n'y a pas la date, il devrait y avoir une ligne vide.

    En PHP on pourrait reperer que le troisieme element a un format de date ou non mais ca serait de la grosse bidouille.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    Je ne peut pas récupérer les données autrement,
    c'est une sauvegarde automatique et je n'ai pas les sources VB.

    Donc il est impératif de traiter les données de mon côté
    pour insérer une ligne vide quand RDV multiples.

    Si il y a 5 RDV a la mème date, il faudrai insérer 4 lignes
    vides pour équilibrer le tableau.

    Le fin du fin, serai qu'au lieu d'une ligne vide on puisse
    insérer une ligne avec la date du RDV.

    Si c'est la seule façon d'avoir un tableau bien structuré,
    la mouilinette m'intéresserai.

    A vous lire.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    pffff c'est moi qui doit faire tout le boulot :
    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
    <?php
    $handle = @fopen("date.txt", "r");
    $i = 0;
    echo '<table>';
    if ($handle) {
        while (!feof($handle)) {
    	$i++;
    	$ligne =  fgets($handle);
            if ($i == 1) {		
    		if (preg_match('/^([0-9]{2}\/[0-9]{2}\/[0-9]{4})/', $ligne)) {  
    			echo '<tr>';
    		}
    		else {
    			echo '<td>&nbsp;</td>';
    			$i++;
    		}
            }
    		echo '<td>' . $ligne . '</td>';
    		if ($i == 3) {
    			echo '</tr>';
    			$i = 0;
    		}
        }
    		echo '</table>';
        fclose($handle);
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Merci sabotage pour tes conseils,

    Cela tourne très bien

    j'ai néanmoins modifié le code pour remplir les cellules sans dates.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo '<td>'.$mem_ligne.'</td>';
    $i++;
    }
    }
    echo '<td>' . $ligne . '</td>';
     
    if (substr($ligne, -7, 1) == "/")
    	{  		
    	  $mem_ligne = $ligne;		
    	}
    J'ai bien compris le principe, je saurai faire maintenant.
    @ +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/08/2014, 21h18
  2. lecture d'un fichier texte vers un tableau de structure
    Par syki.mail dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/06/2012, 20h38
  3. extraire les données d'un fichier text vers une table access
    Par djatto dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/09/2008, 17h51
  4. Réponses: 3
    Dernier message: 24/05/2008, 18h56
  5. extraire donner fichier texte vers BDD
    Par dr_octopus74 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 29/12/2006, 19h07

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