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

Cobol Discussion :

Fonction STRING + suppression des zeros


Sujet :

Cobol

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut Fonction STRING + suppression des zeros
    Bonjour,

    Voilà je travaille sur une édition ou je dois ressortir une liste d'identifiant composé sur une seule ligne. Pour que cela passe sur une seule ligne, je dois d'abord supprimer tous les zéros. Au lieu de faire une boucle sur les caractères de ma zone (valeur alphanumérique) et supprimer les zéro par des blanc, je souhiate supprimer complètement ces zéros. Au final au lieu d'avoir : 0000000018, j'obtienne 18 (sans blanc devant).
    Après quelques recherches et des conseils, on m'avait fourni la solution suivante :
    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
    STRING
                VAR1
                DELIMITED BY SPACES
     
                SPACE-DELIMITER
                DELIMITED BY SIZE
     
                VAR2
                DELIMITED BY SPACES
     
                SPACE-DELIMITER
                DELIMITED BY SIZE
     
                VAR3
                DELIMITED BY SPACES
     
               INTO VAR4
               END-STRING.
    Avec cette solution, j'arrive à concaténer mes valeurs en une seule variable, mais je n'arrive pas à supprimer les zéros ....

    Est-ce que l'un d'entre vous aurait une solution ?

    D'avance merci.

  2. #2
    Membre chevronné Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Par défaut
    Si on est certain que la zone est numérique, bien entendu les masques d'édition (pic z(n)9(1) par exemple)
    Sinon Inspect VARn Replacing leading zero by space pour ne pas supprimer les zéros significatifs avant d'exécuter le string.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    la zone d'édition est une zone alphanumérique qui prend toute la largeur de la plage, et je doi concaténer mes valeurs dans cette zone ..
    mes données sont des alphanumériques, donc pour toi la solution serait de faire le "INSPECT VARn REPLACING ...." et après le STRING ..
    Ainsi, ma première étape remplacerait les blanc par les zéros et ensuite, les blanc seraient supprimés par la fonction STRING ?
    Merci

  4. #4
    Membre Expert
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Par défaut
    Bonjour.

    Tu peux utiliser la fonction TRIM si elle existe dans ton Cobol, mais tu dois passer par ce que te dit Homer-ac pour que les zéros significatifs ne soient pas supprimés.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    mais je n'ai pas la fonction TRIM ...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Par défaut
    Bonjour,

    A mon avis, la solution la plus simple est la suivante (pour chaque nombre) :
    1) compter le nombre de zéro (leading) de chaque nombre par INSPECT TALLYING ;
    2) récupérer les chiffres significatifs (en pensant à traiter le cas 0) ;
    3) ajouter le résultat obtenu à la chaîne de sortie par STRING.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Remplacer les chaines vides (ZLS – Zero Lenght String) par des Null.
    Par Bonero dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/03/2012, 17h34
  2. suppression des zero dans une date
    Par bambino13 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/07/2009, 17h27
  3. Remplacer des caractères avec la fonction string.replace
    Par chtom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/12/2008, 16h43
  4. Fonction "contains" pour des String
    Par Gaaaga dans le forum Flex
    Réponses: 1
    Dernier message: 27/05/2008, 14h16
  5. Réponses: 2
    Dernier message: 09/03/2006, 14h15

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