Bonjour,
J'aimerais savoir comment enregistrer automatiquement ma sortie lst de mon programme sas sur un répertoire sur mon C:\ par programmation.
Merci.
Bonjour,
J'aimerais savoir comment enregistrer automatiquement ma sortie lst de mon programme sas sur un répertoire sur mon C:\ par programmation.
Merci.
Bonjour,
Avec la proc printto, tu peux rediriger la log et l'output dans un fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 proc printto print="c:\temp\output.lst"; run; traitements SAS proc printto; run;
dsl mais cela ne fonctionne pas pour moipas de de message d'erreur mais le fichier n'est pas copié
Voici le code que j'exécute :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 submit; PROC PRINTTO PRINT='C:\Temp\Test\aaa.lst' LOG='C:\Temp\Test\aaa.log' NEW; RUN; PROC PRINT DATA=sashelp.class; RUN; ROC PRINTTO PRINT=PRINT LOG=LOG ; RUN;
C'est quoi ce SUBMIT ? Tu es dans un code SCL ? (Si oui, SUBMIT CONTINUE plutôt.)Voici le code que j'exécute :
submit;
Sur le fond, je pense comme Francis : proc Printto, ou ODS LISTING avec l'option FILE.
Olivier
Pourtant le code est bon, mais le fichier ne ce créer pas, vous avez une idée pk ?
Si c'est un RSUBMIT, tout ce qui est écrit ensuite est exécuté sur le SERVEUR ! Donc tu écris sur c:\Temp\Test\ sur ton serveur (si un tel répertoire y existe).
Il faudrait mettre la proc Printto AVANT le Rsubmit pour écrire dans un fichier en local.
Pour la proc printto, il faut avoir l'ODS listing ouvert :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ODS listing ; proc printto print='M:\TEMP\OUTPUT.LST' new; run; proc print data=sashelp.vslib; run; proc printto; run;
Merci pour les exemples, par contre le problème est que je lance mon programme sas et que mon fichier même si je lui donne un chemin d'accès sur windows il me copie le fichier sur unix, il faut ajouter une option pour dire de l'envoyer sur le poste et non sur unix
Bonjour,
Si tu travail en RSUBMIT, il faut déclarer en LOCAL un libname qui va pointer sur un libname du serveur.
Ex: (soumission local)
Ici je déclare un libname SHELP en local qui pointe sur la SASHELP du serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 libname SHELP slibref=SASHELP server="nom_server";
Apres il suffit d'utiliser SHELP
Bon courage,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 PROC PRINTTO PRINT='C:\Temp\Test\aaa.lst' LOG='C:\Temp\Test\aaa.log' NEW; RUN; PROC PRINT DATA=SHELP.class; RUN; PROC PRINTTO PRINT=PRINT LOG=LOG ; RUN;
Steel
Petite synthèse des différentes propositions :
1) il faut effectivement que la destination ODS LISTING soit ouverte, sur le PC et sur le serveur (mais en général elle l'est par défaut)
2) la solution proposée par Steel (travailler en local avec une bibliothèque pointant sur le serveur) n'est valable que pour de petits volumes de données. Parce qu'au final, c'est le réseau qui trimballe les tables, et le PC qui bosse.
3) dans un bloc RSUBMIT, le serveur ne connaît pas le PC qui lui donne des ordres. On ne peut donc pas, sauf dans une proc Download, indiquer de chemin Windows dans un bloc RSUBMIT.
Deux solutions me semblent donc envisageables :
- soit mettre les proc Printto à l'extérieur du bloc RSUBMIT
- soit mettre les proc Printto à l'intérieur du bloc RSUBMIT, créer un fichier sur le serveur par ce biais, et enfin le redescendre sur le PC avec la proc Download.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PROC PRINTTO PRINT="c:\temp\test.lst" ; RUN ; RSUBMIT ; ... ENDRSUBMIT ; PROC PRINTTO PRINT=PRINT ; RUN ;
Olivier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 RSUBMIT ; PROC PRINTTO PRINT="/users/olivier/temp/test.lst" ; RUN ; ... PROC PRINTTO PRINT=PRINT ; RUN ; PROC DOWNLOAD INFILE="/users/olivier/temp/test.lst" OUTFILE="c:\temp\test.lst" ; RUN ; ENDRSUBMIT ;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager