Import Plusieur txt dans une table sql

cluster57190 Messages postés 2 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 13 juin 2010 - 8 juin 2010 à 17:49
houtas Messages postés 116 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 29 août 2013 - 9 juin 2010 à 12:13
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

houtas Messages postés 116 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 29 août 2013
8 juin 2010 à 18:11
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
0
cluster57190 Messages postés 2 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 13 juin 2010
8 juin 2010 à 19:03
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
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
8 juin 2010 à 21:52
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.
0
houtas Messages postés 116 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 29 août 2013
9 juin 2010 à 12:13
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
0
Rejoignez-nous