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

AS/400 Discussion :

Extraire un champ packé d'une ds fichier


Sujet :

AS/400

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Par défaut Extraire un champ packé d'une ds fichier
    Bonjour,

    J'ai un fichier paramètre qui me donne la position début et fin de chaque champ d'un fichier.

    Dans un programme d'extraction j'ouvre le fichier et j'extrait chaque valeur de champs par un %subst de à. Pour les champs numériques pas de soucis pour les extraire. Mais pour les champs packés je n'y arrive pas.

    Je fais

    num s 15 0

    dsfic ds likerec(ppe1f1)

    =======> je ne nomme pas les champs je ne travaille que sur les positions de champs

    num = %dec(%subst(dsfic:83:3):3:0)

    ça plante (Représentation alphanumérique d'une valeur numérique en erreur)

    La valeur est 0238 packé


    J'ai déjà fait ce genre de traitement, mais je ne me souviens plus.
    Auriez vous une idée. Merci à vous

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    727
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 727
    Par défaut
    Bonjour,

    C'est un peu spécial comme technique.
    Mais bon, je pense que la solution est de définir une DS qui contiendra une zone packée de la longueur désirée et de redéfinir les mêmes positions en alpha pour mouvementer la valeur.
    Pour un champ packé 9P5 par exemple, tu auras un champ alpha de 5 caractères redéfini pour les positions 1 à 5.
    Tu places ta valeur extraite dans le champ alpha, et tu devrais pouvoir utiliser le champ packé ensuite.
    En code non Free çà devrait donné un truc comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DDS_DEF           ds                                                                  
    D PckFld                         9p 5                                                 
    D StrFld                  1      5

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2017, 09h17
  2. Réponses: 2
    Dernier message: 07/07/2009, 12h01
  3. Réponses: 1
    Dernier message: 22/11/2007, 12h37
  4. extraire un champ dynamique d'une requête
    Par forzaxelah dans le forum Bases de données
    Réponses: 7
    Dernier message: 14/05/2006, 18h34

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