Import Plusieur txt dans une table sql

Signaler
Messages postés
2
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
13 juin 2010
-
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
-
Bonjour a tous,

Petite présentation de mon problème, j'ai un fichier texte de 275Mo qui contient 140000 étiquettes sans aucun séparateur.

J'ai donc décidé d'isoler chaque étiquettes dans un fichier txt pour cela j'ai fais le petit script (voir plus bas ), il lit le fichier texte ligne par ligne regarde les 9 premiers caractères de la ligne , lorsque les 9 premiers caractères changent il crée un fichiers texte qui a pour nom les 9 caractères + txt et en contenu toute les lignes ayant eu les 9 premiers caractères identique.

Ma question est la suivante, je me retrouve avec mes 140000 étiquettes et j'aimerais les inserer dans une table sql, qui comportera 2 colonnes la première le nom du fichiers txt et la seconde le contenue intégral du fichier txt.
Etant un novice total dans le monde dans des database et de sql server, si quelqu'un aurait une idée ou une solution je suis prenneur.

Merci

Const InputPath = "C:\monfichier.txt"

Dim fso 
Dim buffer 
Dim oldkey 
Dim newkey 
Dim outstream 

Set fso = CreateObject("Scripting.FileSystemObject")

Dim stream 
Set stream = fso.OpenTextFile(InputPath, 1)
Set outstream = Nothing
oldkey = ""

While Not stream.AtEndOfStream
    buffer = stream.ReadLine()
    newkey = Left(buffer, 9)
    
    If newkey <> oldkey Then
        If Not outstream Is Nothing Then
            outstream.Close
            set outstream = Nothing
        End If
    
        Set outstream = fso.CreateTextFile("C:\temp\mon_rep_temp" & newkey & ".txt", True)
        outstream.WriteLine (buffer)
        oldkey = newkey
    Else
        outstream.WriteLine (buffer)
    End If
Wend

If Not outstream Is Nothing Then
    outstream.Close
End If
stream.Close

4 réponses

Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013

Il faut créer ta table dans SQL server et puis importer ton fichier txt, une petite recherche sur google et tu aura pleins d'exemples que tu pourra adapter à ton fichier
Messages postés
2
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
13 juin 2010

Merci pour l'aide mais je ne cherche pas a importer mon fichier texte de 275Mo car il ne comporte aucun élément séparateur qui me permettrais de bien isoler chaque étiquette, voila pourquoi je les decouper en 140000 fichiers texte.

Ma table Sql existe déjà avec mes colonnes mais je me vois mal importer 140000 fichiers manuellement.

En tout cas merci quand même
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Salut cluster57190,

Ton idée de script est assez astucieuse, ce pendant tu l'as mal exploité. A partir du moment ou tu as trouvé un repère dans ton fichier source, tu devrais recrére un ficher au format csv tout simple, avec un spatareur point-virgule ce qui te permetterai en suite de pouvoir l'exploiter comme une source de données et pour finir obtenir le résultat que tu désir dans une table SQL Serveur.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013

Salut si tu a access utilise le pour importer tout dans une seule table,
tu met tes fichiers dans un dossier, avec fso tu récupère le nom du fichier que tu insére chaque fois dans une table avec un boucle sur ta commande d'import, une fois terminé tu export un fichier source et tu l'importe dans sql server