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 :

Lire, comparer et modifier 2 fichiers texte


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Par défaut Lire, comparer et modifier 2 fichiers texte
    Bonjour à tous,

    j'aimerais pouvoir lire un fichier dans un dossier puis lire un fichier dans un autre dossier, comparer les 2 fichiers, mettre à jour le fichier si il trouve une variable qui n'existe pas dans le second...

    Mes fichiers sont construits ainsi :
    $var = "chaine";
    $var2 = "chaine 2";
    $var3 = "";

    or il se peut que $var2 n'existe pas dans le second fichier.

    J'ai fais un petit algo qui lit le premier fichier m'affiche les varibles quil trouve, lit le second fichier et maffiche également les varaibles.
    Cependant avec ma méthode il m'est impossible de savoir si une variable est bien présente dans 2 fichiers.

    Voici un exemple de mon 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
     
    $dir = opendir($chemin_acces);
      if (file_exists($chemin_acces . $fichier)) {
        $fp = fopen ($chemin_acces . $fichier,"r");
        $i = 1;
        while ($line = fgets($fp,4096)) {
          if (substr($line,0,1) == "$") {
            $nwline = explode("=",$line);
            $nwlinetxt = "";
            for ($a=1;$a<sizeof($nwline);$a++) {
              $nwlinetxt .= $nwline[$a];
              if ($a != sizeof($nwline)-1) {
                $nwlinetxt .= "=";
              }
            }
            $nwlinetxt = str_replace('";','',$nwlinetxt);
            $nwlinetxt = str_replace('"','',$nwlinetxt);
            $nwlinetxt = trim($nwlinetxt);
    ?>
      <tr>
        <td width="20%"><b><?php echo $nwline[0]; ?></b></td>
        <td width="80%"><input type="text" value="<?php echo $nwlinetxt; ?>" size="60" id="txt_fr_<?php echo $i; ?>" name="txt_fr_<?php echo $i; ?>"></td>
      </tr>
    <?php
      $i++;
          }
        }
        fclose($fp);
      }
      closedir($dir);
    Comment faire pour lire les 2 fichiers, les comparer et les mettres à jour automatiquement si nécessaire?

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    est ce que la valeur de chaque variable est la meme dns les 2 fichiers ?
    Z.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Par défaut
    Non justement, le problème est qu'une variable peut exister dans un fichier mais pas dans l'autre, il faudrait alros la créer, et elles n'ont pas du tout les mêmes valeurs.

    J'ai pensé faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = array(array(),array());
    remplir ma tab avec dans une dimension le nom de la variable et dans l'autre son contenu, puis de même avec le 2ème fichier puis comparer les 2 tableaux...

  4. #4
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    donc si la variable existe dans fichier 1 et pas dans le 2, tu la crée vide ?

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Par défaut
    Oui j'aimerais la créer vide

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    j'ai crée un fichier test1.txt avec ce contenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var1=toto
    var2=titi
    var3=tutu
    puis un deuxieme nommé test2.txt avec ce contenu
    voici le test :
    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
    <?php
     
    $t1=parse_ini_file("test1.txt");
    $t2=parse_ini_file("test2.txt");
     
    echo "<h1>AVANT</h1>";
    echo "<h3>test1.txt</h3><pre>";
    print_r( $t1 );
    echo "</pre>";
     
    echo "<h3>test2.txt</h3><pre>";
    print_r( $t2 );
    echo "</pre><hr/>";
     
    $tab_result=array_merge($t2, $t1);
    ksort($tab_result);
    echo "<h1>APRES</h1>";
    echo "<h3>tab_result</h3><pre>";
    print_r( $tab_result );
    echo "</pre><hr/>";
     
    ?>
    le résultat dans la pièce jointe
    ça peut donner des idées...

    Images attachées Images attachées  

  7. #7
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    avec ta technique, tu ecrases les valeurs deja existente dans le fichier 2.
    Une solution serait de faire un merge(tab1, tab2) pour ajouter les variables a tab1 et donc au fichier 1, puis merge(tab2, tab1) pour ajouter les variables a tab2 et donc au fichier 2.
    Z.

  8. #8
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Citation Envoyé par Zwiter Voir le message
    avec ta technique, tu ecrases les valeurs deja existente dans le fichier 2.
    ah ouais, clair... j'avais pas bien lu, je m'étais un peu arrêté à ça :
    Citation Envoyé par jojo57
    j'aimerais pouvoir lire un fichier dans un dossier puis lire un fichier dans un autre dossier, comparer les 2 fichiers, mettre à jour le fichier si il trouve une variable qui n'existe pas dans le second...
    mais c'est quand même un bon début de reflexion non ?

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Par défaut
    Merci pour votre aide à tous les 2

    Effectivement ska_root c'est un bon début de réflexion, je vais voir ce que je peux faire et je vous tient au courant

  10. #10
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    utilise un tableau associatif !

Discussions similaires

  1. lire et modifier un fichier texte
    Par developpeur82 dans le forum Entrée/Sortie
    Réponses: 17
    Dernier message: 03/04/2010, 11h25
  2. Ecrire & Lire des énumérés dans un fichier Texte
    Par WebPac dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 11h04
  3. [Forms 6i] Lire le contenu d'un fichier texte
    Par Jihed Amine Maaref dans le forum Forms
    Réponses: 2
    Dernier message: 21/06/2006, 17h45
  4. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 16h41
  5. [BATCH] lire chaque ligne d'un fichier texte
    Par bartmarley dans le forum Windows
    Réponses: 13
    Dernier message: 22/04/2005, 22h01

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