utilisation sink() dans un script

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Michel Carpentier
Messages : 144
Enregistré le : 04 Fév 2018, 13:49

utilisation sink() dans un script

Messagepar Michel Carpentier » 09 Juin 2018, 08:24

Bonjour,
j'utilise la fonction sink dans un script source echo=FALSE. je n'ai rien dans le fichier.
je met echo=TRUE dans le script source et je récupére toutes les lignes de commandes.
lorsque j'utilise sink directement à la console, j'ai bien le résultat attendu c-à-d la sortie redirigée vers un fichier.

ma question est : Comment puis-je rediriger une sortie dans un script source?


avec mes remerciements
cordialement
Michel Carpentier

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Re: utilisation sink() dans un script

Messagepar Dominique Soudant » 11 Juin 2018, 07:13

Bonjour,

J'utilise une fonction qui lance des programmes et enregistre la trace d’exécution dans un journal d’exécution dans un fichier du même nom mais avec des éléments d'extension supplémentaires. Cette fonction est la suivante :

Code : Tout sélectionner

.Execute <- function(PgmName,Debug=FALSE){
  # Stockage du working directory initial
  .InitialWD <- getwd()

  # Dérivation des sorties écran vers le fichier standard
  .LogFileName <- file.path(.LOG,paste(PgmName,"log","txt",sep="."))
  .LogFile <- file(.LogFileName, open="wt")
  sink(.LogFile, type="message")
  sink(.LogFile, type="output")
 
  # Je passe la largeur d'impression à 160 caractères (defaut = 80)
  .NumberOfCharactersOnALine <- getOption("width")
  options(width=160)

  # Je demande l'impression immédiate des warnings
  .OptionWarn <- getOption("warn")
  options(warn=1)
 
  # Execution du programme
#  try(IFR.source(PgmName,local=!Debug,echo=TRUE))
  try(source(PgmName,local=!Debug,echo=TRUE,max.deparse.length=10000))

  # Je rétablis l'option warn
  options(warn=.OptionWarn)

  # Je rétablis la largeur d'impression à 160 caractères (defaut = 80)
  options(width=.NumberOfCharactersOnALine)
 
  # Rétablissement des sorties standards
  sink(type = "output")
  sink(type = "message")
  close(.LogFile)

  # Rétablissement du working directory initial
  setwd(.InitialWD)
}


HTH
DS

Michel Carpentier
Messages : 144
Enregistré le : 04 Fév 2018, 13:49

Re: utilisation sink() dans un script

Messagepar Michel Carpentier » 11 Juin 2018, 07:48

merci de l'information, je vais tester.

Cordialement

Michel


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité