lilouhama
Messages postés32Date d'inscriptionlundi 30 janvier 2006StatutMembreDernière intervention11 septembre 2008
-
6 mars 2008 à 13:50
BeuheC
Messages postés16Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention15 juin 2010
-
6 mars 2008 à 19:36
bonjour à tous
quelqu'un pourrait-il m'aider car je dois mettre àa en place au plus vite pour ma boite. je débute en vb et je vous demande de l'aide en vous remerciant d'avance
en fait je vous explique je dois importer des fichiers textes (plus de 3 millions d'enregistrements) plus de 3 milllions de lignes les importer dans access puis nettoyer la table une fois importer supprimer des pipes supprimer des blancs et convertur un champ texte en num reel double. sachant que je dois faire ça toutes les 2 semaines. j'aimerai un programme, des modules permettant d'optimiser tt ça.
en fait les etapes seraient les suivantes:
- import des fichiers textes
- suppression des colonnes inutiles
- formatage des montants en numerique
- ajouts des données à une table unique
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 mars 2008 à 15:18
Private Type Enregistrement
S As String
Montant As Single
Npiece As Long
DM As Long
CB As String
End Type
Private Sub Form_Load()
Dim iFile As Integer
Dim sBuffer As String
Dim xsParts() As String
Dim tRec As Enregistrement
iFile = FreeFile
Open "C:\a.txt" For Input As iFile
'# On saute la première ligne
Line Input #iFile, sBuffer
Do Until EOF(iFile)
Line Input #iFile, sBuffer
xsParts = Split(sBuffer, "|")
With tRec
.S = Trim$(xsParts(1))
sBuffer = Trim$(Left$(xsParts(2), Len(xsParts(2)) - 1))
sBuffer = Replace(sBuffer, ".", vbNullString)
sBuffer = Replace(sBuffer, ",", ".")
If Right$(xsParts(2), 1) = "-" Then
.Montant = -Val(sBuffer)
Else
.Montant = Val(sBuffer)
End If
.Npiece = xsParts(3)
.DM = xsParts(4)
.CB = Trim$(xsParts(5))
'# Lecture terminée, insertion dans la base de données
End With
Loop
Close iFile
End Sub
L'idée serait d'automatiser mon traitement des données:
- importer les fichiers textes
- suppression des colonnes inutiles (exemple:champ1, champ2)
- formatage du champ montant en numerique (car ds le fichier texte montant est en texte ( car il y ades points alors qu'access seulemnt en decimal)
- réunir tous les fichiers textes importés une fois nettoyés en une table unique.
et d'y integrer un formulaire pour simplement cliquer sur un bouton et le traitement lancé
merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 6 mars 2008 à 15:26
à noter que le code ci-dessus n'est qu'un exemple. il n'est absolument pas performant (lecture ligne à ligne de gros fichiers => suicide)
ca te sert de base algorithmique de départ, mais il faut lire tes 52 caractères (+2 pour les sauts de ligne) par blocs, pour limiter les opérations de lecture/ecriture
lilouhama
Messages postés32Date d'inscriptionlundi 30 janvier 2006StatutMembreDernière intervention11 septembre 2008 6 mars 2008 à 15:30
merci encore renfield
et comment faire pour supprimer des colonnes du fichier
et aussi creer un formulaire pour qu'il suffise de cliquer pour lancer le traitement