Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Cobol
Cobol Forum d'entraide sur la programmation en langage Cobol
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 22h13   #1
Invité de passage
 
Femme
Développeur informatique
Inscription : 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 : 0
Points : 0
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 ?
regazza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 22h55   #2
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 096
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 096
Points : 1 704
Points : 1 704
Bonsoir,

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

Code :
1
2
3
4
5
INSPECT ...
REPLACING
ALL 'RUE' BY '***'
     'PARIS' BY '*****'
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2012, 00h13   #3
Invité de passage
 
Femme
Développeur informatique
Inscription : 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 : 0
Points : 0
Merci
regazza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2012, 20h40   #4
Invité de passage
 
Femme
Développeur informatique
Inscription : 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 : 0
Points : 0
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 ?
regazza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2012, 00h01   #5
Invité de passage
 
Femme
Développeur informatique
Inscription : 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 : 0
Points : 0
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 ??
regazza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2012, 14h31   #6
Membre du Club
 
Homme Bernard
Développeur et formateur Mainframe
Inscription : février 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : février 2007
Messages : 39
Points : 67
Points : 67
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 :
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.
BernardBZH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h45.


 
 
 
 
Partenaires

Hébergement Web