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 :

Récupérer une ligne sans chercher de chaines spécifiques ?


Sujet :

VBScript

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut Récupérer une ligne sans chercher de chaines spécifiques ?
    Bonjour,


    J' aimerais savoir comment récupérer par exemple la ligne 18 du fichier log suivant sans chercher de chaines spécifiques :

    1 Informations concernant les fichiers modifiés



    4 Autocad.au3 Liocifer E99324C67E99403 25/03/2008
    5 Filezilla3.au3 Liocifer E99324C67E99403 25/03/2008
    6 Access.au3 Liocifer E99324C67E99403 25/03/2008
    7 Belem.au3 Liocifer E99324C67E99403 25/03/2008
    8 Project.au3 Liocifer E99324C67E99403 25/03/2008
    9 Visio.au3 Liocifer E99324C67E99403 25/03/2008

    11 ----------- ----------- ----------- ----------- -----------

    13 Autocad.au3 Liocifer E99324C67E99403 23/06/2008
    14 Filezilla3.au3 Liocifer E99324C67E99403 23/06/2008
    15 Access.au3 Liocifer E99324C67E99403 23/06/2008
    16 Belem.au3 Liocifer E99324C67E99403 23/06/2008
    17 Project.au3 Liocifer E99324C67E99403 23/06/2008
    18 Visio.au3 Liocifer E99324C67E99403 23/06/2008

    20----------- ----------- ----------- ----------- -----------


    En fait lire le contenu du fichier - 3 lignes, je tiens à utiliser toujours cette méthode pour pouvoir comparer la date de la dernière ligne avec celle de la date du jour pour que mon script s' execute.

    J' espère avoir été assez explicite.

    Merci d' avance pour toutes vos réponses.


    Cordialement.

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    si la structure de ton fichier est toujours celle-ci tu peux faire ceci :
    Lors de ton parcours du fichier ligne par ligne, tu utilises la Fonction Split avec en paramètre un espace (entre ") et tu stocke le retour de la fonction dans un tableau.
    Puis tu compares la date récupérer à celle du script grâce aux fonctions d'exploitation des dates de VBS.

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut
    Re,


    C' est ce que j' ai déjà fait et ça fonctionne nickel.Mais moi je cherche un moyen de traiter que la derniere ligne de ce fichier log peu importe sa longueur et ne récuperer que la date de cette dernière ligne dans une variable.

    Y' a t' il une méthode ?

    M' avez-vous compris ?

    Merci pour vos réponses.

    Cordialement

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je pense avoir compris avec ta réponse.

    Tu veux sauter à la dernière ligne du fichier sans lire tout le fichier. Ce qui serait partique pour un fichier de 16 Mo par exemple

    AtEndOfStream, te permet de savoir si tu est à la fin d'une ligne, je ne sais pas s'il est utilisable avec une méthode pour mettre le pointeur du fichier (celui qui te permet de parcourir le fichier) à la fin du fichier. C'est possible en C# mais en VBS je ne sais pas si FSO te permte de le faire. Faudrais voir sur MSDN dans la description de FSO et ses objets, s'il y a une méthode (recherche à l'aide de google avec les mots clés FileSystemObject MSDN, dans les premiers liens).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut
    Re,

    Merci pour votre aide.Voici la solution à mon problème pour ceux à qui ça intéresse.

    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
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set ObjFile = objFSO.OpenTextFile("c:\temp\test.txt", 1)
     
    intCpt = 0
     
    arrTmp = Split(ObjFile.ReadAll, vbCrlf)
    NbElement = UBound(arrTmp) - 3
     
    ObjFile.Close
     
    Set ObjFile = objFSO.OpenTextFile("c:\temp\test.txt", 1)
    strTmp = ObjFile.ReadLine
     
    Do While (Not ( ObjFile.AtEndOfStream ))
        intCpt = intCpt + 1
        If (intCpt = NbElement) Then
            MsgBox "La derniere ligne est """ & strTmp & """"
        End If
        strTmp = ObjFile.ReadLine
    Loop
     
    Set objFSO = Nothing
    Set ObjFile = Nothing
    Merci encore.

    @+++

  6. #6
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    Salut,

    juste pour "chipoter", si tu as lu ton fichier texte pour le mettre dans un tableau, c'est inutile de le lire à nouveau, autant passer par ton tableau..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set ObjFile = objFSO.OpenTextFile("c:\temp\test.txt", 1)
     
    arrTmp = Split(ObjFile.ReadAll, vbCrlf)
    NbElement = UBound(arrTmp) - 4 'on fait -4 car le tableau commence à 0
     
    ObjFile.Close
     
    MsgBox "La derniere ligne est """ & arrTmp(NbElement) & """"

    A++

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

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


    Merci pour ta remarque, RadPAT?Cà fonctionne nickel également et beaucoup plus simple.Je prends note.



    @+++

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

Discussions similaires

  1. Récupérer une ligne d'une matrice
    Par setsuko974 dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2007, 20h31
  2. RegExp: Récupérer une valeur en début de chaine
    Par pekka77 dans le forum Langage
    Réponses: 8
    Dernier message: 23/08/2006, 16h07
  3. Récupérer une ligne aléatoire avec fgets
    Par Alexbad dans le forum C
    Réponses: 20
    Dernier message: 30/07/2006, 23h53
  4. Récupérer une ligne sur 5
    Par migol dans le forum C
    Réponses: 8
    Dernier message: 24/05/2006, 10h03
  5. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56

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