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 :

comment acceder à un fichier select-ionner des lignes contenant des informations pré


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut comment acceder à un fichier select-ionner des lignes contenant des informations pré
    bonjour à tous
    je suis un nouveau dans la programmation avec vbscript, et la difficulté que je rencontre est la suivante
    j'ai des infos dans un fichier, je veux acceder à ce fichier ,selectionner des lignes précises ,les manipuler et ecrire le résultat dans un autre fichier. le program que j'ai reussi à faire jusqu'a present ouvre le fichier contenant les infos et ne réagi plus , je ne sais donc pas comment continuer pour que ça marche convenablement
    precision: lesdites infos sont des chaines de caracteres
    je suis à ce niveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const forreading=1
    dim fso fichier  
    set fso= createobject("scripting.Filesystemobject")
    set fichier=fso.opentextfile("fichier.txtforreading,true)
    wscript.echo fichier. readall

    je suis a ce niveau mais je ne parviens pas à selectionner les lignes qui m'intéresse pour les manipuler

    quant à écrire les resultats dans l'autre fichier, je compte pouvoir le faire

    merci de me dire comment proceder pour que mon programme marche ,la précision m'aidera

    salut à tous

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    readall lit tout le contenu d'un fichier et te renvois celui-ci.
    Il faut commencer par le stocker dans une variable.
    Ensuite tu pourras manipuler le contenu à l'aide des fonctions de chaines de caractères comme split, right, left, mid, ...

    Tu peux aussi lire ligne par ligne le fichier et traiter chaque ligne.

    Regarde les exemples de la FAQ sur la manipulations des fichiers, ils t'aideront.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    pareil, en général pour faire cà je stock ds une variable, ensuite je la lis ligne par ligne avec .readLine et si la ligne correspond à une ligne à traiter (par un if inStr then), je lance le traitement.

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut je vois mais
    effectivement avec cette readall, il me balance tout le fichier lu sur la face ,ta raison mais je sais pas quelles instructions utiliser pour le stoker dans une variable, si tu peux etre un peu plus précis ça m'aidera d'avantage ,je n'ai besoin que de quelques lignes du texte et quant aux manipulations j saurais m'ensortir

    avec quelle instruction pourais_je stocker le contenu du fichier dans la variable et comment faire pour selectionner les lignes qui m'interesse afin de les traiter

    merci d'avance pour....

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Const ForReading = 1, ForWriting = 2 
    Dim oFso, f
    dim line
     
      Set oFso = CreateObject("Scripting.FileSystemObject")
      Set f = oFso.OpenTextFile("c:\tmp\fichier1.txt", ForReading)
      while Not f.AtEndOfStream 
         line = f.ReadLine
      Wend
      f.Close
    Note qu'ici j'ecrase line à chaque tour de boucle, mais dans la boucle tu peux faire des traitements sur line.
    Tu peux stocker le retour de f.ReadLine dans un tableau, un dictionnaire, ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Const ForReading = 1, ForWriting = 2 
      Dim oFso, f
    dim content
     
      Set oFso = CreateObject("Scripting.FileSystemObject")
      Set f = oFso.OpenTextFile("c:\tmp\fichier1.txt", ForReading)
      content = f.ReadAll
      f.Close
    http://vb.developpez.com/faqvbs/?pag...#fsoLitFichier
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut une solution possible
    Salut!

    Si tu regardes là: http://www.developpez.net/forums/d68...au-dimensions/
    tu pourras trouver quelques idées pour manipuler ton fichier

    J'espère que ça te sera utile

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merci deja pour ce ke tu viens de me montrer, mais à present j'ai une autre situation

    veuillez m'escuser si j'embette un peu , je ne suis pas encore un pro de la programmation je cheche seulement la voie, j'ai bien pris note de tout ce que vous m'avez donné ,mais j'ai du mal à m'ensortir dans les boucles et les test
    pour etre plus claire

    j'ai 10 lignes à traiter dans un fichier de 100 lignes et elles ne se suivent pas dont il faut faire le test de ces lignes avant de les traiter , comment le faire en tenant compte de tout ce que nous avons avant d'ecrire les resultats dans l'autre fichier et si c'est bien le content qui est notre variable de stockage comment faut-il l'utiliser pour faire les manipulations plus précisement

    je suis toujours à l'écoute merci

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ensuite tu pourras manipuler le contenu à l'aide des fonctions de chaines de caractères comme split, right, left, mid, ...
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    salut à tous
    je reviens à nouveau pour le meme pb
    en fait mon programme ne répond toujours pas convenablement j'ai bien declarer mes éléments pour les deux fichiers mais le résultat c'est quoi


    il lit la premiere lign e du fichier d'entrer me l'affiche et attend que j'appuis sur ok pour passer à la ligne suivante ,ce qui voudrait dire que si j'ai 1000 lignes il me faudra cliquer 1000 fois pour terminer la boucle
    et curiueusement , dans le fichier de sortie , il ne copie que la premiere ligne et plus rien d'autres
    voila mon code


    while not entree.AtEndOfstream
    wscrit.Echo entree=readline
    content=entree.readline
    wend
    entree.close

    ça c'est pour la lecture et pour l'ecriture dans l'autre fichier apres déclaration j'ai ceci(dans mon fichier de sortie)
    ici je suppose que la manipulation est effectuee et jai


    sortie.writeline(content)


    pour l'ecriture
    à quel niveau ai-je failli au secours les gars?
    et puis ,comment m'assurer que apres la lecture de chaque ligne je peux la manipuler et l'ecrire enfin dans mon fichier de sortie


    merci d'avance

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscrit.Echo entree=readline
    ?

    Note qu'un entree.readline te lit la ligne et et places à la ligne suivante.

    Donc 2 dans une boucle fait que tu lit les lignes 2 par 2 à chaque tour de boucle.

    Pour afficher la ligne, on la stocke d'abord dans une variable puis on affiche la variable, et non le retour d'un nouvel appelle à readline.

    Ensuite pour ne pas avoir de fenêtre pour le echo, et un affichage dans la console, lance le script avec cscript :
    A la fin du script sache que tu n'écrit que la dernière ligne du fichier.
    Si tu veux concaténer toutes les lignes il faut plutôt faire quelque chose comme cela dans ta boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    line = entree.readline
    wscript.echo line
    content = content & "\n" & line
    wscript.echo content
    Une dernière chose :

    Dernière modification par bbil ; 04/02/2009 à 20h41. Motif: balises de codes ! utiliser le bouton #
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/06/2015, 10h21
  2. [XL-2003] Supprimer des lignes contenant des cellules #N/A
    Par christoff916 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2011, 15h03
  3. Réponses: 8
    Dernier message: 29/04/2008, 13h58
  4. JTable contenant des JComboBox contenant des Images
    Par lex13 dans le forum Composants
    Réponses: 4
    Dernier message: 31/07/2007, 15h57
  5. Traitement des lignes [suppression des lignes vides]
    Par turbo_chess dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2007, 09h16

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