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

z/OS Discussion :

Ascii ou binaire


Sujet :

z/OS

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Points : 28
    Points
    28
    Par défaut Ascii ou binaire
    Bonjour,

    Je dois définir si un fichier est au format Binaire ou ASCII (Sur ZOS).

    Est-ce qu'il existe un moyen de le savoir sans utiliser une ruse de sciou ?

  2. #2
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 801
    Points
    801
    Par défaut
    Par programme ou à la mano ? ASCII! euh... EBCDIC ?

    .

  3. #3
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Bonjour
    Il n'y a pas de moyen.
    A la base, tous les fichiers sont "binaires".
    Ascii ou Ebcdic n'est qu'une norme pour interpréter des informations "binaires".

    Sans connaitre le programme qui a créé le fichier (et le besoin exact), la tâche sera ardue.

    B

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Peut-êtreUneRéponse Voir le message
    Par programme ou à la mano ? ASCII! euh... EBCDIC ?

    .
    Effectivement....c'est EBCDIC

    Citation Envoyé par bernard59139 Voir le message
    Bonjour
    Il n'y a pas de moyen.
    A la base, tous les fichiers sont "binaires".
    Ascii ou Ebcdic n'est qu'une norme pour interpréter des informations "binaires".

    Sans connaitre le programme qui a créé le fichier (et le besoin exact), la tâche sera ardue.

    B
    J'avais peur de cette réponse

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    ASCII souS MVS ne veut rien dire. Je pense que tu veux dire texte ou binaire. Texte correspond à un fichier qui, édité sous TSO par exemple, peut se lire facilement. Binaire correspond à un source qui a été transformé en langage machine par une procédure de compilation (load module par exemple). C'est donc parfaitement illisible quand on l'édite sous TSO.

    A l'affichage, sous MVS, c'est toujours de l'EBCDIC. Par contre, il est possible d'utiliser un logiciel (basé sur IND$FILE, la procédure de transfert) qui va convertir de l'EBCDIC en ASCII pour pouvoir lire le fichier sur un autre système (windows par exemple). Cet utilitaire est en général compris dans l'émulateur qui sert à accéder au MVS à partir du PC. Ainsi, un fichier texte sous TSO (donc en EBCDIC) sera converti en en mode texte sous windows (donc en ASCII). On peut évidemment faire la même chose avec les fichiers binaires. Ainsi, si on envoie un fichier binaire du MVS vers le PC par exemple en mode binaire, le fichier ne sera pas converti. par contre, si on l'envoie en mode texte, le fichier sera converti, mais c'est idiot, parce que si c'est un load par exemple, il ne fonctionnera pas de toute façon.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    En fait, mon problème ne vient pas d'un changement de format.
    dsl pour la confusion entre EBCDIC et ASCII, je travaille actuellement sur un echange entre ZOS et AIX et je fais une conversion
    Mais mon soucis se situe à un autre endroit.

    Je dois pouvoir déterminé sir un fichier est de type BINAIRE ou TEXTE.

    Ma question est donc...comment faire...je n'ai à ce jour pas de solution fiable pour le faire.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Dois-tu faire cette opération avant ou après le transfert ? As-tu un grand nombre de types de sources différents à traiter ?
    Je suppose que tu as déjà dû y penser, mais ne peux-tu pas déterminer une chaîne de caractère particulière dans tes sources qui indiquerait le type de source ? Chez nous, par exemple, tous les load contiennent un 'tag' particulier.
    Sous MVS, ne peux-tu pas déterminer les types de fichier suivant les PDS dans lesquels ils sont ? ou suivant la structure du fichier ?
    Les caractères ont un code ASCII ou EBCDIC associé qui est bien précis et répertorié. Tu peux faire un REXX ou un script qui lit chaque fichier en hexa, et repère les caractères qui ne sont pas dans les codes répertoriés. Dans ce cas, ton fichier est binaire.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par tbeghain Voir le message
    Dois-tu faire cette opération avant ou après le transfert ? As-tu un grand nombre de types de sources différents à traiter ?
    Je suppose que tu as déjà dû y penser, mais ne peux-tu pas déterminer une chaîne de caractère particulière dans tes sources qui indiquerait le type de source ? Chez nous, par exemple, tous les load contiennent un 'tag' particulier.
    Sous MVS, ne peux-tu pas déterminer les types de fichier suivant les PDS dans lesquels ils sont ? ou suivant la structure du fichier ?
    Les caractères ont un code ASCII ou EBCDIC associé qui est bien précis et répertorié. Tu peux faire un REXX ou un script qui lit chaque fichier en hexa, et repère les caractères qui ne sont pas dans les codes répertoriés. Dans ce cas, ton fichier est binaire.
    En fait, le fichier dont je dois determiné le type (BINAIRE OU TEXTE) doit se faire avant l'envoi.

    Son nom, format, longueur, et contenu sont complètement inconnus et aussi variable que l'on puisse imaginer.

    Je peux avoir, des fichiers simple ou GDG, des PDS.
    Des fichiers de données, des fichiers de load et suremment des choses que je ne connais pas.

    J'ai pensé à regarder vi aun REXX dans le fichier mais quel chaine de caractère...impossible à définir...j'espérais qu'il existerait un tag quelque part...

    Je pense que la réponse est.. NON ...

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    A part la méthode de lire en hexa caractère par caractère comme je te le disais, je ne vois pas. remarque, les caractères TEXTE ne sont pas si nombreux que cela, il suffit d'en faire un fichier et tu n'es pas obligé de lire tout ton fichier à déterminer. je pense que si tu n'as pas repéré de caractère non texte sur une centaine de caractères lus, tu peux considérer que ton fichier est un fichier texte, non ?

  10. #10
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 801
    Points
    801
    Par défaut
    Citation Envoyé par Kyle Katarn Voir le message
    En fait, le fichier dont je dois determiné le type (BINAIRE OU TEXTE) doit se faire avant l'envoi.

    Son nom, format, longueur, et contenu sont complètement inconnus et aussi variable que l'on puisse imaginer.

    Je peux avoir, des fichiers simple ou GDG, des PDS.
    Des fichiers de données, des fichiers de load et suremment des choses que je ne connais pas.

    J'ai pensé à regarder vi aun REXX dans le fichier mais quel chaine de caractère...impossible à définir...j'espérais qu'il existerait un tag quelque part...

    Je pense que la réponse est.. NON ...
    Comment vont être traitées les données que tu transmets à AIX?

    Si tu ne sais pas ce que tu envois (Load, fichiers de longueur fixe, variable ou à génération) comment fera la ME sur AIX pour les traiter ?

    Si c'est une migration de données z/OS vers AIX il y aura forcément des transformations techniques en fonction de la nature des données transmises afin qu'elles puissent être utilisées, et les transferts seront sensément lotis.

    .

  11. #11
    Membre confirmé 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
    Points : 586
    Points
    586
    Par défaut
    +1, Il devrait y avoir nécessairement une couche de traitement contextuel.
    En MVS, les catalogues recencent une toute petite partie des informations fichiers (nom, type d'unité, VOLSER, + pour les fichiers concernés les classes SMS (sur un VVDS). Le gros des infos disponibles d'un fichier sur disque est en VTOC. Organisation, allocations et accès (DSORG, LRECL, BLKSIZE, format, et infos statistiques, creation, accés ...).
    En gros, les informations que l'on retrouve via un LISTDSI en REXX.
    Rien quant au contenu logique, on n'a même pas le nombre d'enregistrements.
    Même une analyse syntaxique des enregistrements ne semble pas une bonne idée. On pourrait par exemple détecter une séquence continue de caractères EBCDIC, mais tout fichier peut contenir du binaire ou du décimal packé !
    Attention, s'il est facile de faire un REXX pour exploiter un résultat LISDSI, EXECIO ne sait pas lire des PDS ni des fichiers indéfinis. Il faudra passer par Library Management pour ça (LMINIT -> LMOPEN -> LMFIND -> LMGET ...)
    Sans parler des VSAM et autres TS DB2.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Homer-ac Voir le message
    +1, Il devrait y avoir nécessairement une couche de traitement contextuel.
    En MVS, les catalogues recencent une toute petite partie des informations fichiers (nom, type d'unité, VOLSER, + pour les fichiers concernés les classes SMS (sur un VVDS). Le gros des infos disponibles d'un fichier sur disque est en VTOC. Organisation, allocations et accès (DSORG, LRECL, BLKSIZE, format, et infos statistiques, creation, accés ...).
    En gros, les informations que l'on retrouve via un LISTDSI en REXX.
    Rien quant au contenu logique, on n'a même pas le nombre d'enregistrements.
    Même une analyse syntaxique des enregistrements ne semble pas une bonne idée. On pourrait par exemple détecter une séquence continue de caractères EBCDIC, mais tout fichier peut contenir du binaire ou du décimal packé !
    Attention, s'il est facile de faire un REXX pour exploiter un résultat LISDSI, EXECIO ne sait pas lire des PDS ni des fichiers indéfinis. Il faudra passer par Library Management pour ça (LMINIT -> LMOPEN -> LMFIND -> LMGET ...)
    Sans parler des VSAM et autres TS DB2.
    Mouais c'est bien ce que je pensais...ca sent la bonne grosse usine à gaz.
    En prime de l'envoi du fichier vers AIX, un message est envoyé vers MQ contenant différentes données tel que type_fichier (fichier Binaire ou texte), nom du fichier sur zos, nom sur AIX, mode de transfert (Binaire ou normal) etc.
    Le traitement sur AIX est une boite noir pour moi.
    Et c'est ce traitement qui me demande de lui spécifier est le fichier est en mode texte ou binaire.
    Je récupére ensuite un message via MQ et je transfère le fichier sur ZOS depuis AIX en me basant sur les infos du message contenu dans MQ.

    Je ne souhaite pas faire de recherche de chaine de char dans le fichier car ca ne me parait pas fiable...et comme j'ai toujours detesté les proba...je préfère ne pas prendre de risque avec elle

    Je pense que je vais regler le problème par un..."Techniquement pas possible"

    @ Homer : J'ai effectivement des fichiers en U et des PDS, et je te remercie pour les différents bout de REXX que tu m'as déja donné sur ce sujet, car cela m'a bien aidé.

  13. #13
    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
    Mais il y a bien un processus quelque part qui le produit ce fichier non ?

    Moi je pense que c'est à ce niveau qu'il faut collecter les informations demandées ... Après c'est trop tard ...

Discussions similaires

  1. conversion d'un ascii en binaire
    Par m0ul3sh0t dans le forum Débuter
    Réponses: 22
    Dernier message: 17/03/2008, 15h32
  2. Transformer ASCII en Binaire
    Par Happy dans le forum C++
    Réponses: 7
    Dernier message: 01/12/2006, 17h18
  3. Réponses: 8
    Dernier message: 19/03/2006, 23h56
  4. Conversion ascii=> hexa=>binaire
    Par grunk dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 18h45
  5. code ascii en binaire -> caractere
    Par mzt.insat dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 19/04/2005, 15h43

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