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 :

Supprimer vbCrLf d'une ligne sur deux


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Par défaut Supprimer vbCrLf d'une ligne sur deux
    Bonjour à tous !
    Je débute et les exemples sur le net n'ont rien donnés.

    Voici mon problème :

    2;DIVERS1
    0003
    2;DIVERS2

    2;DIVERS3
    0003

    La ligne du milieu est volontairement vide car c'est un export BDD et le 0003 n'est pas toujours présent. Le fait est que pour 1 seul article, j'ai deux lignes.

    Au début j'ai pensé à remplacer le vbCrLf par un ; mais comme VBS lit entièrement le fichier, le traite et l'écrit, sa me donne un truc du genre :

    2;DIVERS1;0003;2;DIVERS2;2;DIVERS3;0003;

    Or il faudrait que ce soit :

    2;DIVERS1;0003
    2;DIVERS2;
    2;DIVERS3;0003

    Voici mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Const ForReading = 1
    Const ForWriting = 2
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("C:\EXPORT.TXT", ForReading)
     
    strText = objFile.ReadAll
    objFile.Close
    strNewText = Replace(strText, vbLf, ";")
     
    Set objFile = objFSO.OpenTextFile("C:\EXPORT.TXT", ForWriting)
    objFile.WriteLine strNewText
    objFile.Close
    Et là je sèche un peu, je connais mal les fonctions VBS.
    Peut-être faudrait-il lire la ligne, effacer le retour chariot (en y ajoutant un ';') et l'écrire dans le fichier à-la-volée mais je vois pas comment faire.
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Cela peut t'aider du moins je l'espère
    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
    Option Explicit
    	Const ForReading = 1
    	Const ForWriting = 2
    	Dim objFSO, objFile, strText, strNewText, Cnt
    	Set objFSO = CreateObject("Scripting.FileSystemObject")
    	Set objFile = objFSO.OpenTextFile(".\EXPORT.TXT", ForReading)
    	Cnt = 0
    	While Not objFile.AtEndOfStream 
    		 strText = objFile.ReadLine
    		 If Right(strNewText,1)<> ";" And strText <> "" Then
    			strNewText= strNewText + strText + ";"
    		 Else
    			strNewText = strNewText + strText
    		 End If	
    		 Cnt = Cnt +1
    		 If Cnt Mod 2 = 0 Then 
    			If Right(strNewText, 1) = ";" Then
    			   strNewText = Left(strNewText, Len(strNewText) - 1)
    			End If   
    			strNewText= strNewText + VbCrLf
    		 End If
    	WEnd	 
        objFile.Close
    	Set objFile = objFSO.OpenTextFile(".\EXPORT.TXT", ForWriting, True)
    	objFile.WriteLine strNewText
    	objFile.Close
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Par défaut
    Parfait !

    Génial, merci beaucoup

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

Discussions similaires

  1. Supprimer une ligne sur deux feuilles du même classeur
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/03/2011, 12h28
  2. Réponses: 9
    Dernier message: 17/02/2011, 17h14
  3. [Rave 5.0-Delphi 7] Griser une ligne sur deux
    Par Frank dans le forum Rave
    Réponses: 5
    Dernier message: 09/08/2006, 09h03
  4. [Formulaire continu] une ligne sur deux en gris
    Par genius99 dans le forum IHM
    Réponses: 7
    Dernier message: 30/10/2005, 18h52
  5. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 10h54

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