J'ai un fichier text qui contient : "4E"
c'est-à-dire les octets suivants : 34 45 0D 0A
J'ai utilisé read() de FileReader pour lire c1 = "34" puis c2 = "45"
puis j'ai fait calculer c = 4E en base 16, soit "N" en ASCII. Cela prend
quelques lignes de code.
Mais je voudrais une classe qui ait une méthode qui lise les deux octets et
à laquelle je puisse indiquer qu'il faut les lire comme étant la
représentation de la valeur hexadécimale de "N" sans avoir à faire effectuer
les calculs de déchiffrement.
Y-a-t-il une API de Java qui le fasse et quelle(s) méthode(s) employer ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Thomann
Le Fri, 13 Feb 2004 10:25:30 +0100, "Ericcson" a
Mais je voudrais une classe qui ait une méthode qui lise les deux octets et à laquelle je puisse indiquer qu'il faut les lire comme étant la représentation de la valeur hexadécimale de "N" sans avoir à faire effectuer les calculs de déchiffrement. Y-a-t-il une API de Java qui le fasse et quelle(s) méthode(s) employer ? Je ne comprends pas. Voici un bout de code qui fait ce que tu veux et
public class TestReader { public static void main(String[] args) { try { BufferedReader reader = new BufferedReader(new FileReader("d:/temp/test.txt"));
Bien entendu il faut que tu corriges le chemin vers le fichier.
Dans la console, j'ai: 4E -- Olivier
Le Fri, 13 Feb 2004 10:25:30 +0100, "Ericcson" <Ericcson@wanadoo.fr> a
Mais je voudrais une classe qui ait une méthode qui lise les deux octets et
à laquelle je puisse indiquer qu'il faut les lire comme étant la
représentation de la valeur hexadécimale de "N" sans avoir à faire effectuer
les calculs de déchiffrement.
Y-a-t-il une API de Java qui le fasse et quelle(s) méthode(s) employer ?
Je ne comprends pas. Voici un bout de code qui fait ce que tu veux et
public class TestReader {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new
FileReader("d:/temp/test.txt"));
Mais je voudrais une classe qui ait une méthode qui lise les deux octets et à laquelle je puisse indiquer qu'il faut les lire comme étant la représentation de la valeur hexadécimale de "N" sans avoir à faire effectuer les calculs de déchiffrement. Y-a-t-il une API de Java qui le fasse et quelle(s) méthode(s) employer ? Je ne comprends pas. Voici un bout de code qui fait ce que tu veux et
public class TestReader { public static void main(String[] args) { try { BufferedReader reader = new BufferedReader(new FileReader("d:/temp/test.txt"));
Bien entendu il faut que tu corriges le chemin vers le fichier.
Dans la console, j'ai: 4E -- Olivier
Ericcson
"Olivier Thomann" a écrit dans le message de news:
Dans la console, j'ai: 4E
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E" dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce qu'il doit faire avec "3445" pour afficher "N". Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34" puis "45") et m'affiche "N".
Ce qui m'a fait penser qu'une telle méthode pourrait exister ce sont les API auxquelles on passe en paramètre ",16" et qui affiche des nombres en base 16, comme, par exemple : System.out.println(Integer.parseInt("80",16));
ou bien qui affichent en héxadécimal, comme : System.out.println(Integer.toHexString(i));
Ericcson
"Olivier Thomann" <olivier_thomann@sympatico.caNOSPAM> a écrit dans le
message de news:nrlq2015fk45a7281urn6ncjdktm5he377@4ax.com...
Dans la console, j'ai:
4E
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E"
dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce
qu'il doit faire avec "3445" pour afficher "N".
Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34"
puis "45") et m'affiche "N".
Ce qui m'a fait penser qu'une telle méthode pourrait exister ce sont les API
auxquelles on passe en paramètre ",16" et qui affiche des nombres en base
16, comme, par exemple :
System.out.println(Integer.parseInt("80",16));
ou bien qui affichent en héxadécimal, comme :
System.out.println(Integer.toHexString(i));
"Olivier Thomann" a écrit dans le message de news:
Dans la console, j'ai: 4E
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E" dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce qu'il doit faire avec "3445" pour afficher "N". Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34" puis "45") et m'affiche "N".
Ce qui m'a fait penser qu'une telle méthode pourrait exister ce sont les API auxquelles on passe en paramètre ",16" et qui affiche des nombres en base 16, comme, par exemple : System.out.println(Integer.parseInt("80",16));
ou bien qui affichent en héxadécimal, comme : System.out.println(Integer.toHexString(i));
Ericcson
Olivier Thomann
Le Sat, 14 Feb 2004 08:01:12 +0100, "Ericcson" a
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E" dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce qu'il doit faire avec "3445" pour afficher "N". Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34" puis "45") et m'affiche "N". Ok, je comprends mieux le problème. Je vais regarder.
-- Olivier
Le Sat, 14 Feb 2004 08:01:12 +0100, "Ericcson" <Ericcson@wanadoo.fr> a
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E"
dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce
qu'il doit faire avec "3445" pour afficher "N".
Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34"
puis "45") et m'affiche "N".
Ok, je comprends mieux le problème. Je vais regarder.
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E" dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce qu'il doit faire avec "3445" pour afficher "N". Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34" puis "45") et m'affiche "N". Ok, je comprends mieux le problème. Je vais regarder.
-- Olivier
Olivier Thomann
Le Sat, 14 Feb 2004 08:01:12 +0100, "Ericcson" a
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E" dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce qu'il doit faire avec "3445" pour afficher "N". Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34" puis "45") et m'affiche "N". Peut-être cherches-tu quelque chose comme ça:
Le Sat, 14 Feb 2004 08:01:12 +0100, "Ericcson" <Ericcson@wanadoo.fr> a
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E"
dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce
qu'il doit faire avec "3445" pour afficher "N".
Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34"
puis "45") et m'affiche "N".
Peut-être cherches-tu quelque chose comme ça:
Merci, Olivier, pour la réponse très détaillée, mais je ne veux pas "4E" dans la console, mais "N", et cela sans que j'ai moi-même à lui dire ce qu'il doit faire avec "3445" pour afficher "N". Je cherche donc s'il existe une méthode d'API qui lise deux octets ("34" puis "45") et m'affiche "N". Peut-être cherches-tu quelque chose comme ça:
"Olivier Thomann" a écrit dans le message de news:
Peut-être cherches-tu quelque chose comme ça: ....
OK, Olivier, ton programme marche très bien mais dans la question que je pose test.txt ne doit pas contenir 004E mais 3445.
Ericcson
Olivier Thomann
Le Sat, 14 Feb 2004 19:21:55 +0100, "Ericcson" a
OK, Olivier, ton programme marche très bien mais dans la question que je pose test.txt ne doit pas contenir 004E mais 3445. Dans ce cas tu n'as pas le choix de faire la conversion toi-même. Tu
veux lire un fichier texte et le décoder en tant que nombre hexadécimal. Pas très consistant tout ça :-). -- Olivier
Le Sat, 14 Feb 2004 19:21:55 +0100, "Ericcson" <Ericcson@wanadoo.fr> a
OK, Olivier, ton programme marche très bien mais dans la question que je
pose test.txt ne doit pas contenir 004E mais 3445.
Dans ce cas tu n'as pas le choix de faire la conversion toi-même. Tu
veux lire un fichier texte et le décoder en tant que nombre
hexadécimal. Pas très consistant tout ça :-).
--
Olivier
OK, Olivier, ton programme marche très bien mais dans la question que je pose test.txt ne doit pas contenir 004E mais 3445. Dans ce cas tu n'as pas le choix de faire la conversion toi-même. Tu
veux lire un fichier texte et le décoder en tant que nombre hexadécimal. Pas très consistant tout ça :-). -- Olivier
Ericcson
"Olivier Thomann" a écrit dans le message de news:
Le Sat, 14 Feb 2004 19:21:55 +0100, "Ericcson" a
OK, Olivier, ton programme marche très bien mais dans la question que je pose test.txt ne doit pas contenir 004E mais 3445. Dans ce cas tu n'as pas le choix de faire la conversion toi-même. Tu
veux lire un fichier texte et le décoder en tant que nombre hexadécimal. Pas très consistant tout ça :-).
Ok, Olivier. La consistance vient de ceci : 1. "3445" , c'est "4E" et 0x4E c'est "N" 2.dans : System.out.println(Integer.parseInt("80",16)); "3830" est bien transformé en 128 Il n'est donc pas si inconsistant de s'interroger sur le point de savoir s'il existe une méthode qui transforme "3445" en "N".
Quant au pourquoi vouloir le faire, je pourrais te dire que j'ai un fichier crypté, que le décryptage ne donne pas directement "4E" mais "3445", qu'une phase supplémentaire est donc nécessaire pour passer de "3445" à "4E", que je n'ai attendu personne pour le faire, mais que j'étais curieux de savoir si l'on pouvait faire plus rapide etc...etc... etc... mais à quoi bon car c'est toujours plus beau lorsque c'est inutile.
Ericcson Ericcson
"Olivier Thomann" <olivier_thomann@sympatico.caNOSPAM> a écrit dans le
message de news:glrs20h5q6hin4no0i6125m9fg4h5sbt1a@4ax.com...
Le Sat, 14 Feb 2004 19:21:55 +0100, "Ericcson" <Ericcson@wanadoo.fr> a
OK, Olivier, ton programme marche très bien mais dans la question que je
pose test.txt ne doit pas contenir 004E mais 3445.
Dans ce cas tu n'as pas le choix de faire la conversion toi-même. Tu
veux lire un fichier texte et le décoder en tant que nombre
hexadécimal. Pas très consistant tout ça :-).
Ok, Olivier.
La consistance vient de ceci :
1. "3445" , c'est "4E" et 0x4E c'est "N"
2.dans : System.out.println(Integer.parseInt("80",16));
"3830" est bien transformé en 128
Il n'est donc pas si inconsistant de s'interroger sur le point de savoir
s'il existe une méthode qui transforme "3445" en "N".
Quant au pourquoi vouloir le faire, je pourrais te dire que j'ai un fichier
crypté, que le décryptage ne donne pas directement "4E" mais "3445", qu'une
phase supplémentaire est donc nécessaire pour passer de "3445" à "4E", que
je n'ai attendu personne pour le faire, mais que j'étais curieux de savoir
si l'on pouvait faire plus rapide etc...etc... etc... mais à quoi bon car
c'est toujours plus beau lorsque c'est inutile.
"Olivier Thomann" a écrit dans le message de news:
Le Sat, 14 Feb 2004 19:21:55 +0100, "Ericcson" a
OK, Olivier, ton programme marche très bien mais dans la question que je pose test.txt ne doit pas contenir 004E mais 3445. Dans ce cas tu n'as pas le choix de faire la conversion toi-même. Tu
veux lire un fichier texte et le décoder en tant que nombre hexadécimal. Pas très consistant tout ça :-).
Ok, Olivier. La consistance vient de ceci : 1. "3445" , c'est "4E" et 0x4E c'est "N" 2.dans : System.out.println(Integer.parseInt("80",16)); "3830" est bien transformé en 128 Il n'est donc pas si inconsistant de s'interroger sur le point de savoir s'il existe une méthode qui transforme "3445" en "N".
Quant au pourquoi vouloir le faire, je pourrais te dire que j'ai un fichier crypté, que le décryptage ne donne pas directement "4E" mais "3445", qu'une phase supplémentaire est donc nécessaire pour passer de "3445" à "4E", que je n'ai attendu personne pour le faire, mais que j'étais curieux de savoir si l'on pouvait faire plus rapide etc...etc... etc... mais à quoi bon car c'est toujours plus beau lorsque c'est inutile.
Ericcson Ericcson
Ericcson
"Olivier Thomann" a écrit dans le message de news:
Dans ce cas tu n'as pas le choix de faire la conversion toi-même.
Je pense avoir trouvé la solution : le fichier text contient : "4E4F50" c'est-à -dire "NOP" il est constitué de la succession suivante d'octets : 344534463530
en prenant les octets deux par deux : s = str.substring(i, i+2) puis en faisant : c = Integer.parseInt(s,16) et en affichant (char) c j'obtiens bien NOR.
Ericcson
"Olivier Thomann" <olivier_thomann@sympatico.caNOSPAM> a écrit dans le
message de news:glrs20h5q6hin4no0i6125m9fg4h5sbt1a@4ax.com...
Dans ce cas tu n'as pas le choix de faire la conversion toi-même.
Je pense avoir trouvé la solution :
le fichier text contient :
"4E4F50"
c'est-à -dire "NOP"
il est constitué de la succession suivante d'octets : 344534463530
en prenant les octets deux par deux :
s = str.substring(i, i+2)
puis en faisant :
c = Integer.parseInt(s,16)
et en affichant (char) c j'obtiens bien NOR.
"Olivier Thomann" a écrit dans le message de news:
Dans ce cas tu n'as pas le choix de faire la conversion toi-même.
Je pense avoir trouvé la solution : le fichier text contient : "4E4F50" c'est-à -dire "NOP" il est constitué de la succession suivante d'octets : 344534463530
en prenant les octets deux par deux : s = str.substring(i, i+2) puis en faisant : c = Integer.parseInt(s,16) et en affichant (char) c j'obtiens bien NOR.