LECTURE ET AFFICHAGE D'UN FICHIER AVEC DÉLIMITEUR (TYPE CSV AVEC ;).
alwaha
Messages postés2Date d'inscriptionmardi 21 mai 2002StatutMembreDernière intervention27 mai 2002
-
27 mai 2002 à 16:37
cs_chaieb
Messages postés6Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention25 février 2003
-
25 févr. 2003 à 16:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_chaieb
Messages postés6Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention25 février 2003 25 févr. 2003 à 16:40
'---------------------------------------------------
'---- 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+
cs_Mercury
Messages postés329Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 octobre 2005 25 févr. 2003 à 15:36
Merci chaieb pour ton exemple. On peut également utiliser la méthode que tu proposes.
cs_chaieb
Messages postés6Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention25 février 2003 25 févr. 2003 à 15:27
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)
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+
cs_Mercury
Messages postés329Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 octobre 2005 8 juin 2002 à 10:27
VBKILLER = VB6BOSS = VBNUL ! La chasse est ouverte !
Merci Nix ;-)))
VB6Boss
Messages postés71Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention15 juin 2002 7 juin 2002 à 22:01
Sirch tu devrais faire un peu de theatre pour qu'on te distigue de ton vrai pseudo:Mercury
Tu me le rappelle etrangement par tes commantaires.
Moi aussi je serais curieux de voir de quoi un fameux Sirch est capable de faire a part de se cacher sous d'autres pseudos.
j'espere que le 10/10 que tu t'es mis te rassurera.
cs_sirch
Messages postés6Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 juin 2002 2 juin 2002 à 09:15
Pas mal du tout, et c'est plutôt utile. J'utilise beaucoup de fichiers avec séparateurs (issus d'exports de données EXCEL). Un bon 10/10 ;-)
SpiderMan=> Au lieu de critiquer juste pour le plaisir, fais des commentaires constructifs. Je pense que tu n'as rien compris au code, d'où ce messages à 2 balles. Je serais curieux de voir de quoi tu es capable. Apparemment de pas grand chose, puisque tu n'as jamais déposé de source.
cs_SpiderMan
Messages postés3Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 1 juin 2002 1 juin 2002 à 19:05
Ca niveau 2 ??!
C meme pas niveau -1. Dommage qu'on peut pas mettre 0/10 comme note. 1/10 et tu devrais etre contant
cs_Mercury
Messages postés329Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 octobre 2005 27 mai 2002 à 17:25
alwaha= > Supprime simplement le code suivant (celà supprime la tentative d'affichage des champs de la première ligne) :
<tr>
<%
'=================================================================
'Création des cellules du tableau pour affichage du nom des champs
For table = 0 To num_imported -1
%>
<td width="<% response.write 100/(num_imported) 'largeur auto de la cellule %>%">
<%= split_text(count) %>
</td>
<%
count =count+1
Next
'=================================================================
%>
</tr>
Ton fichier est-il bien du type : champs_1;champs_2;champs_3;champs_4;
alwaha
Messages postés2Date d'inscriptionmardi 21 mai 2002StatutMembreDernière intervention27 mai 2002 27 mai 2002 à 16:37
quand il n ' y a pas de nom de champ en premiere ligne, ca ne fonctionne pas et voila l'erreur affichee:
Erreur d'exécution Microsoft VBScript error '800a000b'
Division par zéro
25 févr. 2003 à 16:40
'---- 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+
25 févr. 2003 à 15:36
25 févr. 2003 à 15:27
'--- 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+
8 juin 2002 à 10:27
Merci Nix ;-)))
7 juin 2002 à 22:01
Tu me le rappelle etrangement par tes commantaires.
Moi aussi je serais curieux de voir de quoi un fameux Sirch est capable de faire a part de se cacher sous d'autres pseudos.
j'espere que le 10/10 que tu t'es mis te rassurera.
2 juin 2002 à 09:15
SpiderMan=> Au lieu de critiquer juste pour le plaisir, fais des commentaires constructifs. Je pense que tu n'as rien compris au code, d'où ce messages à 2 balles. Je serais curieux de voir de quoi tu es capable. Apparemment de pas grand chose, puisque tu n'as jamais déposé de source.
1 juin 2002 à 19:05
C meme pas niveau -1. Dommage qu'on peut pas mettre 0/10 comme note. 1/10 et tu devrais etre contant
27 mai 2002 à 17:25
<tr>
<%
'=================================================================
'Création des cellules du tableau pour affichage du nom des champs
For table = 0 To num_imported -1
%>
<td width="<% response.write 100/(num_imported) 'largeur auto de la cellule %>%">
<%= split_text(count) %>
</td>
<%
count =count+1
Next
'=================================================================
%>
</tr>
Ton fichier est-il bien du type : champs_1;champs_2;champs_3;champs_4;
27 mai 2002 à 16:37
Erreur d'exécution Microsoft VBScript error '800a000b'
Division par zéro