AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

 

 Lire fichier CSV

Aller en bas 
AuteurMessage
Invité
Invité




Lire fichier CSV Empty
MessageSujet: Lire fichier CSV   Lire fichier CSV EmptyDim 24 Fév 2013 - 14:22

Bonjour,
Je ne sais pas si ce script a été déjà codé, mais je publie ce script de ma création.

Fonction: Lire le contenu d'un fichier CSV.

Pour ceux qui ignore ce qu'est un fichier CSV, je les redirige vers CSV (Wikipédia).

CSV(fichier,ligne,colonne);
fichier: Chemin du fichier CSV à lire.
ligne: numéro de la ligne à lire (1 est la première ligne).
colonne: numéro de la colonne à lire (1 est la première colonne).

Par défaut, le caractère séparateur est ; et le caractère qui défini un champs texte est ".

Vous pouvez modifier le symbole séparateur en changent la variable csv_sep et modifier le symbole  qui défini un champs texte en changent la variable csv_texte.

La fonction retourne la valeur lue ou retourne la valeur contenue dans la variable csv_erreur s'il y a une erreur (par défaut "***ERREUR***").

Il faut doubler le symbole " si vous voulez afficher ce caractère dans le tableau.

Si le contenu d'une cellule contient un caractère séparateur (par défaut le ;), il faut mettre des " pour éviter de confondre le caractère séparateur en une lettre du texte.


Code:
/*
csv_lecture(fichier,ligne,colonne);

arg0= fichier csv
arg1= numero de ligne (1 est la première ligne)
arg2= numero de colonne (1 est la première colonne)

return:
"***ERREUR***" = erreur
autres...= valeur lue
*/

//definition des variables internes
var csv_sep, csv_texte, csv_erreur;
csv_sep=";"; //caractère de séparation
csv_texte='"'; //caractère pour definir un texte
csv_erreur="***ERREUR***"; //valeur retournée si erreur

var csv_numligne, csv_numcolonne,csv_idfichier;
csv_numligne=argument1; csv_numcolonne=argument2;

var csv_i,csv_j,csv_ligne,csv_lignebis,csv_cara,csv_zonetexte,csv_etat;
csv_zonetexte=0;

//ouverture du fichier
if !file_exists(argument0) { return csv_erreur; }
csv_idfichier=file_text_open_read(argument0);
if csv_idfichier==-1 { return csv_erreur; }

//recherche de la ligne
for (csv_i=1; csv_i!=csv_numligne; csv_i+=1)
{
  if file_text_eof(csv_idfichier)
    {
      return csv_erreur;
    }
  file_text_readln(csv_idfichier);
}

//lecture ligne et fermeture fichier
csv_ligne=file_text_read_string(csv_idfichier);
file_text_close(csv_idfichier);

//
csv_i=1; csv_j=1; csv_etat=false;
csv_lignebis=csv_ligne;

//suppression début
for (csv_j=1;csv_j<csv_numcolonne;csv_ligne=csv_lignebis)
{
csv_cara=string_char_at(csv_ligne,1);
csv_lignebis=string_delete(csv_ligne,1,1);
if csv_cara==csv_texte { csv_zonetexte=1-csv_zonetexte; }
if (csv_cara==csv_sep)&&!(csv_zonetexte) { csv_j+=1; }
if (csv_cara=="") { csv_j+=1; }
csv_ligne=csv_lignebis;
}

//suppression fin
csv_i=1;
while !csv_etat
{
csv_cara=string_char_at(csv_ligne,csv_i);
if csv_cara==csv_sep
{if 0==frac(string_count(csv_texte,string_copy(csv_ligne,1,csv_i))/2){
    csv_etat=true; csv_i-=2;
}}
if csv_cara==""
{
    csv_etat=true;
}
csv_i+=1;
}
csv_lignebis=string_copy(csv_ligne,1,csv_i);

//conversion
csv_ligne=string_replace_all(csv_lignebis,csv_texte+csv_texte,chr(29));
csv_lignebis=string_replace_all(csv_ligne,csv_texte,"");
csv_ligne=string_replace_all(csv_lignebis,chr(29),csv_texte);

//fin
return csv_ligne;


Exemple fichier CSV:
PrénomAge
Nicolas22
Sébastien; Pascal50
"Dédé"10
Fichier CSV:
Code:
Prénom;Age
Nicolas;22
"Sébastien; Pascal";50
"""Dédé""";10

La fonction CSV("fichier.csv",3,1) retourne Sébastien; Pascal.


Dernière édition par NVR le Sam 3 Aoû 2013 - 18:35, édité 2 fois
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Lire fichier CSV Empty
MessageSujet: Re: Lire fichier CSV   Lire fichier CSV EmptyDim 24 Fév 2013 - 14:48

C'est sympa comme script happy1

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
 
Lire fichier CSV
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Lire/Ecrire dans un fichier
» Lire un fichier bmp
» Lire / Ecrire - Fichier XML
» [script] Lire la hauteur et la largeur d'un fichier gif
» Lire du GML dans un fichier texte

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: