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

Macro Discussion :

Récuperer des mots clés à partir d'un fichier log


Sujet :

Macro

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Récuperer des mots clés à partir d'un fichier log
    Bonjour à tous,

    Je dois faire une analyse d'un fichier log, et pour cela je dois compter le nombre de fois ou le mot "erreur", "avertissement" etc apparait et recuperer tous le contenu de la ligne "Erreur:......" .
    Mais avant de faire mes comptages, j'ai un premier souci: je ne parviens pas à importer correctement mon fichier log dans une table sas.

    J'aimerais avoir une observation pour une ligne du fichier log.

    Exemple extrait de la log

    201
    Note: ...
    Avertissement:...
    ligne vide
    202
    203 data x;


    en executant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data ficlog;
    length ligne $200;
    	infile 'C:\...\log1.log' ;
    	input ligne ;
    run;
    J'obtiens dans ma table, une variable ligne qui contient uniquement le premier mot du fichier:
    201
    Note:
    Avertissement:
    202
    203


    Je n'ai pas la totalité de l'erreur ou de la note.
    Y a-t-il quelque chose que je dois ajouter (ou supprimer)?
    Merci par avance!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Bonjour,

    Tu peux ajouter l'option DSD à la suite de ton infile ; en effet, il considère par défaut que l'espace est le délimiteur de ton fichier, c'est pour cela qu'il s'arrête au premier mot.
    Tu peux aussi mettre dlm='@' par exemple, il remplacera l'espace par @ comme délimiteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DATA ficlog;
    length ligne $200;
    	INFILE 'C:\...\log1.log' dsd;
    	input ligne ;
    run;

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Super merci!

    J'ai d'ailleurs une autre question:
    Je voulais mettre toutes les observations de ma variable ligne dans une macro variable.
    Etant donnée que, dans l'observation 1, par exemple, j'ai des expressions separées par des blancs et des mots comme "l'étape...", j'ai utilisé un COMPRESS pour les éliminer avant d'inclure les observations dans ma macro-variable.
    Par contre, certaines expressions peuvent se terminer par ";" .
    Est ce que tous les caractères spéciaux sont acceptés dans une macro variable?

    Je créé ensuite une variable qui prendra la valeur "ERREUR" si le mot "ERREUR" est repéré dans la macro-variable.
    Malheureusement, meme si la condition n'est pas respectée, SAS met "ERREUR" tout le temps.

    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
     
    data test; 
    set ficlog (obs=5);
    fic=compress(ligne);
    fic1=compress(fic, "'");
    run;
     
    proc sql noprint;
    select fic1 into :ligne
    separated by ' '
    from test;
    quit;
     
     
     
    %macro control_log ();
     
    /* comptage des evenements*/
    data count_event;
    	set test;
    	length Evenement $ 20;
     
    		%if %sysfunc(find(&ligne,ERREUR))>0  %then
    				Evenement='ERREUR';
    %else Evenement='test';;
     
     
     
    run;
    %mend control_log ;
    %control_log;
    Quelqu'un aurait une idée??
    Merci!

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/04/2019, 10h45
  2. associer des mots clés à un fichier
    Par yorukaze dans le forum Windows XP
    Réponses: 2
    Dernier message: 17/12/2007, 13h13
  3. Réponses: 1
    Dernier message: 31/10/2006, 16h06
  4. Lancer des commandes dos à partir d'un fichier texte
    Par tpdm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2005, 17h56
  5. creer des decors a partir d'un fichier
    Par NICKO dans le forum DirectX
    Réponses: 2
    Dernier message: 21/09/2002, 10h34

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