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 :

Lecture d'un fichier Log


Sujet :

VBScript

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut Lecture d'un fichier Log
    Bonjour,

    J'ai un code qui récupère un fichier log mais je voudrais pouvoir lire les x dernières ligne de ce fichier contenant une certaine chaîne

    Voilà mon 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
    Set FSO = CreateObject("Scripting.FileSystemObject")
    alert_log = ""
     
        Set oFold = FSO.GetFolder(REP)
        Resultat = ""
    	Hor= "01/01/1970 00:00:37"
        For Each oFile In oFold.Files
            If LCase(Left(oFile.Name, 6))  = "alert_" And LCase(Right(oFile.Name, 4)) = ".log" Then 'récupération des fichier alert_*.log
              Resultat = oFile.Path
     
    		  if FSO.FileExists(resultat) then 													'récupération du dernier fichier modifié 
    				Hor_next = FSO.GetFile(resultat).DateLastModified
    				diff = DateDiff("s",Hor_next,Hor)
     
    				if Diff < 0 then 
    				Hor = Hor_next
    				alert_log = oFile.Name
    				alert_path = oFile.Path
    				end if 
    			end if 
            End If
        Next
    	wscript.echo alert_log 
    	wscript.echo alert_path
     
    	if alert_log = "" then 
    		wscript.echo "Pas de fichier alert_*.log dans le repertoire "& REP 
    		wscript.quit (ST_UK)
    	end if
    Pour faire la recherche je voulais utiliser une commande find de windows dans ce style là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ERREUR_cherche = chr(34) & ERREUR & chr(34)
    		Set sh  = CreateObject("WScript.Shell")
    		Set cmd = sh.Exec("cmd /c find  "& ERREUR_cherche &" " &alert_path)
    read_cmd=cmd.StdOut.ReadAll
    wscript.echo read_cmd
    ERREUR est la chaîne recherché dans le fichier alert_path est le chemin vers le fichier où l'on veut effectuer la commande find

    j'ai déjà utilisé cette commande dans un autre script elle passe bien mais la elle ne veut pas passer et impossible de trouver pourquoi quelqu'un saurait pourquoi?

    Merci d'avance

    Galène

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Edit :

    En faite je dois récupérer les x dernières lignes du fichier

    la deuxième partie sur la commande find marche mais ce n'est pas se don j'ai besoin pour afficher les x dernières lignes

    J'ai pensé à la commande type mais elle affiche toute les lignes on ne peut pas choisir ou compter un nombre de lignes

    Je sais pas si j'ai été clair

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 154
    Points
    17 154
    Par défaut
    Salut
    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
    Const ForReading = 1
    Dim oFso, f, ContenuLgn
    Set oFso = CreateObject("Scripting.FileSystemObject")
     
    	'Ouverture et lecture du fichier
    	Set f = oFso.OpenTextFile("C:\PersoFrancis\test.txt", ForReading)
    	'recuperation d'un tableau de x lignes
    	ContenuLgn = split(f.ReadAll,vbnewline)
    	f.close
    	Set f = nothing: Set oFso = nothing
     
    	'lecture des 10 dernieres ligne en commencant par la derniere ligne
    	for f = ubound(ContenuLgn) to ubound(ContenuLgn)-9  Step -1
    		msgbox ContenuLgn(f)
    	next
    le tableau ContenuLgn contient le contenu entier du fichier d'indice n lignes, disons plutôt de n lignes finissant par un retour chariot.
    ContenuLgn(x) contient une des lignes du fichier.
    Exemple pour toi si tu veux les trois dernières lignes tu boucles sur ubound(ContenuLgn)-2
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Merci de ta réponse ça m'a été très utile,

    Comment maintenant je peux faire si je veux compter dans toutes les lignes que l'on m'affiche les lignes où la chaîne de caractère "starting" apparaît par exemple ?

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 154
    Points
    17 154
    Par défaut
    Salut
    dans toutes les lignes que l'on m'affiche
    les x nombre de lignes déjà présélectionnées ou l’entièreté des lignes du fichier.
    De plus, suivant se que tu vas faire de la détection de ce nombre de lignes contenant starting , la stratégie peut être différente.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    des lignes déjà présélectionné, et je veux juste compter le nombre de ligne où le mot starting apparaît.

    J'ai trouvé cette manière la

    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
    Const ForReading = 1
    Dim oFso, f, ContenuLgn
    Set oFso = CreateObject("Scripting.FileSystemObject")
     
    	'Ouverture et lecture du fichier
    	Set f = oFso.OpenTextFile(alert_path, ForReading)
    	'recuperation d'un tableau de x lignes
    	ContenuLgn = split(f.ReadAll,vbnewline)
    	f.close
    	Set f = nothing: Set oFso = nothing
     
    cpt_error = 0 
    for f = ubound(ContenuLgn)-NB_LIGNES to ubound(ContenuLgn) Step 1
    		if instr(1,ContenuLgn(f),ERREUR) > 0 then 
    			cpt_error = cpt_error + 1
    		end if 
     
    	next
    NB_LIGNES est le nombre de lignes que je veux récupérer
    ERREUR est la chaîne que je recherche

    et du coup mon cpt_error sera le nombre de fois où l'erreur est présente.

  7. #7
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 154
    Points
    17 154
    Par défaut
    Salut
    Une autre possibilité sans boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim StrTemp, Regrouper()
    StrTemp = Join(ContenuLgn, vbNewLine)
    Regrouper = Split(StrTemp, ERREUR)
    MsgBox "Nombre d'occurence = " & UBound(Regrouper)
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. Lecture des fichiers LOG de Windows
    Par Nono40 dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 23/02/2013, 12h53
  2. Probleme Lecture fichier log
    Par lordatef dans le forum C++
    Réponses: 5
    Dernier message: 29/07/2011, 19h18
  3. Lecture de fichier log
    Par aeroman00 dans le forum Programmation et administration système
    Réponses: 6
    Dernier message: 24/06/2010, 13h16
  4. Lecture du fichier log de la base de données
    Par majda_afkir dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 25/09/2009, 18h59
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 11h24

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