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

Shell et commandes GNU Discussion :

Allocation fichier en entrée / sortie


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut Allocation fichier en entrée / sortie
    Bonjour à tous les pro du KSH
    Je débute dans ce langage, donc je cherche un peu (beaucoup) d'aide
    Je dois réécrire un source.sh car on bascule d'un domaine microfocus vers un domaine IBM.
    Pour cela, le sh actuel effectue des appels de fonction pour allouer des fichiers en entrée et en sortie
    mais comment bypasser ces fonctions ???
    Détail, allocation de fichier pour appel d'un programme cobol

    En gros voici un extrait de code :

    Dans mon sh appel à la fonction : f_allocfcout00 WG X8FEA8KNTB.
    Dans le cobol on a - SELECT WG-FICHIER ASSIGN UT-S-WG.

    et la fonction f_allocfcout00 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function f_allocfcout00 {
    export filecode=$(f_calculnomf00 $2 "W" )}
    puis la fonction f_calculnomf00 :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    function f_calculnomf00 {
     
       argument=$1
       argument2=$2
     
       nbz=$(echo $argument | awk ' { i=split($0,s,"/" ); print i;}')  # controle path complet ou uniquement nom du fichier
       if [ ${nbz} -eq 1 ]; then                                      # argument = uniquement nom du fichier
             extent=$(echo $argument | awk ' { i=split($0,s,"." ); print i;}');   # test nom fichier sans extension
             if [ ${extent} -gt 1 ]; then  
         argument3=$(echo $argument | awk ' { i=split($0,s,"." ); print s[1];}');
      else
                argument3=$argument;
      fi
      carad=$(echo $argument3 | awk ' { lg=length($0); i=substr($0,lg-1,1); print i;}')
      card=$(echo $argument3 | awk ' { lg=length($0); i=substr($0,lg-1,2); print i;}')
      chemin="";
      calculOK='';
      if [ ${card} = 'BP' ] || [ ${card} = 'TS' ] || [ ${card} = 'TT' ] || [ ${card} = 'FV' ] || [ ${carad} = 'P' ] || [ ${carad} = 'X' ]  || [ ${carad} = 'D' ] || [ ${carad} = 'I' ] || [ ${carad} = '1' ]  || [ ${carad} = 'A' ]; then  
         chemin=$X8_FICH_PERM; calculOK=O;    
                if [ ${extent} -eq 1 ]; then         # test generation automatique extension
      if [ ${argument2} = "R" ]; then argument=${argument}".0"; else argument=${argument}".tmp"; fi
         fi
         elif [ ${carad} = 'E' ] || [ ${carad} = 'T' ] || [ ${carad} = 'U' ]; then chemin=$X8_FICH_TMP_SAV; calculOK='O';
         elif [ ${carad} = 'V' ]; then chemin=$X8_FICH_TMP_NOSAV; calculOK='O';
         elif [ ${carad} = '0' ]; then chemin=$X8_FICH_PARAM; calculOK='O';
         elif [ ${carad} = 'F' ] || [ ${carad} = 'W' ] || [ ${carad} = 'Y' ]; then chemin=$X8_FICH_TRANSF; calculOK='O';
         elif [ ${carad} = 'R' ]; then chemin=$X8_FICH_INT_APP_ENT; calculOK='O';
         elif [ ${carad} = 'Z' ] && [ ${argument2} = "R" ]; then chemin=$X8_FICH_INT_APP_ENT; calculOK='O';  
         elif [ ${carad} = 'Z' ]; then chemin=$X8_FICH_INT_APP_SOR; calculOK='O';
         elif [ ${carad} = 'K' ]; then chemin=$X8_FICH_ORACLE; calculOK='O';
         elif [ ${carad} = 'L' ]; then chemin=$X8_SAS_UG; calculOK='O';
         else chemin=""
             fi  
             if [ "${calculOK}" = 'O' ]; then
         if [ "${chemin}" != "" ]; then echo $LMDATA"/"${chemin}"/"${argument}; else echo $LMDATA"/"${argument}; fi  
       else
                export RETCODE=1;
      fi
        else echo $1
        fi
    }
    MA QUESTION :
    Comment faire dans mon nouveau sh pour éviter l'appel à ces fonctions et mettre en "dur" le nom du chemin et l'allocation de mon fichier wg ??

    en vous remerciant d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par Judgelolo Voir le message
    Bonjour à tous les pro du KSH
    ...
    Comment faire dans mon nouveau sh pour éviter l'appel à ces fonctions et mettre en "dur" le nom du chemin et l'allocation de mon fichier wg ??

    en vous remerciant d'avance
    Afin de clarifier ta question, peux-tu montrer ce que tu aimerais obtenir?

Discussions similaires

  1. Entrée sortie fichiers
    Par elishac dans le forum Débuter
    Réponses: 81
    Dernier message: 17/01/2010, 18h34
  2. Réponses: 15
    Dernier message: 01/11/2008, 15h57
  3. Entrée / sortie dans un fichier binaire
    Par mejrs dans le forum Débuter
    Réponses: 1
    Dernier message: 24/05/2008, 16h48
  4. Réponses: 17
    Dernier message: 07/05/2008, 10h16
  5. Réponses: 11
    Dernier message: 13/10/2004, 00h58

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