OVH Cloud OVH Cloud

IO Java et C++

6 réponses
Avatar
Bruno CAUSSE
Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit avec
un prog java.

Sinon quelle est la bonne methode?

Merci

6 réponses

Avatar
Pascal Pizeine
"Bruno CAUSSE" a écrit dans le message de
news:BE9D4684.2A5B%
Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit
avec

un prog java.

Sinon quelle est la bonne methode?

Merci



Si ton fichier est un ensemble de float il te suffit de lire 4 octets à la
fois. Par contre en C++ l'ordre des octet dépend de la machine alors qu'en
java c'est indépendant (c'est le pb entre little endian et big endian).

Pascal

Avatar
Trognon Patrice
Pascal Pizeine wrote:


"Bruno CAUSSE" a écrit dans le message de
news:BE9D4684.2A5B%
Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit
avec

un prog java.

Sinon quelle est la bonne methode?

Merci



Si ton fichier est un ensemble de float il te suffit de lire 4 octets à la
fois. Par contre en C++ l'ordre des octet dépend de la machine alors qu'en
java c'est indépendant (c'est le pb entre little endian et big endian).



coussi coussa, si tu lis sur une socket réseau (en java) des floats/doubles
écrit de l'autre coté par du C/C++, tu vas devoir te tapper les convertions
little/big endian dans le cas ou l'ecrivain et le lecteur sur sur 2 processeur
différents (sparc et intel par exemple).


--
Cordialement,

Patrice Trognon
http://www.javadevel.com


Avatar
Pascal Pizeine
"Trognon Patrice" a écrit dans le message de
news:42778eba$0$8031$
Pascal Pizeine wrote:


"Bruno CAUSSE" a écrit dans le message de
news:BE9D4684.2A5B%
Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit
avec

un prog java.

Sinon quelle est la bonne methode?

Merci



Si ton fichier est un ensemble de float il te suffit de lire 4 octets à
la


fois. Par contre en C++ l'ordre des octet dépend de la machine alors
qu'en


java c'est indépendant (c'est le pb entre little endian et big endian).



coussi coussa, si tu lis sur une socket réseau (en java) des
floats/doubles

écrit de l'autre coté par du C/C++, tu vas devoir te tapper les
convertions

little/big endian dans le cas ou l'ecrivain et le lecteur sur sur 2
processeur

différents (sparc et intel par exemple).




Oui je me suis mal exprimé
Ce que je voulais dire c'est que pour un programme java le format des
floats/doubles qu'il manipule est toujours le même quel que soit la
plateforme. Par contre ce qui est lu sur une socket réseau c'est plutot un
flux d'octets et là le problème du format se pose si l'émetteur n'est pas un
programme java.

Pascal

--
Cordialement,

Patrice Trognon
http://www.javadevel.com





Avatar
hibiki
Pascal Pizeine wrote:


"Bruno CAUSSE" a écrit dans le message de
news:BE9D4684.2A5B%

Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit


avec

un prog java.

Sinon quelle est la bonne methode?

Merci



Si ton fichier est un ensemble de float il te suffit de lire 4 octets à la
fois. Par contre en C++ l'ordre des octet dépend de la machine alors qu'en
java c'est indépendant (c'est le pb entre little endian et big endian).




coussi coussa, si tu lis sur une socket réseau (en java) des floats/doubles
écrit de l'autre coté par du C/C++, tu vas devoir te tapper les convertions
little/big endian dans le cas ou l'ecrivain et le lecteur sur sur 2 processeur
différents (sparc et intel par exemple).




Je ne vais surement pas être d'une grande aide mais je me rappelle qu'il
existe un format spécifique qui n'est ni little indian ni big indian,
justement pour éviter ce genre de problèmes.
Par contre du coup, il faut convertir dans les deux programmes.

--
Salutations,

Joachim Naulet

06 14 90 06 21
http://jnaulet.no-ip.com



Avatar
Trognon Patrice
hibiki wrote:

Pascal Pizeine wrote:


"Bruno CAUSSE" a écrit dans le message de
news:BE9D4684.2A5B%

Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit


avec

un prog java.

Sinon quelle est la bonne methode?

Merci



Si ton fichier est un ensemble de float il te suffit de lire 4 octets à
la fois. Par contre en C++ l'ordre des octet dépend de la machine alors
qu'en java c'est indépendant (c'est le pb entre little endian et big
endian).




coussi coussa, si tu lis sur une socket réseau (en java) des
floats/doubles écrit de l'autre coté par du C/C++, tu vas devoir te
tapper les convertions little/big endian dans le cas ou l'ecrivain et le
lecteur sur sur 2 processeur différents (sparc et intel par exemple).




Je ne vais surement pas être d'une grande aide mais je me rappelle qu'il
existe un format spécifique qui n'est ni little indian ni big indian,
justement pour éviter ce genre de problèmes.
Par contre du coup, il faut convertir dans les deux programmes.

--


ah ouaih !


tu peux completer STP.


Joachim Naulet


06 14 90 06 21
Y'en a qui cachent leur @mail etc, par contre c'est portes ouvertes :)


http://jnaulet.no-ip.com




--
Cordialement,

Patrice Trognon
http://wwW.javadevel.com




Avatar
Samuel Krempp
(03 May 2005 15:17, <BE9D4684.2A5B%) a

Peut t'on lire avec un prog C++, un fichier binaire (des floats) ecrit
avec un prog java.

Sinon quelle est la bonne methode?


chercher un format pour l'echange java <-> C++ (si possible déja implémenté
des 2 cotés)..

je penserais à
- texte (coté portabilité, ça reste une valeur sure. le XML en est la preuve
vivante)
- utiliser corba pour gerer la sérialisation multi-langage
- implémenter en C++ le format utilisé par Java
(par exemple en se basant sur boost::serializaion,
http://www.rrsd.com/boost/libs/serialization/doc/derivation.html)

--
Samuel