LECTURE ET AFFICHAGE D'UN FICHIER AVEC DÉLIMITEUR (TYPE CSV AVEC ;).

Signaler
Messages postés
2
Date d'inscription
mardi 21 mai 2002
Statut
Membre
Dernière intervention
27 mai 2002
-
Messages postés
6
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
25 février 2003
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8858-lecture-et-affichage-d-un-fichier-avec-delimiteur-type-csv-avec

Messages postés
6
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
25 février 2003

'---------------------------------------------------
'---- Plus de détails sur le Fichier Schema.ini
'---------------------------------------------------
Si on se connecte par ODBC sur un Fichier .txt ou .CSV, à priorie on a besoin de certains paramétrage, à savoir :

1) le Charset : ANSI 1252, 1256,....
2) Le délimiteur des Champs
3) Si la première ligne contient les noms de colonnes ou pas
4) Le nom du fichier CSV en question
5) Le type des Données que l'ODBC récupère ( Integer, string, decimal,....)
6) Formater certaines chaines : exemple formater les dates

> Ces paramètres ont des valeurs par défaut definis dans la regsitry. Si jamais on veux les changer, on edite un fichier qu'on appelle Schema.ini. L'ODBC, on se connectant au fichier CSV, vérifie l'existance ou pas d'un fichier qui a le nom "schema.in" :
* S'il existe, alors l'ODBC prend les paramètres qui y sont définis,
* Sinon, il prend les valeurs par défaut définies au niveau de la regsitry.

Je vous donne ci-dessous un exemple d'une entrée du fichier schema.ini, que j'ai édité moi même pour paramétrer mon CSV "auteurs.csv" :
[auteurs.CSV] ----- Nom du CSV
Format = TabDelimited ----- Le délimiteur : tabultaion
CharacterSet=1252 ----- Charset : ANSI ( 1252)
ColNameHeader=True ----- Noms de colonnes sur la 1ère ligne
Col1=ID_AUT Integer Width 4
Col2=NOM Char Width 20
Col3=PRENOM Char Width 20
Col4=Date_N Date

Note : Dans le schema.ini, on peut paramétrer 1-n fichiers .CSV (ou .txt). Pour chaque fichier, on peut ainsi définir, par exemple, des délimiteurs différents pour des fichiers différents. A noter que le fichier "Schema.ini" doit exister sur le même répertoir que les fichier quii y sont définies.

A+
Messages postés
329
Date d'inscription
jeudi 3 janvier 2002
Statut
Membre
Dernière intervention
7 octobre 2005

Merci chaieb pour ton exemple. On peut également utiliser la méthode que tu proposes.
Messages postés
6
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
25 février 2003

Je trouve que c'est un peu traditionnelle comme méthode. On peut toustefois se connecter par ODBC ( ODBC pour des Fichier *.txt,*.csv) au fichier CSV. Et manipuler ensuite un recordset, au lieu d'un traitement ligne par ligne de l'objet FILE ("scripting.filesystemobject"). Par exemple on peu utuliser le code suivant pour se connecter via ODBC ua fichier CSV (MonFichier.CSV) :

'--- CSVPATH : le répertoire qui contient "MonFichier.CSV"
'--- STRSOURCEDSN : Chaine de Connexion à notre base de données (MonFichier.CSV)

STRSOURCEDSN = "Provider=Microsoft.Jet.OLEDB.4.0;" & vbCrLf & _
"Data Source=" & CSVPATH & ";" & vbCrLf & _
"Extended Properties=""text;HDR=YES;FMT=Delimited""" & vbCrLf

sReq = "select * from [MonFichier.CSV]"
Set oRst= server.CreateObject("ADODB.Recordset")
Set oRst = oSrcCnx.Execute(sReq)


'Ainsi on manipule oRst pour gérer/afficher /consulter les données de notre CSV.

'--- On Peut même utuliser le fichier Schema.ini pour paramétrer le spérateur de notre CSV, le type des données dedans ( Charset,ColType,ColWidth,....)

J'espère bien que c utile pour vous,

A+
Messages postés
329
Date d'inscription
jeudi 3 janvier 2002
Statut
Membre
Dernière intervention
7 octobre 2005

VBKILLER = VB6BOSS = VBNUL ! La chasse est ouverte !
Merci Nix ;-)))
Afficher les 9 commentaires