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 14/11/2011, 10h13   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 1
Points : 1
Par défaut ASCII vers CARACTERE

En fait, au niveau oracale la zone réceptrice est de type RAW (ORACLE) par consultation du champ de la table on peut voir la date enregistrée de cette façon : "3230313031323331C" (c'est par un traitement batch que cette date est enregistrée : donnée signée COBOL vers donnée ORACLE de type RAW), le problème c'est que je me demandais s'il était possible de saisir sur une zone d'écran (en transactionnel) une date en caractère ainsi que le signe (comment matérialiser ce signe pour qu'il soit traduit en "C" ?) pour qu'en Base de Donnée ça enregistre bien la même chose que le batch? mais peut-être qu'on ne peut pas car la zone d'entrée au niveau de l'écran de saisie est alphabétique...
En tout cas, merci pour votre réponse.
Crdlt.
DEMETHANNE.
DEMETHANNE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 13h22   #2
Membre Expert
 
Avatar de Hédhili Jaïdane
 
Homme Hédhili Jaïdane
Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol
Inscription : juin 2007
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Hédhili Jaïdane
Localisation : Tunisie

Informations professionnelles :
Activité : Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol

Informations forums :
Inscription : juin 2007
Messages : 1 668
Points : 2 167
Points : 2 167
Envoyer un message via Skype™ à Hédhili Jaïdane
Bonjour.

- Tu aurais dû poster à la suite de la discussion précédente que tu as ouverte.

- Indique nous ton compilateur Cobol et ta plateforme.

Citation:
Envoyé par DEMETHANNE Voir le message
En fait, au niveau oracale la zone réceptrice est de type RAW (ORACLE) par consultation du champ de la table on peut voir la date enregistrée de cette façon : "3230313031323331C" ...
Si je décompose la représentation que tu as donnée, on tombe sur sur un nombre impair de demi-octets, ça ne colle pas :
"32 30 31 30 31 32 33 31 C". (j'ai inséré des espaces entre les octets)

Si ton nombre +20101231 est en usage DISPLAY, il sera représenté, en ASCII, comme suit en interne :
x"32 30 31 30 31 32 33 C1" ou x"32 30 31 30 31 32 33 31".
En usage COMPUTATIONAL-3, ça sera : x"02 01 01 23 1C". Il tient bien sur 5 octets. (=E(8/2)+1).

Comment le saisir ?

Ben, tu déclares ta zone de saisie en PIC S9(8) DISPLAY SIGN LEADING SEPARATE puis tu la move dans une zone en S9(8) si tu la veux étendue en interne ou en S9(8) COMP-3 si tu la veux condensée.

Code :
1
2
3
4
5
6
7
8
9
10
000380 01  WS     pic S9(8) LEADING SEPARATE.
000380 01  WD     pic S9(8).
000380 01  WC3    pic S9(8) COMP-3.
000410 Procedure Division.
000420 DEBUT.
000460     Display "Donner la date sur 8c précédés d'un + : ".
000510     Accept WS.
000550     move WS to WD9.
000550     move WS to WC3.
au moment de la saisie tu tapes : +20101231 et Return.
Hédhili Jaïdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 14h03   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 1
Points : 1
Bonjour,
Merci bien pour votre aide, je n'hésiterai pas à visiter votre site pour trouver d'autres informations.
Bonne continuation.
Crdlt.
DEMETHANNE.
DEMETHANNE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web