Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/02/2008, 14h28   #1
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Par défaut Ajout et suppression des"rsubmit" et "endrsubmit" dans fichier SAS exterieur

Bonjour,

J'ai écris une macro qui charge un programme SAS dans une table SAS sous Windows, je supprime les rsubmit et endrsubmit, et je copie le programme sous unix.

Tout fonctionnent correctement à l'exception de la mise en page (espaces...)que je perds lors du chargement du fichier dans une table SAS.
Est qu'il y a un moyen pour ne pas perdre la mise en page lors de l'import d'un fichier dans une table SAS?
Sinon comment peut on ajouter ou supprimer du code dans un programme SAS.

Cordialement.
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 09h06   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
Bonjour,
Je ne vois pas trop ce que tu veux faire, mais si tu mets ton code ça sera peut être plus claire.
Fafabzh
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 10h38   #3
Rédactrice
 
Avatar de Fleur-Anne.Blain
 
Inscription : juillet 2006
Messages : 2 662
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 2 662
Points : 5 590
Points : 5 590
La mise en page....aucune idée et peu importe je dirais. Par contre pour ajouer ou supprimer du code SAS dans ton programme il suffit de l'éditer avec SAS...

Citation:
Envoyé par bahraoui Voir le message
Bonjour,

J'ai écris une macro qui charge un programme SAS dans une table SAS sous Windows, je supprime les rsubmit et endrsubmit, et je copie le programme sous unix.

Tout fonctionnent correctement à l'exception de la mise en page (espaces...)que je perds lors du chargement du fichier dans une table SAS.
Est qu'il y a un moyen pour ne pas perdre la mise en page lors de l'import d'un fichier dans une table SAS?
Sinon comment peut on ajouter ou supprimer du code dans un programme SAS.

Cordialement.
__________________
la culture c'est comme la confiture moins on en a plus on l'étale.

Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi

Mes tutos
Fleur-Anne.Blain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 14h28   #4
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Citation:
Envoyé par fafabzh6 Voir le message
Bonjour,
Je ne vois pas trop ce que tu veux faire, mais si tu mets ton code ça sera [CODE]peut être plus claire.
Fafabzh
Le fichier prg.sas contient du code SAS, le code est bien indenté.
Je charge ce fichier dans une table SAS et je supprime les "rsubmit" et "endrsubmit".
Code :
1
2
3
4
5
6
7
8
9
10
 
DATA prg;
INFILE "c:\prg.sas" truncover dsd;
input chaine $100.; 
chaine1=TRANWRD(lowcase(chaine),'endrsubmit;','') ;
run;
 
DATA prg; SET prg;
chaine1=TRANWRD(lowcase(chaine1),'rsubmit;','') ;
run;
Après je crée un fichier à partir de la table prg (le fichier que je vais créer ne contient plus rsubmit et endrsubmit) et je peux faire un upload sur le serveur unix est le lancer avec un shell SAS.

Code :
1
2
3
4
5
DATA _null_;
file "c:\temp\prg_new.sas";
SET prg;
put chaine1;
run;
le fichier fichier prg_new.sas n'est plus indenté!!! donc illisible.

Cordialement.
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 15h21   #5
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
Bonjour,
Peux-tu mettre aussi ton programme prg.sas
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 15h47   #6
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Citation:
Envoyé par fafabzh6 Voir le message
Bonjour,
Peux-tu mettre aussi ton programme prg.sas
N'importe quel programme peut faire l'affaire.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DATA t1;
input p;
cards;
1
2
3
;
                run;
DATA t2;
SET t1;
IF p > 2 then do;
        t='TOTO';
		t1='TITI';
end;
     /*la ligne concernanat la variable t contient des espaces*/
     /*la ligne concernanat la variable t1 contient une tabulation*/
         run;
      /*Fin programme */
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2008, 09h26   #7
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 807
Points : 4 807
As-tu réussi à solutionner ton problème?
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2008, 11h40   #8
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Citation:
Envoyé par fafabzh6 Voir le message
As-tu réussi à solutionner ton problème?
Bonjour,

Ce n'était pas simple
Ajout du code dans un programme SANS PERDRE L'INDENTATION
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DATA _null_;
INFILE entree RECFM=F sharebuffers end=eof LRECL=256;
file sortie RECFM=F ;
input;
IF _n_=1 then do; 
	_infile_='RSUBMIT;'||_infile_;
	put _infile_;  
end;
else IF eof then do;
	put _infile_ 'ENDRSUBMIT;';
end;
else do;
	put _infile_;
end;
run;
Supprimer du code SANS PERDRE L'INDENTATION
Citation:
data _null_;
infile entree RECFM=F sharebuffers end=eof LRECL=256;
file sortie RECFM=F;
input;
_infile_=tranwrd(_infile_,'ENDRSUBMIT;','');
_infile_=tranwrd(_infile_,'endrsubmit;','');
_infile_=tranwrd(_infile_,'RSUBMIT;','');
_infile_=tranwrd(_infile_,'rsubmit;','');
put _infile_;
run;
Cordialement.
Salah
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h01.


 
 
 
 
Partenaires

Hébergement Web