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 :

manipulation de fichier txt


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut manipulation de fichier txt
    bonjour,
    Apres avoir reussi mon script d'optention de mes adresse mac par switch, a vous d'ailleur, il me faudrais realiser un script pour épuré mes fichiers resultat mais je n'ai pas trouver comment supprimé des elements du fichier text dans les faq, par exemple virrer les permieres lignes et virer les 3 premier caracteres de chaque ligne car ce sont des espace...

    merci d'avance de vos reponces

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    sans aller plus loing je tente de trancrire le contenu de mes fichier dans un autre fichier qui resumera tout mais pour l'instan il ne trouve pas le fichier en question voila le 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
    Const ForReading = 1, ForWriting = 2 
    Dim oFso1, f1, ofso2, f2, line1, line2, fso, f
     
    	Set oFso1 = CreateObject("Scripting.FileSystemObject")
    	Set f1 = oFso1.OpenTextFile("c:\fichconf\lsswchantt.txt", ForReading)
    	while Not f1.AtEndOfStream 
    	 line1= f1.ReadLine 
    	  Set oFso2 = CreateObject("Scripting.FileSystemObject")
    	  Set f2 = oFso2.OpenTextFile("c:\TFTP-Root\&line1&", ForReading)
    		 while Not f2.AtEndOfStream 
    			 line2= f2.ReadLine
    			 Set fso = CreateObject("Scripting.FileSystemObject")
    			 Set f = fso.OpenTextFile("c:\fichconf\res.txt", ForWriting,true)
    			 f.write("&line1&;&line2&")
    		 Wend
       Wend
      f.Close
    lorsque je l'execut il ne trouve pas le fichier a la ligne 9 cara 4 et je n'arrive pas a voir ce qui ne va pas... pourant le fichier et bien la dans le dossier specifier...

    merci d'avance

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Citation Envoyé par eozenn Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set f2 = oFso2.OpenTextFile("c:\TFTP-Root\&line1&", ForReading)
    Bonjour

    Il ne trouve pas le fichier c:\TFTP-Root\&line1&. Vous avez du faire une erreur de copier/coller...


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    erf nop apprioris j'avais mal rappeler ma variable j'avais pas mis de " pour encadrer mes variable decidement j'aime po le code
    m'enfin la maintenant il me dis permission refuser a la ligne 13 pourtant le fichier a commencer a etre ecris j'ai la permiere ligne qui s'ecrit bien mais apprioris je dois pas le faire passer a la ligne suivante ou j'ai mal imbriquer mes boucles je n'arrive pas a voir ce qui ne va pas
    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
    Const ForReading = 1, ForWriting = 2 
    Dim oFso1, f1, ofso2, f2, line1, line2, fso, f
     
    	Set oFso1 = CreateObject("Scripting.FileSystemObject")
    	Set f1 = oFso1.OpenTextFile("c:\fichconf\lsswchantt.txt", ForReading)
    	while Not f1.AtEndOfStream 
    	 line1= f1.ReadLine 
    	  Set oFso2 = CreateObject("Scripting.FileSystemObject")
    	  Set f2 = oFso2.OpenTextFile("c:\TFTP-Root\"&line1&"", ForReading)
    		 while Not f2.AtEndOfStream 
    			 line2= f2.ReadLine
    			 Set fso = CreateObject("Scripting.FileSystemObject")
    			 Set f = fso.OpenTextFile("c:\fichconf\res.txt", ForWriting,True)
    			 f.write(""&line1&";"&line2&"")
    		 Wend
       Wend
      f.Close

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Le problème vient de vos ouvertures et fermetures de fichier.

    Vous ouvrez f1 en lecture, f2 en lecture et f en écriture. Ensuite vous fermez seulement f, et pas au bon moment.

    Il faudrait penser à fermer les autres fichiers aussi.

    De plus, vous utilisez 3 objets FileSystemObject (oFso1, oFso2 et Fso) alors qu'un seul suffit...


    Voici ce que j'aurais fait :

    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
    Const ForReading = 1, ForWriting = 2 
    Dim f1, f2, line1, line2, fso, f
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.OpenTextFile("c:\fichconf\lsswchantt.txt", ForReading)
    while Not f1.AtEndOfStream 
    	line1= f1.ReadLine 
    	Set f2 = fso.OpenTextFile("c:\TFTP-Root\"&line1&"", ForReading)
    	while Not f2.AtEndOfStream 
    		line2= f2.ReadLine
    		Set f = fso.OpenTextFile("c:\fichconf\res.txt", ForWriting,True)
    		f.write(""&line1&";"&line2&"")
    		f.Close
    	Wend
    	f2.Close
    Wend
    f1.Close
     
    Set fso = nothing
    Set f = nothing
    Set f1 = nothing
    Set f2 = nothing

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    whaaaa nikel ca commence a resembler a quelque chose a la sortie le fichier res.txt contiens bien tout les info mais il met les ligne a la suite les une des autre alors qu'il faudrais qu'il pass a la ligne apres chaque ligne ajouter... je supose qu'il dois y avoir une petite instruction a ajouter dans la boucle mais je ne la connais pas... sinon merci tt pelin je commence a me dire que je peut y arriver

  7. #7
    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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    erf nop apprioris j'avais mal rappeler ma variable j'avais pas mis de "
    Problème de notion.

    Je t'explique :
    -> chaine de caractère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim toto
    toto = "bloblo.txt"
    -> variable contenant une chaine de caractère.

    Tu voudrais bien ouvrir le fichier blablabloblo.txt alors tu te dit je vais additionner les deux chaines de caractères à l'aide du symbole de concaténation & (qui veut dire et) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set f2 = oFso2.OpenTextFile("c:\TFTP-Root\&line1&", ForReading)
    -> double erreur :
    1. tout ce qui est entre " est considéré comme du texte. Bah oui tu peux avoir envie d'ouvrir le fichier &line1& et non lutiliser la variable
    2. la concaténation se fait ainsi : chaine1 & chaine2 -> litérralement chaine1 à laquelle j'ajoute chaine2.


    Donc pour résumer tu aurais du faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set f2 = oFso2.OpenTextFile("c:\TFTP-Root\" & line1, ForReading)
    Et pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set f2 = oFso2.OpenTextFile("c:\TFTP-Root\"&line1&"", ForReading)
    fonctionne ?
    Parce que tu as fait "c:\TFTP-Root\" & line1 & "", soit chaine1 & chaine2 & chaine3 où chaine3 se trouve être vide, et la chaine2 est la valeur de line1.

    Bref pour remplacer line1 par sa valeur lors d'une concaténation, il ne faut pas l'entourer de & et de ", il faut dire à l'interpréteur que tu veut ajouter la valeur de line1 à la fin d'une chaine de caractère que tu précises avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Ma chaine de caractère"  & Mavariable

    Serge63 pensait que tu avais ces notions de bases expliquées dans des cours trouvable sur le net ou la faq, d'où sa phrase :
    Il ne trouve pas le fichier c:\TFTP-Root\&line1&. Vous avez du faire une erreur de copier/coller...
    Il ne pensait pas que tu pouvais avoir mis délibérément cette ligne de code, car c'est une notion de base dans tout langage de programation.

    Tout cela pour te dire que tu devrais revoir les bases de la programations et du VBS avant de continuer car tu risques de galérer sinon.

    En attendant on va t'aider pour ce script, et donc commence par corriger ton script comme te le dis Serge63.

  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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je fais quelque modif car certaines choses me font mal aux yeux :
    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
    Const ForReading = 1, ForWriting = 2 
    Dim f1, f2, line1, line2, fso, f
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f1 = fso.OpenTextFile("c:\fichconf\lsswchantt.txt", ForReading)
    Set f = fso.OpenTextFile("c:\fichconf\res.txt", ForWriting,True)
    while Not f1.AtEndOfStream 
    	line1 = f1.ReadLine 
    	Set f2 = fso.OpenTextFile("c:\TFTP-Root\" & line1, ForReading)
    	while Not f2.AtEndOfStream 
    		line2 = f2.ReadLine
    		f.write(line1 & ";" & line2)
    	Wend
    	f2.Close
    Wend
    f1.Close
    f.Close
     
    Set fso = nothing
    Set f = nothing
    Set f1 = nothing
    Set f2 = nothing

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire et manipuler un fichier txt
    Par alexagen dans le forum VBScript
    Réponses: 0
    Dernier message: 11/06/2015, 17h15
  2. Manipuler mon fichier txt
    Par manguigs dans le forum VBA Access
    Réponses: 9
    Dernier message: 16/09/2014, 08h07
  3. Manipuler Donnée Fichier txt
    Par Enzymus dans le forum Général Python
    Réponses: 15
    Dernier message: 21/07/2011, 14h11
  4. Réponses: 1
    Dernier message: 21/02/2011, 18h11
  5. manipulation de fichier txt
    Par fabien29 dans le forum MATLAB
    Réponses: 3
    Dernier message: 15/10/2009, 16h58

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