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 :

remplacer chaine de caracteres par **


Sujet :

Cobol

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut remplacer chaine de caracteres par **
    Bonjour,

    Je dois écrire un programme en cobol qui doit rechercher une liste de mot dans une chaine de caractère et les remplacer par des * :

    liste de mot : rue - paris
    en entree : rue de la libelle - paris
    en sortie : *** de la libelle - *****

    Avez -vous une idée ?

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Bonsoir,

    Je regarderais l'ordre INSPECT, du style (syntaxe à vérifier) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSPECT ...
    REPLACING
    ALL 'RUE' BY '***'
         'PARIS' BY '*****'

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    J'ai fait un petit test rapide en utilisant ce que vous me proposez. Cela fonctionne mais je dirais presque trop car cela remplace vraiment tous les mots ! avec juste un bémol car les deux chaines doivent avoir la même longueur. je peux y passer en construisant un tableau a deux dimensions : mes mots et les correspondance en x.

    exemple : on doit remplacer le mot fou par xxx

    'je suis un fou'
    --> ok j'ai le résultat 'je suis un xxx'
    par contre
    'je suis une fourmis'
    --> nok le résultat est 'je suis une xxxrmis' et cela n'est pas voulu.

    Avez-vous une idée ?

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut avec un ordre SQL ?
    re-bonjour,

    c'est vrai que je me focalise sur le cobol pur.
    En fait je récupère ma chaine d'une table DB2 par un :
    EXEC SQL select champ from table into ... et c'est dans ce champ que je dois rechercher et remplacer mes mots.
    Il y a peut etre une moyen avec DB2 directement pour faire le remplacement ??

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur et formateur Mainframe
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur et formateur Mainframe
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 103
    Points
    103
    Par défaut
    Bonjour,

    En DB2 je ne vois pas comment procéder et puis c'est un peu dommage de plomber une requête avec des manipulations de chaînes de caractères.

    L'INSPECT proposé par Luc Orient est bon et simple. Il faut juste l'adapter un brin pour avoir le résultat souhaité en plaçant des espaces aux endroits adéquats pour cibler uniquement les mots complets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSPECT ...
    REPLACING
    ALL ' RUE ' BY ' *** '
         ' PARIS ' BY ' ***** '
    Si la liste de mots à transformer est appelée à évoluer, il faudra peut être songer à une mécanique un poil plus complexe à base de boucles et de compteurs de caractères mais avec ce même INSPECT au final pour avoir un algorithme le plus général possible.

Discussions similaires

  1. remplacement d'un caractere par une chaine
    Par kayenne77 dans le forum Langage
    Réponses: 3
    Dernier message: 06/07/2009, 06h13
  2. Réponses: 2
    Dernier message: 12/03/2008, 14h44
  3. probleme remplacement chaine de caractere avec SED
    Par rhaamo dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 24/01/2007, 16h12
  4. recherche de chaine de caractere par colonne
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/12/2006, 09h19
  5. [XSLT ]remplacement d un caractere par son code
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/09/2005, 17h26

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