IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

creation d'un script


Sujet :

VBScript

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut creation d'un script
    salut,

    Je voudrais savoir si avec vbscript il m'est possible de lire dans un fichier .csv et de recreer à partir de ce fichier .csv et en faisant quelque modification un fichier .csv ou .sql.

    Je m'explique j'ai un fichier qui contient ce genre de donnée

    CDCOM,QUAR,2,SMALLINT
    CDDEP,QUAR,1,SMALLINT
    CDPAY,QUAR,4,CHAR
    CDCOM,QUAR,2,SMALLINT
    CDDEP,QUAR,1,SMALLINT
    CDPAY,QUAR,4,CHAR
    FIRSTNAME,PHONE,2,VARCHAR
    LASTNAME,PHONE,1,VARCHAR
    NUMBER,PHONE,4,CHAR
    et je voudrais avoir cela en sortie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    create table QUAR (CDCOM SMALLINT (2), CDDEP  SMALLINT(1),..  ,CDPAY char(4));  
    create table PHONE(FIRSTNAME VARCHAR (2), ...,NUMBER char(4));
    Est ce possible ?

    Merci

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Oui. Regarde du côté de FileSystemObject pour ouvrir, lire et écrire un fichier.

    Et les fonctions split(), left(), right(), mid() ...

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    je vais utiliser cela, je viens de le trouver sur le net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    '<<<<<<< LECTURE d'un fichier >>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'on instance le fichier texte 
    Set Ftxt = FSO.OpenTextFile("Monchemin")
     
    'on parcours chaque ligne du fichier texte
    Do While Not Ftxt.AtEndOfStream
          MaVariable = Ftxt.Readline
          '....... <- votre code ici pour traiter chaque ligne
    Loop
     
    Ftxt.Close
     
     
    '<<<<<<< ECRITURE dans un fichier >>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'on instance le fichier texte dans lequel on veut ecrire
    Set Ftxt =  FSO.createTextFile("Monchemin",true) 'true=ecrase
     
    'On ecrit ce que l'on veut dans le fichier 
    Ftxt.writeline ("Mon texte à écrire ou ma Variable texte")
     
    Ftxt.Close
    MaVariable = Ftxt.Readline
    '....... <- votre code ici pour traiter chaque ligne

    ici je dois ,dans ma variable je dois mettre left(MaVariable ,longueur),mid(MaVariable ,debut,longueur)...
    mais n'est ce pas mieux de mettre tout cela direct ici

    Ftxt.writeline ("left(MaVariable ,longueur),mid(MaVariable ,debut,longueur)...")
    ??

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    j'ai essayer et donc voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    'déclaration file system object
    Dim fso
    'déclaration file system object
    Dim fso1
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'instanciation
    Set FSO1 = CreateObject("Scripting.FileSystemObject")
     
    'on instance le fichier texte 
    Set Ftxt = FSO.OpenTextFile("C:\Documents and Settings\un.txt")
     
    'on instance le fichier texte dans lequel on veut ecrire
    Set Ftxt1 =  FSO1.createTextFile("C:\Documents and Settings\deux.txt",true) 'true=ecrase
     
    'on parcours chaque ligne du fichier texte
    Do While Not Ftxt.AtEndOfStream
          MaVariable = Ftxt.Readline
          '....... <- votre code ici pour traiter chaque ligne
          'On ecrit ce que l'on veut dans le fichier 
          Ftxt1.writeline (left(MaVariable,7))
    Loop
     
    Ftxt.Close
     
     
    '<<<<<<< ECRITURE dans un fichier >>>>>>>>>>>>
    Ftxt1.Close
    mais le probleme
    comment faire pour ne recuperer qu'une seule fois le nom de la table,vu qu'il apparait à chaque ligne et qu'on fait un balayage ligne à ligne ?
    est ce que je dois creer une variable qui contient la valeur precedente et je met une boucle avec if ?

  5. #5
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    A l'intérieur de ta boucle, tu récupères la chaine de caractères qui correspond au nom de ta table, puis tu fais une boucle (à l'intérieur de la boucle principale) tant que la variable qui contient le nom de la table correspond à la chaine que tu lis.

    Si ce n'est pas clair, tu dis.

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    sa correspond à ce que j'ai fait

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    j'utilise ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Do While Not Ftxt.AtEndOfStream
          MaVariable = Ftxt.Readline
     
          if (MaVariable2 <> mid(MaVariable,19,18)) then
          '....... <- votre code ici pour traiter chaque ligne
          'On ecrit ce que l'on veut dans le fichier 
           'Ftxt1.writeline (left(MaVariable,18)+left(MaVariable,18)+mid(MaVariable,50,13)+mid(MaVariable,63,5))
          champ=trim(left(MaVariable,18))
          types=trim(mid(MaVariable,50,13))
          taille=trim(mid(MaVariable,63,5))
          t= t +champ+" "+types+"("+taille+"), "
          else
          'Ftxt1.writeline (left(MaVariable,18)+mid(MaVariable,19,18)+mid(MaVariable,50,13)+mid(MaVariable,63,5))
          nomtable=trim(mid(MaVariable,19,18))
          champ=trim(left(MaVariable,18))
          types=trim(mid(MaVariable,50,13))
          taille=trim(mid(MaVariable,63,5))
          t= t +champ+" "+types+"("+taille+"), "
          end if
          MaVariable2= mid(MaVariable,19,18)
    Loop
    t1=left(t,len(t)-2)
    Ftxt.Close
     
    Ftxt1.writeline ("create table "+nomtable+"("+t1+")")
    'Ftxt1.writeline (t)
     
    Ftxt1.Close
    le probleme est qu'il créer bien un fichier mais incorrect;si j'ai une seule ligne cela fonctionne, mais si j'ai n ligne, j'aurai comme nom de table,celui de la derniere du fichier et comme parametre à cette table la liste des champs de toutes les autre tables .
    comment faire pour eviter cela ?

    merci

Discussions similaires

  1. Creation d'un script "ping d'adresses IP"
    Par playj dans le forum Administration système
    Réponses: 1
    Dernier message: 26/10/2010, 10h33
  2. [Bénévole] creation d'un script php de gestion d'objets
    Par animetheque dans le forum Autres
    Réponses: 0
    Dernier message: 23/10/2010, 07h31
  3. creation d'un script pdf to excel
    Par emilie89 dans le forum Général Python
    Réponses: 1
    Dernier message: 28/09/2009, 15h23
  4. creation de dossier script shell
    Par myriamulrik dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/07/2009, 13h09
  5. [PL/SQL] Création d'un script conditionnel
    Par FABFAB125 dans le forum Oracle
    Réponses: 11
    Dernier message: 20/07/2006, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo