Split

[Résolu]
Signaler
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Rebonjour à tous,

J'ai besoin d'un sacré coup de main SVP. Voici mon problème:
Lorsque j'effectue la lecture de mon fichier CSV ligne par ligne, j'aimerais pouvoir extraire des informations de ma ligne que je vais enregistrer dans ma base de donnée et pouvoir supprimer le reste.

Je sais qu'il faut utiliser la commande Split, il n'y a aucun doute. J'ai trouvé un code sur le site qui pourrait m'aider mais trop compliquer, je n'ai pas réussi à tout décodé (débutante), voici le lien:
http://www.vbfrance.com/codes/SPLIT-AMELIORE-POUR-FICHIERS-CSV-STYLE-001-YOUPI-VA-RAS_20637.aspx

Voici un Exemple de mon fichier CSV ouvert avec txt:
"EndDate;";"11/05/2006 17:27"
"MachEff;";"1.00"

Ce que je souhaite récupérer, c'est 11/05/2006 17:27 et 1.00, puvez-vous m'aidez SVP.
Merci d'avance

Et voici le code pour lire ligne à ligne mon fichier:


Private Function sReadReport(strReportRead As String) As Boolean<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


'test d'ouverture des fichiers CSV


'Renvoi True si les rapports sont ouverts


On Error GoTo sReadReport_error


Dim fsoCsv As New FileSystemObject


Dim fstCsv As TextStream


Dim strLine As String





Set fstCsv = fsoCsv.OpenTextFile(App.Path + "\ShiftReport.csv", 1)


Do Until fstCsv.AtEndOfStream


strLine = fstCsv.ReadLine


If Len(strLine) > 0 Then


'Utilisation de strLine


End If


Loop


fstCsv.Close





Exit Function


sReadReport_error:


StoreIntoFile "Report.rtf", "sReadReport_error:exit procedure. " & vbCrLf & "Nb: " & CStr(Err.Number) & ".Desc: " & Err.Description


sReadReport = False


'Resume Next

End Function

4 réponses

Messages postés
516
Date d'inscription
samedi 3 février 2001
Statut
Modérateur
Dernière intervention
24 octobre 2006
1
Ou alors Set tableau = chaine.Split(chaine, """;")
Il utilisera comme séparateur: ";


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
En effet, Split est tout indiqué.
Par contre, tu auras remarqué, il considère aussi comme séparateur le ; situé à l'intérieur de la 1ere partie de la chaine.
Heureusement, les données qui t'intéressent se situent à la fin de la chaine, donc elles se trouveront dans le dernier élément du tableau créé avec la fonction Split.
Dim TableauTemporaire() As String ' Type String obligatoire avec Split
TableauTemporaire = Split(maChaineLue, ";")
DernièreValeur = TableauTemporaire(UBound(TableauTemporaire))

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Salut jack,

Si je mettais ton code juste après "strLine = fstCsv.ReadLine" est-ce-que cela poserait un problème?
En tout cas merci beaucoup pour ton aide
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Ah, désolé, les piles de ma boule de cristal sont à plat : Je n'avais pas deviné que c'était du .Net
Ce dont je t'ai parlé est du VB6