Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1324 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Parser un fichier csv

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parser un fichier csv

n°1356441
weed
Posté le 29-04-2006 à 12:31:05  profilanswer
 

Bonjour j'aimerais bien parser un fichier possédant toujours un meme nombre de champs par enregistrement, par ligne ...  
Chaque champs est séparé par un : (oui, je sais ce n'est pas un csv, coma separated value)
 
par exemple :


champs10:champs20:champs30
champs11:champs21:champs31
champs12:champs22:champs32
champs13:champs23:champs33


 
j'ai essayé d'utiliser fscanf  
 
 

$handle = fopen ("source.txt","r" );
  while ($userinfo = fscanf ($handle, "%s:%s:%s\n" ))  
  {
   list ($name, $profession, $countrycode) = $userinfo;
   //... traitement des données
   echo "<br>".$profession;
  }
  fclose($handle);


 
j'ai suivi l'exemple de http://www.php.net/manual/fr/function.fscanf.php
lorsque le séparateur de champs est une tabulation, cela fonctionne nickel mais lorsque c'est :, cela ne fonctionne plus. :(

mood
Publicité
Posté le 29-04-2006 à 12:31:05  profilanswer
 

n°1356468
sielfried
Posté le 29-04-2006 à 13:42:08  profilanswer
 

fscanf($handle, '%[^:]:%[^:]:%[^\n]')


Message édité par sielfried le 29-04-2006 à 13:50:29

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1356484
weed
Posté le 29-04-2006 à 14:27:07  profilanswer
 

merci mille fois  
 
oula, je pensais pas que l'on pouvait du regex sur un simple fscanf.

n°1356588
Sve@r
Posté le 29-04-2006 à 18:48:20  profilanswer
 

weed a écrit :

Bonjour j'aimerais bien parser un fichier possédant toujours un meme nombre de champs par enregistrement, par ligne ...  
Chaque champs est séparé par un : (oui, je sais ce n'est pas un csv, coma separated value)
 
par exemple :


champs10:champs20:champs30
champs11:champs21:champs31
champs12:champs22:champs32
champs13:champs23:champs33


 
j'ai essayé d'utiliser fscanf  
 
 

$handle = fopen ("source.txt","r" );
  while ($userinfo = fscanf ($handle, "%s:%s:%s\n" ))  
  {
   list ($name, $profession, $countrycode) = $userinfo;
   //... traitement des données
   echo "<br>".$profession;
  }
  fclose($handle);


 
j'ai suivi l'exemple de http://www.php.net/manual/fr/function.fscanf.php
lorsque le séparateur de champs est une tabulation, cela fonctionne nickel mais lorsque c'est :, cela ne fonctionne plus. :(


 

while ($userinfo=fgets($handle))
{
      list($name, $profession, $countrycode)=explode(":", $userinfo);
}



---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1356632
Profil sup​primé
Posté le 29-04-2006 à 23:01:54  answer
 

pourquoi réinventer la roue :
 
http://fr.php.net/fgetcsv

n°1356714
Sve@r
Posté le 30-04-2006 à 12:14:45  profilanswer
 


 
Pas "réinventer", juste "refabriquer" [:aloy]
Parce que pour 3 lignes, ça ne pose pas de pb. Toute la difficulté est de savoir à quel moment il vaut mieux arrêter de coder et passer par un outil particulier
 
PS: Le lien ne fonctionne actuellement pas...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Parser un fichier csv

 

Sujets relatifs
Parser un fichier Atom XML ?[JavaScript/XML] Parser un fichier XML en variable arbre
[java] Parser un fichier XML[expressions régulières] Parser un fichier properties
[Awk] : parser un nom de fichierparser un fichier xml en java
Parser un fichier XML[PyXML] Impossible de parser un fichier avec des accents ...
Parser un fichier... regex ?[shell ou Perl] Parser un fichier et le modifier
Plus de sujets relatifs à : Parser un fichier csv


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR