Smoky33
Messages postés8Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 5 juin 2007
-
5 juin 2007 à 09:04
cs_vinz78
Messages postés207Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention24 juillet 2007
-
16 juil. 2007 à 15:00
bonjour tout le monde
on est deux stagiaire en informatique débutant en VBScript.
On voudrait trier un fichier .csv à l'aide d'un script qui par la suite stockerait certaines colonnes dans une base access.
Pour ce qui est de la connexion et du remplissage de la base access on sait comment faire à peu près.
Mais notre gros problème c'est de trier le fichier .csv ( l'option convertir sous excel ) en spécifiant que les informations sont séparés par une virgule et que chaque virgule marque une colonne differente.
Enfin vous voyez à quoi ressemble un fichier .csv ^^
On pense qu'il faut s'aider de variables mais comment dire que la virgule fait office de séparateur ???
On pense qu'il faut aussi faire une boucle pour traiter ligne par ligne le fichier .csv
Merci d'avance pour ceux qui passeront par là !
bonne journée
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 5 juin 2007 à 11:27
Salut,
OK
Dans ce cas orientez vos recherche sur la lecture de fichier en VBScript,
Sur les fonctions (si elle sont dispo en VBSCript) Split, Instr, Mid.
Ainsi que sur les tableaux (pour stocker les valeur qui vous interesse).
Ensuite pour la connection a une base access regarder du cote de ADO et des objet Connection et Recordset.
If Fso.FileExists(Path & Fichier) Then
'-----------------------------------------------------------
'Lecture et mise en variable du contenu du fichier en entrée
'-----------------------------------------------------------
Const ForReading = 1
Dim objTextStream, strtmp, parse, i, j
Set objTextStream = Fso.OpenTextFile(Path & Fichier, ForReading)
Do While Not ObjTextStream.AtEndOfStream
strtmp = split(ObjTextStream.ReadAll, vbLf)
For i=0 to Ubound(strtmp)
strtmp(i) = Replace(strtmp(i),";",",")
parse = Split(strtmp(i),",")
For j=0 To UBound(parse)
MsgBox "La ligne " &Space(5)& i &vbLf& _
strtmp(i) &vbCrLf& "contient " & _
UBound(parse) & " colonne(s)" &vbLf& _
"contenu de la colonne " & j &vbTab& parse(j)
Next
Next
Loop
objTextStream.Close
Set objTextStream = Nothing
End If
Set Fso = Nothing
Smoky33
Messages postés8Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 5 juin 2007 5 juin 2007 à 12:23
ouah
il y a pas mal d'instruction que nous ne connaissions pas !
on la tester avec notre fichier .csv ça marche !
on va maintenant tenter de rentrer tout ça dans une base de donnée access en modifiant le code.
superbe
merci vraiment