Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2589 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Transformer EBCDIC en ASCII en JAVA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transformer EBCDIC en ASCII en JAVA

n°1648465
ferrari75k
Posté le 24-11-2007 à 20:38:55  profilanswer
 

Bonjour,
 
j'ai fait un programme permettant de lire dans un fichier le code en EBCDIC et retourne un fichier en ASCII, mais cela ne marche que pour un certain nombre de caractères :??: . Voici mon code :
 
public static void main(String[] args) throws Exception {
 
  int[] tabASCII_EBCDIC = new int[999999];
  String encoding = "Cp1147";
  char car;
  byte[] b2 = new byte[256];
  for (int i = 0; i < 256; i++) {
   b2[i] = (byte) i;
  }
 
  String x = new String(b2, encoding);
 
  for (int i = 0; i < x.length(); i++) {
   if ((x.charAt(i) != i)) {
    car = (char) i;
    tabASCII_EBCDIC[(int) i] = (int) x.charAt(i);
   }
  }
 
  String chemin = "C:\\Documents and Settings\\FileEBCDIC.txt";
  File fileEBCDIC = new File(chemin);
  long TailleFileEBCDIC = fileEBCDIC.length();
  int bloc = 1;
 
  // Fichier sortie en ASCII
  FileWriter fwASCII = new FileWriter("C:\\Documents and Settings\\FileASCII.txt" );
  BufferedWriter bwASCII = new BufferedWriter(fwASCII);
  PrintWriter fichierSortie = new PrintWriter(bwASCII);
 
  while (bloc <= TailleFileEBCDIC) {
   
   System.out.println("Passage N° :" + bloc);
   byte[] b = new byte[bloc];
   InputStream inputSIndexV2 = new FileInputStream(chemin);
   inputSIndexV2.read(b);
   String machaine = new String(b);
   char caractereEntree = machaine.charAt(bloc - 1);
   int CodeASCIICaractere = (int) caractereEntree;
   int codeEBCDICCaractere = tabASCII_EBCDIC[CodeASCIICaractere];
   char CaractereASCIIARetourner = (char) codeEBCDICCaractere;
   fichierSortie.print(CaractereASCIIARetourner);
   bloc = bloc + 1;
  }
  fichierSortie.close();
 }
 
 
si dans le fichier FileEBCDIC.txt je met ces caracteres en EBCDIC   ‚�•˜¤…
en résultat je devrait avoir le mot                                            banque
avec mon programme il y a que le caractere 'u' sort bien  
 
Est ce que quelqu'un pourrait m'aider, en gros le résultat attendu est d'avoir un truc comme celui de ce site :
http://www.iconv.com/asciiebcdic.htm
 
Merci beaucoup  :jap:  
 

mood
Publicité
Posté le 24-11-2007 à 20:38:55  profilanswer
 

n°1651802
rberthou
Google est ton ami
Posté le 02-12-2007 à 13:46:57  profilanswer
 

Est tu certain de la validité de ton tableau "tabASCII_EBCDIC" car j'utilise le même principe  (tableau de conversion) pour convertir des fichier et cela ne me pose aucun problème (sauf bien sur les valeurs numériques paqués).


Message édité par rberthou le 02-12-2007 à 13:47:32

---------------
depuis bientôt 30 ans j'ai comme passion l'informatique et ma famille... http://www.berthou.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Transformer EBCDIC en ASCII en JAVA

 

Sujets relatifs
[java minimum/maximum]Java j2ee jsf (pbm de débtant)
Transformer du code C# en JavaAide programmation java;: modeliser une blibliotheque urgent svp
[Java] convertir un .ico en .gifpetit programme en java = gros souci de programmation
[JAVA]Algorithme de calcul de la limite de la somme des entiersinformations sur les Java Card
deverouiller un fichier.. [java, jython] 
Plus de sujets relatifs à : Transformer EBCDIC en ASCII en JAVA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR