Utiliser ANSI au lieu d'ASCII

Résolu
cs_Telepathmaster Messages postés 46 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 7 août 2008 - 28 avril 2005 à 21:51
cs_Telepathmaster Messages postés 46 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 7 août 2008 - 1 mai 2005 à 00:50
Bonjour,

Je dois développer une sorte de serveur en C++, qui permette les transferts de fichiers.
Ayant fait mon serveur et un client adapté, j'essaie d'envoyer une image et une musique.

Le problème, c'est que les deux fichiers utilisent les caractères codés en ANSI, et le problème essentiel réside dans le caractère 0 des deux languages : en ascii, 0 est "NULL", tandis qu'il représente  en ANSI.
Je voudrais donc savoir comment obliger mon programme a utiliser les normes ANSI plutôt qu'ascii (je compile avec dev-cpp).

Merci d'avance

5 réponses

NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
30 avril 2005 à 01:39
NULL est une macro, définie à zéro(0) en C++ et à ((void *)0) en C

que ce soit en Ascii, Ansi, Unicode, etc ... le caractère de fin de chaine est 0, '\0', 0x00, 0x0000, etc ... ==>> 0 ==>> Zéro ...

assure toi de lire/écrire en binaire et non en texte, si ca ne fonctionne toujours pas, regarde au niveau du tranfert des données ... la meilleur solution est de ne pas tenir compte du type des fichiers, tu lis/écris en binaire et c'est tout. sinon, vas-y plus `low-level`, sans stl ...

~(.:: NitRic ::.)~
3
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
29 avril 2005 à 09:53
Je pige pas trop ce que tu raconte là :
ASCII : American Standard Code for Information Interchange
ANSI : American National Standards Institute
http://fr.wikipedia.org/wiki/ANSI

l'ASCII est un standard crée par l'ANSI pour mapper les caractères à des valeurs numériques stockable par un ordinateur.

A mon avis ton problème vient plutot du fait que tu ne manipules pas tes fichiers en binaire, seul moyen de gérer des images et de la musique. Si tu les ouvre en mode texte les caractères nuls sont effectivement mal géres.
0
cs_Telepathmaster Messages postés 46 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 7 août 2008
29 avril 2005 à 14:48
Je les ouvres avec ios::binary
0
cs_Telepathmaster Messages postés 46 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 7 août 2008
29 avril 2005 à 14:49
en ascii, 0 est "NULL", tandis qu'il représente  en ANSI.

Pour ça si tu ne me crois pas consultes des tables.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Telepathmaster Messages postés 46 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 7 août 2008
1 mai 2005 à 00:50
Ok, je savais as que ça représentait aussi la fin de chaîne. Donc naturellement ça passait pas dans le socket (transfert réussi de 0 caractÚres).
Donc ça m'a permi de régler ça, merci.
0
Rejoignez-nous