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 :

Probleme ligne vide dans un fichier texte ?


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 35
    Points
    35
    Par défaut Probleme ligne vide dans un fichier texte ?
    Bonsoir,


    J' ai un fichier log qui se compose comme suit :


    S:\SIRA-P~1\30-NEE~1\NE5AB8~1\DRAWD\CTRLNOTES7WSK_DRAWDF14.SUC.LOG
    ligne vide
    S:\SIRA-P~1\30-NEE~1\NE5AB8~1\DRAWD\CTRLNOTES7WSK_DRAWDP00.SUC.LOG
    ligne vide
    etc...

    Sur ce fichier log j' ai cree une boucle pour récupérer la chaine DRAWDFxx.SUC sur chacune de ses lignes et réécrire un nouveau fichier log plus lisible.

    Mon probleme est de savoir comment fait-on pour exclure les lignes vides qu' il y entre chaque ligne.

    Dont voici le bout de 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Const ForReading = 1,ForWriting = 2, ForAppending = 8
    Dim ostRep 'Nom du repertoire a parcourir
    Dim oFSO,oFl,of,f,objFSO,objFile
    Dim strDirectory, strFile
    Dim oLine,oMyArray,Chaine,oResultat
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
          ostRep = "c:\log"
          If oFSO.FolderExists(ostRep) Then
             For Each oFl In oFSO.GetFolder(ostRep).Files
              	'MsgBox oFl.Name
    				oFileName = oFl.Name
    					'Ouverture et lecture du fichier a  modifier...
    			    	Set of = oFSO.OpenTextFile(ostRep & "\" & oFileName, ForReading)
    			   		While Not of.AtEndOfStream 
                         oLine = of.ReadLine
    						   'MsgBox oLine
    							If oLine = "" Then 'J' ai essayer ceci mais ca pas l' air de fonctionner
    							   'Do nothing
    								Else
    	                  	oMyArray = Split(oLine,"_")
    								'MsgBox oMyArray(1)
    								Chaine = oMyArray(1)
    								oResultat = Split(Chaine,".")
    								'MsgBox oResultat(0)
    								'MsgBox oResultat(1)
    								' Create the File System Object
    								strDirectory = "c:\Log"
    								strFile = "\NewLog.csv" 
    								Set objFSO = CreateObject("Scripting.FileSystemObject")
                         	If Not objFSO.FileExists(strDirectory & strFile) Then
    									Set objFile = objFSO.CreateTextFile(strDirectory & strFile)
    									ElseIf objFSO.FileExists(strDirectory & strFile) Then
    										Set f = objFSO.OpenTextFile(strDirectory & strFile, ForWriting,True)	
    										f.write(oResultat(0) & ";" & oResultat(1))
    			   						f.Close
    											Else
    								   			MsgBox "Fichier inexistant"
    								End If	
    							End If
    							'WScript.Quit
    						Wend
    			   	of.Close
    			Next
       	End If
    Merci d' avance pour vos réponses.


    Cordialement.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Citation Envoyé par liocifer Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    While Not of.AtEndOfStream 
     oLine = of.ReadLine
         'MsgBox oLine
         If oLine = "" Then 'J' ai essayer ceci mais ca pas l' air de fonctionner
         'Do nothing
    Cela retoune une erreur ? ...

    Si, non, peut-être que la ligne apparemment vide ne l'est pas... ( Msgbox Len(oline) )

    As-tu essayé de faire cela : if Trim(oLine) = "" ?

    Thierry

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    While Not of.AtEndOfStream 
     oLine = of.ReadLine
         'MsgBox oLine
         If oLine = "" Then 'J' ai essayer ceci mais ca pas l' air de fonctionner
         'Do nothing

    Merci à toi tcr54.

    J' ai résolu mon problème en vérifiant la longueur de la chaine.Si elle est égale à 0 on passe à la suite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Len(Trim(oLine)) = 0 Then
    Merci encore.

    @++++

  4. #4
    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 : 43
    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
    Une petite info comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Len(Trim(oLine)) = 0 Then
    Else
    msgbox oLine
    End If
    Si la ligne est vide on ne fait rien sinon on l'affiche (on passe dans le else).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Len(Trim(oLine)) = 0 Then
    msbox oLine
    End If
    Si la ligne n'est pas vide on l'affiche (on passe dans le Then et pas de else).

    Le Not négationne le résultat du test boléen de la condition de ton If.
    C'est plus agréable comme cela non ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

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

Discussions similaires

  1. [LV2009] Supprimer les lignes vides dans un fichier texte
    Par Super2006 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 11/11/2011, 14h32
  2. Supprimer une ligne vide dans un fichier texte
    Par Tibà22 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/04/2011, 16h58
  3. probleme ligne vide dans fichier texte
    Par xeo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/10/2008, 22h07
  4. Réponses: 2
    Dernier message: 18/05/2006, 13h38
  5. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33

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