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

Débutez Discussion :

Récupération messages journal : erreur création fichier *.lis


Sujet :

Débutez

  1. #1
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 243
    Points : 200
    Points
    200
    Par défaut Récupération messages journal : erreur création fichier *.lis
    Bonjour en regardant un article du SUGI:
    Bulletproofing Your SAS Results
    Je vois qu'il crée une fichier .lis

    On parle ici de parcourir le log et l'output d'un programme SAS, de récupérer les résultats produits pour les mettre dans différents fichiers que l'on aura créé. Un peu comme si l'on désirait filtrer les résultats.

    J'ai un problème avec la création du fichier "lisfile".
    Voici le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR: Physical file does not exist, C:\UserTemp\CXDC_2_GV.lis.
    Je pensais que si le fichier n'existait pas, il serait alors créé.

    Je ne comprends pas pour quoi ça fonctionne avec de nouveau fichier *.log et pas avec mon fichier *.lis...


    J'ai écrit ci dessous un code simplifié de la version du SUGI:
    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
     
    /*options nosource nonotes;	* Empêche l'affichage du code exécuté dans le log;
    dm log 'clear' editor;	* Efface la log;
    */
    /*options source;*/
     
    filename logfile 'C:\UserTemp\log_CXDC_2_GV.log';
    filename result 'C:\UserTemp\Result_CXDC_2_GV.log';
    filename lisfile 'C:\UserTemp\CXDC_2_GV.lis';
     
    proc printto log=logfile new;
    run;
    %put MESSAGE: mon message;
    proc printto;
    run;
     
    data _null_;
    	infile logfile truncover;
    	input linetxt $90.;
    	if index(linetxt,"MESSAGE:")>0 and 
    		index(linetxt,"put MESSAGE:")=0 then /*Empeche d'écrire la ligne d'instruction %put*/
    		do;
    		file result;
    		put linetxt;
    		end;
    run;
     
    %macro print_to_gfile;
    	proc gprint fileref=lisfile;
    	run;
    %mend;
     
    %print_to_gfile;
    Comment puis-je faire pour qu'il crée mon fichier automatiquement?

  2. #2
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 243
    Points : 200
    Points
    200
    Par défaut
    OK.
    Oubli dans la proc printto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    proc printto log=logfile print=lisfile new;
    run;

  3. #3
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    normalement tu n'as besoin de faire tout ca. une proc printto suffit avec l'option log= et l'option print= (ce quin te crée un fichier .lst si mes souvenirs sont bons...)

  4. #4
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 243
    Points : 200
    Points
    200
    Par défaut
    Dans la proc printto le print= ne veut pas simplement dire de diriger l'output (mes résultats)?

    Ici j'ai modifié encore une peu le code (mais je suis toujours en phase de test)
    J'ai en fait 2 *.log
    Le 1er = log normal de sas
    Le 2ème = fichier dans lequel je mes mes messages

    Ensuite je fais un gprint du deuxième fichier.
    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
     
    filename logfile 'C:\UserTemp\log_CXDC_2_GV.log';
    filename result 'C:\UserTemp\Result_CXDC_2_GV.log';
     
     
    proc printto log=logfile print=result new;
    run;
    %put MESSAGE: mon message;
    proc printto;
    run;
     
    data _null_;
    	infile logfile truncover;
    	input linetxt $90.;
    	if index(linetxt,"MESSAGE:")>0 and 
    		index(linetxt,"put MESSAGE:")=0 then /*Empeche d'écrire la ligne d'instruction %put*/
    		do;
    		file result;
    		put linetxt;
    		end;
    run;
     
    %macro print_to_gfile;
    	title j=c f=swissb h=2 c=blue u=2 "CXDC 2 GV Acceptance Test";
    	proc gprint fileref=result;
    	run;
    %mend;
     
    %print_to_gfile;
    Tu penses que je ne dois pas faire toutça si le but est d'avoir une copie du log original et un autre fichier contenant certains messages?
    C'est la première fois que j'essaye de faire ce genre de chose....

  5. #5
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc printto log=logfile print=result new;
    run;
    %put MESSAGE: mon message;
    proc printto;
    run;
    tu ne sors rien en output. IL semble normal qu'il n'y ait rien.. Par ca devrait pdiore qqc si tu mets une proc means dans ton printto par exemple...

  6. #6
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 243
    Points : 200
    Points
    200
    Par défaut
    Tu as raison

    J'ai utilisé une autre astuce car je dois absolument avoir 3 fichiers.
    J'ai utilisé un 2ème proc printto pour être sur qu'il me le crée s'il n'existe pas.
    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
    %macro prepare_files(filename);
    	proc printto log=&filename. new;
    	run;
    	proc printto;
    	run;
    %mend;
     
    %prepare_files("result");
    %prepare_files("errfile");
     
     
    proc printto log=logfile new;
    run;
    /*code a éxécuter*/
    proc printto;
    run;
    ....

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/05/2010, 11h50
  2. récupération message d'erreur
    Par pfeuh dans le forum Général Python
    Réponses: 3
    Dernier message: 21/12/2008, 10h20
  3. message d'erreur load fichier xml
    Par minooo dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 20/04/2008, 20h09
  4. Récupération message d'erreur lors d'une insertion dans une BDD
    Par LoDev dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 22/12/2007, 19h11
  5. message d'erreur : "le fichier verrou est trop importan
    Par lol_adele dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/06/2004, 07h58

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