AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Lire fichier CSV

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
NVRB
Très bonne participation
avatar

Messages : 140
Localisation : Vexin Français
Projet Actuel :

MessageSujet: Lire fichier CSV   Dim 24 Fév 2013 - 13: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.

_________________
Projet actuel :


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

Messages : 3325
Localisation : Dans une canonnière wookie.
Projet Actuel :
Things


MessageSujet: Re: Lire fichier CSV   Dim 24 Fév 2013 - 13:48

C'est sympa comme script happy1

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
 
Lire fichier CSV
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]fichier ODT
» Visualisation Génealogie sur Android Téléphone ou Tablette
» A vos claviers les experts pour savoir comment changer une extension de fichier ha11
» Transfert de fichier lourd via Megaupload
» [résolu]impossible de publier un fichier .ged

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