Parcours de 2 fichiers

Parcours de 2 fichiers - PHP - Programmation

Marsh Posté le 28-02-2012 à 13:57:50    

Bonjour,
 
Je suis coincé sur un script pourtant relativement simple mais j'avoue que je bloque un peu.
 
J'ai 2 fichiers de données extraits d'une BDD 4D, qui hélas ne vérifie pas l'intégrité des data, si bien qu'on se retrouve avec des enregistrements fantômes :
 
routage.txt qui contient des enregistrements de la forme :  
32653;0;1;ptt123;ft;....;0;0
15099;0;1;ptt123;ft;...;0;0
29849;0;1;ptt123;ft;...;0;0
.......
 
et circuit.txt
8704;22001;;autocom pole;01;faux;...;0;0
32653;22099;;autocom A;01;...;0;0
8324,22123;;local licorne;...;0;0
.....
 
J'ai commencé à essayer d'organiser un peu ça :

Citation :


<?php  
$fileroutage=fopen('./routage.txt',"r" );
$filecircuit=fopen('./circuit.txt","r" );
 
while (!feof($filerouage))
{
     $bufferroutage=fgets($fileroutage,4096);
 
     //mise en forme dans un array
     $listingroutage = list($numordre,$paralle,$liaison,$codeS,$codeR,$tete,$amorce,$observ,$pos_rout,$paire,
                                  $MAJ,$numpaire,$etat,$rubrique,$ordre) = explode (";",$bufferroutage);
}
 
while (!feof($filecircuit))
{
     $buffercircuit=fgets($filecircuit,4096);
 
     $listingcircuit= list ($ordinateur,$circuit,$appellation,$un,$adresse,$code_centre,$dispo,
                               $code_societe,$MAJ,$constitution,$nature,$observ,$datelib,$SDA,$numGTR,$averifier,$groupe,
                               $nummanc,$titulaire,$vital,$cservice,$czonegeo,$deux,$trois,$quatre,$cinq) = split (';',$buffercircuit);
}
?>


Le but du jeu est de rechercher, pour chaque ligne du premier fichier, si on trouve dans le 2e fichier la même valeur pour une variable donnée. En l’occurrence, parcourir le fichier routage et à chaque ligne, verifier si on retrouve dans le fichier circuit : $numordre==$ordinateur quelque part dans le fichier circuit ? (Par exemple, dans cet extrait, on voit qu'on retrouve 32653 dans les 2 fichiers) si oui, on écrit la ligne valide routage dans un autre fichier en écriture ou affichage dans le navigateur (je cherche à faire du ménage dans les enregistrements fantômes en fait). J'ai essayé via boucle imbriquée, ou bien de mettre dans 2 tableaux mais je me perds tout seul et ça ne retourne pas ce que je voudrais
 
Si une âme charitable pouvait m'aider, j'en serais ravi :)


Message édité par roswellentongues le 28-02-2012 à 14:01:45
Reply

Marsh Posté le 28-02-2012 à 13:57:50   

Reply

Marsh Posté le 28-02-2012 à 15:51:56    

Moi je dit ça comme ça, mais :
- import fichier 1 dans une table BDD temp1
- import fichier 2 dans une table BDD temp2
- consolidation des données dans une table BDD temp3 via requête SQL
- export fichier via requête SQL
 
Ça sera bien plus simple et rapide que de recoder tout à la main je dirais.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 06-03-2012 à 16:01:32    

Bonjour,
J'ai suivi le conseil de MEI et j'ai importé les données dans 2 tables sous MySQL. Les 2 tables sont faites comme suit :  

Citation :


circuit (numerocircuit,appelation, secours...,#numord)
routage (numord,parallele, liaison...)


 
Je suis coincé sur la requête SQL visant à trouver, dans la table routage, les numord qui n'apparaissent pas dans circuit (en vue de nettoyer les datas donc). J'ai essayé plusieurs choses mais en vain, ça ne sort pas ce que j'aimerais. Auriez vous une solution ? :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed