Invité Invité
| Sujet: Lire fichier CSV Dim 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énom | Age | Nicolas | 22 | Sébastien; Pascal | 50 | "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 |
|
Mass *Excellent utilisateur*
Messages : 3351 Localisation : Dans une canonnière wookie. Projet Actuel : Monter des trucs et des machins
| Sujet: Re: Lire fichier CSV Dim 24 Fév 2013 - 14:48 | |
| C'est sympa comme script |
|