Fichier CSV parser

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fichier CSV parser

Re: Fichier CSV parser

par stealth35 » 24 sept. 2010, 18:02

avec COPY tu peux choisir les columns que tu souhaites insèrer dans un table

Re: Fichier CSV parser

par pitou26140 » 24 sept. 2010, 10:09

Mon fichier csv va me permettre d'insérer des données dans plusieurs tables de ma base de données

Re: Fichier CSV parser

par stealth35 » 24 sept. 2010, 02:50

oui voila
mais pour la même table ?

Re: Fichier CSV parser

par pitou26140 » 23 sept. 2010, 18:53

oui voila

Re: Fichier CSV parser

par stealth35 » 23 sept. 2010, 18:42

le problème c'est que je peux avoir des fichiers csv différents c'est pour ça
diffèrent a quelle niveau ? (pas les mêmes colonnes ?)

Re: Fichier CSV parser

par pitou26140 » 23 sept. 2010, 18:37

le problème c'est que je peux avoir des fichiers csv différents c'est pour ça

Re: Fichier CSV parser

par stealth35 » 23 sept. 2010, 17:27

mais utilise COPY de prosgres pourquoi tu t'embêtes ?

Re: Fichier CSV parser

par pitou26140 » 23 sept. 2010, 12:53

Je viens de m'apercevoir comme mon tableau multidimensionnel ne fonctionne pas.
j'obtiens ça comme réponse à partir du code suivant :
//on ouvre le fichier csv pour lire son contenu
    $fic = fopen("./nabe_carte_agricole.csv",'r');
    

    //tantque le tableau data est composé du fichier csv
    while ($data = fgetcsv($fic,1024, ";")) {
        //on compte le nombre de lignes dans le tableau
        $num = count($data);
        // on fait un parcours du tableau ligne par ligne
        for ( $c=0; $c<$num; $c++ )
        {
            //expressions régulières
            //si on a un # au début de la ligne, on poursuit la boucle
            if(preg_match('`^#`',$data[$c])) continue;
            //si on a un espace en début de ligne on poursuit la boucle
            if(preg_match('`^[[:space:]]`',$data[$c])) continue;
            //pour chaque ligne on sépare les éléments
            $tableau[$i] = explode('"',$data[$c]);
            print_r($tableau[$i]);
Réponse :
Array ( [0] => Attribut [1] => UC [2] => [3] => Intitule [4] => [5] => Couleur [6] => [7] => Echelle min [8] => [9] => Echelle max [10] => [11] => Nomenclature [12] => [13] => Classes [14] => )
Array ( [0] => Couleur [1] => Grande classe de sols [2] => ) 
Array ( [0] => Couleur [1] => 700 [2] => [3] => Sols minéraux bruts ( lithosols/régosols) [4] => [5] => fee0e0 [6] => [7] => SMB [8] => )

Re: Fichier CSV parser

par pitou26140 » 23 sept. 2010, 10:19

A partir du fichier csv, je dois extraire les données classées en un tableau multimensionnel, les intégrés dans un tableau associatif pour etre par la suite intégré dans une base de données postgres.

Pour l'instant j'ai créé un tableau multimensionnel et apres je suis bloqué.

voici mon code :
	$i=0;
	$tableau = array();
	//on ouvre le fichier csv pour lire son contenu
	$fic = fopen("./fichier.csv",'r');
	//je traite les éléments de la premieres lignes	
	while ($data = fgetcsv($fic,1024, ";")) {
		$num = count($data);
		for ( $c=0; $c<$num; $c++ )
		{
			//expressions régulières
			if(preg_match('`^#`',$data[$c])) continue;
			if(preg_match('`^[[:space:]]`',$data[$c])) continue;
			$tableau[$c][$i] = explode('"',$data[$c]);
			//on met dans un tableau associatif les valeurs correspondant à leurs colonnes
			//$tableau_classes[]=array("uc"=>$tableau[0][$i],"intitule"=>$tableau[1][$i],"couleur"=>$tableau[2][$i]);
			
			
			//print_r($tableau[$c][$j]);

			

		}
	$i++;	
	}

Re: Fichier CSV parser

par stealth35 » 22 sept. 2010, 16:51

ça pourra m'aider mais bref comment créé un tableau multidimensionnel à partir de ce fichier csv
pour l'insérer dans ta base après ?

Re: Fichier CSV parser

par pitou26140 » 22 sept. 2010, 09:46

ça pourra m'aider mais bref comment créé un tableau multidimensionnel à partir de ce fichier csv

Re: Fichier CSV parser

par stealth35 » 21 sept. 2010, 18:16

tu peux direct le faire sans avoir besoin de faire un tableau et compagnie :wink:
COPY table FROM '/chemin/vers/truc.csv' WITH CSV;

Fichier CSV parser

par pitou26140 » 21 sept. 2010, 17:40

Bonjour,

Je voudrais créer un tableau associatif à partir d'un fichier CSV de la forme :

Attribut UC Intitule Couleur Echelle min Echelle max Nomenclature Classes
Couleur Grande classe de sols
Couleur 700 Sols minéraux bruts ( lithosols/régosols) fee0e0 SMB
Couleur 701 Sols peu évolués d'apport fea4a4 SPEA
Couleur 702 rendzines fe4141 REN
Couleur 703 Sols bruns calcaires e00000 SBC
Couleur 705 Vertisols 630000 VER
Couleur 706 Sols isohumiques a21b87 SIH
Couleur 707 Sols brunifiès a21b87 SBR
Couleur 708 Sols fersialitiques b07145 SFE
Couleur 709 Sols Halomorphes 44974 SHA
Couleur 710 Sols hydromorphes bb5631 SHY
Couleur 711 Unités complexes de sol 820e2e UCS
Couleur 712 Zones urbaines a5a5a5 ZU
Couleur 713 Plans d'eau (barrages, lacs, etc…) 14a4ab PLE
Couleur 714 Lits d'oueds 00ffff O


afin de créer un tableau associatif de type :

Field Content
Attribut Couleur
UC 706
Intitule Sols isohumiques
Couleur a21b87
Echelle min
Echelle max
Nomenclature SIH
Classes

pouvez vous m'aider à créer ce tableau s'il vous plait c pour insérer dans un base de données postgres