Comment convertir les EBCDIC en ASCII en C # .net
J'ai une valeur au format EBCDIC "000000{". Je veux le convertir en a.Net Int32 type. Quelqu'un peut-il me faire savoir ce que je peux faire à ce sujet?? Donc ma question est donnée une chaîne qui contient une numériques signés en EBCDIC , que dois-je faire pour le convertir en un .NET Int32.
Merci beaucoup d'avance!
source d'informationauteur Sai
Vous devez vous connecter pour publier un commentaire.
Essayer cette
Le programme suivant a travaillé pour la conversion d'une EBCDIC valeur d'un entier, lors de la réception de données à partir de l'un de nos clients. Les données que nous obtenons peut être un sous-ensemble de ce que vous pourriez obtenir, afin de voir si cela fonctionne pour vous:
Vous allez avoir à lire sur binaire codé en décimalescar c'est ce que l'on a, et il y a des questions à répondre avant que vous pouvez vraiment code.
Si la valeur est un caractère unique, il peut être aussi simple que d'obtenir le nombre de caractères--mais vous avez besoin de savoir si le système est en Big Endian (comme la plupart des mainframes à partir de laquelle vous EBDIC des fichiers codés) ou Little Endian (comme le plus moderne des Systèmes d'exploitation).
Si votre valeur d'entier utilise plus d'un caractère et comprend le signe (comme vous le mentionnez), il est alors plus complexe. Le plus probable, chaque moitié (ou "grignoter", ou 4 bits) de chaque caractère représente le nombre, peut-être, de 0 à 9, ou en hexadécimal 0 thru F, et la chaîne est complétée par des zéros (null, en fait) sur la gauche, et la dernière grignoter contient le signe. Ce système pourrait être appelé Zoné Décimal dans certains langage.
Dans l'ensemble, je recommande de commencer par la lecture de cet article, qui devrait vous présenter la façon dont les données sont/ont été stockées sur COBOL mainframeet vous faire bouger dans la bonne direction.
En C#, vous pouvez être en mesure de faire la conversion former la commune Zoné Décimal (qui sonne comme le meilleur ajustement pour la réception de vos données comme vous l'avez décrit) en utilisant int.Analyser avec le bon NumberStyles optionscomme ceci:
En règle générale, vous devriez être en mesure de charger CES données à l'aide de la bonne Système.Texte.L'encodage classe (le lien pointe vers une liste de tous les encodages, qui comprend EBCDIC encodages). La chaîne est alors Unicode dans la mémoire et peuvent être enregistrées au format ASCII en utilisant le codage ASCII.
Ce fait ce que vous demandez dans le titre de la question. Cependant, je ne suis pas sûr de savoir si c'est cela que tu voulais savoir, étant donné que votre question n'est pas entièrement clair pour moi. Si vous êtes à la recherche pour le caractère ASCII de code, vous pouvez juste lancer le caractère d'une
int
tant qu'ils sont des caractères ASCII.Essayez de fonction suivantes..