begin process at 2012 05 28 15:10:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

chaine binaire ou non


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

chaine binaire ou non

mercredi 3 septembre 2003 à 19:29:11 | chaine binaire ou non

Anacr0x

Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...

Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
mercredi 3 septembre 2003 à 19:37:51 | Re : chaine binaire ou non

BruNews

Administrateur CodeS-SourceS
Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
>
> Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
mercredi 3 septembre 2003 à 19:45:18 | Re : chaine binaire ou non

Anacr0x

en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
merci quand même

-------------------------------
Réponse au message :
-------------------------------

> Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> >
> > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
>
mercredi 3 septembre 2003 à 20:10:08 | Re : chaine binaire ou non

aardman

Membre Club
Salut,
Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
Ca devrait fonctionner je pense.

-------------------------------
Réponse au message :
-------------------------------

> en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> merci quand même
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > >
> > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> >
>
mercredi 3 septembre 2003 à 20:13:01 | Re : chaine binaire ou non

Anacr0x

ok merci je vais essayé

-------------------------------
Réponse au message :
-------------------------------

> Salut,
> Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
> Ca devrait fonctionner je pense.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> > merci quand même
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > > >
> > > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> > >
> >
>
mercredi 3 septembre 2003 à 20:21:54 | Re : chaine binaire ou non

Anacr0x

Bon ben soi ca ne marche pas, soi je m'y prend mal... en tt cas, g rien de bien convaincan...

Mais c'est pas très grav, j'ai pensé a une autre solution, je vais écrir "char" avant tte les chaines normales comme ca je pourrai facilement les reconnaitre, il me suffira juste de l'enlevé après pour l'afficher
@+

-------------------------------
Réponse au message :
-------------------------------

> ok merci je vais essayé
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
> > Ca devrait fonctionner je pense.
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> > > merci quand même
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > > > >
> > > > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> > > >
> > >
> >
>
mercredi 3 septembre 2003 à 20:37:42 | Re : chaine binaire ou non

aardman

Membre Club
Salut,
Si j'etais toi je mettrais un flag a la fin de la chaine aussi.
Imagine que ton client envoie 2 paquets, l'un est une chaine, l'autre est binaire: il est tout a fait possible que ton serveur recoive les 40 octets d'un coup dans un buffer, et interprete tout le buffer comme une chaine de caractere.
Moi je pense que tester la valeur de chaque octet est une meilleure idée, et en plus ca l'alourdira pas tes buffers.

-------------------------------
Réponse au message :
-------------------------------

> Bon ben soi ca ne marche pas, soi je m'y prend mal... en tt cas, g rien de bien convaincan...
>
> Mais c'est pas très grav, j'ai pensé a une autre solution, je vais écrir "char" avant tte les chaines normales comme ca je pourrai facilement les reconnaitre, il me suffira juste de l'enlevé après pour l'afficher
> @+
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > ok merci je vais essayé
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
> > > Ca devrait fonctionner je pense.
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> > > > merci quand même
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > > > > >
> > > > > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> > > > >
> > > >
> > >
> >
>
mercredi 3 septembre 2003 à 20:47:12 | Re : chaine binaire ou non

Anacr0x

Je pense aussi que tu as raison, surtout que je vien de testé ma technique, elle n'as pas l'air de fonctionner comme je le voulais...
Enfin, comme le teste de la chaine ne marche pas chez moi, j'ai pensé a une autre solution, pour évité tout les risque de conflit, je peut fair passé le transfert par un autre socket, mais pour cela il faut recrée une écoute sur un autre port et je la fleme de faire tt ca... Je crois que je vais resté a mon ancienne version ou on doit attendre que la création du fichier soit terminé pour pouvoir envoyé des message normaux...
Je ne vois pas d'autre technique simple

-------------------------------
Réponse au message :
-------------------------------

> Salut,
> Si j'etais toi je mettrais un flag a la fin de la chaine aussi.
> Imagine que ton client envoie 2 paquets, l'un est une chaine, l'autre est binaire: il est tout a fait possible que ton serveur recoive les 40 octets d'un coup dans un buffer, et interprete tout le buffer comme une chaine de caractere.
> Moi je pense que tester la valeur de chaque octet est une meilleure idée, et en plus ca l'alourdira pas tes buffers.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bon ben soi ca ne marche pas, soi je m'y prend mal... en tt cas, g rien de bien convaincan...
> >
> > Mais c'est pas très grav, j'ai pensé a une autre solution, je vais écrir "char" avant tte les chaines normales comme ca je pourrai facilement les reconnaitre, il me suffira juste de l'enlevé après pour l'afficher
> > @+
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > ok merci je vais essayé
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut,
> > > > Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
> > > > Ca devrait fonctionner je pense.
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> > > > > merci quand même
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > > > > > BruNews, ciao...
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > > > > > >
> > > > > > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> > > > > >
> > > > >
> > > >
> > >
> >
>
mercredi 3 septembre 2003 à 20:59:23 | Re : chaine binaire ou non

BruNews

Administrateur CodeS-SourceS
Dis voir Anacr0x, tu l'as ecrit comment ton teste ?
c'est du char (le type) sur lequel tu testes < 9 ???
En ce cas nenni, faut caster BYTE.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Je pense aussi que tu as raison, surtout que je vien de testé ma technique, elle n'as pas l'air de fonctionner comme je le voulais...
> Enfin, comme le teste de la chaine ne marche pas chez moi, j'ai pensé a une autre solution, pour évité tout les risque de conflit, je peut fair passé le transfert par un autre socket, mais pour cela il faut recrée une écoute sur un autre port et je la fleme de faire tt ca... Je crois que je vais resté a mon ancienne version ou on doit attendre que la création du fichier soit terminé pour pouvoir envoyé des message normaux...
> Je ne vois pas d'autre technique simple
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > Si j'etais toi je mettrais un flag a la fin de la chaine aussi.
> > Imagine que ton client envoie 2 paquets, l'un est une chaine, l'autre est binaire: il est tout a fait possible que ton serveur recoive les 40 octets d'un coup dans un buffer, et interprete tout le buffer comme une chaine de caractere.
> > Moi je pense que tester la valeur de chaque octet est une meilleure idée, et en plus ca l'alourdira pas tes buffers.
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bon ben soi ca ne marche pas, soi je m'y prend mal... en tt cas, g rien de bien convaincan...
> > >
> > > Mais c'est pas très grav, j'ai pensé a une autre solution, je vais écrir "char" avant tte les chaines normales comme ca je pourrai facilement les reconnaitre, il me suffira juste de l'enlevé après pour l'afficher
> > > @+
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > ok merci je vais essayé
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Salut,
> > > > > Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
> > > > > Ca devrait fonctionner je pense.
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> > > > > > merci quand même
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > > > > > > BruNews, ciao...
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > > > > > > >
> > > > > > > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
mercredi 3 septembre 2003 à 21:03:08 | Re : chaine binaire ou non

aardman

Membre Club
Salut,
Je viens de tester en testant si l'un des octets est <9.
Ca marche tres bien pour differencier du binaire et des chaines de caracteres.


-------------------------------
Réponse au message :
-------------------------------

> Dis voir Anacr0x, tu l'as ecrit comment ton teste ?
> c'est du char (le type) sur lequel tu testes < 9 ???
> En ce cas nenni, faut caster BYTE.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je pense aussi que tu as raison, surtout que je vien de testé ma technique, elle n'as pas l'air de fonctionner comme je le voulais...
> > Enfin, comme le teste de la chaine ne marche pas chez moi, j'ai pensé a une autre solution, pour évité tout les risque de conflit, je peut fair passé le transfert par un autre socket, mais pour cela il faut recrée une écoute sur un autre port et je la fleme de faire tt ca... Je crois que je vais resté a mon ancienne version ou on doit attendre que la création du fichier soit terminé pour pouvoir envoyé des message normaux...
> > Je ne vois pas d'autre technique simple
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > Si j'etais toi je mettrais un flag a la fin de la chaine aussi.
> > > Imagine que ton client envoie 2 paquets, l'un est une chaine, l'autre est binaire: il est tout a fait possible que ton serveur recoive les 40 octets d'un coup dans un buffer, et interprete tout le buffer comme une chaine de caractere.
> > > Moi je pense que tester la valeur de chaque octet est une meilleure idée, et en plus ca l'alourdira pas tes buffers.
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bon ben soi ca ne marche pas, soi je m'y prend mal... en tt cas, g rien de bien convaincan...
> > > >
> > > > Mais c'est pas très grav, j'ai pensé a une autre solution, je vais écrir "char" avant tte les chaines normales comme ca je pourrai facilement les reconnaitre, il me suffira juste de l'enlevé après pour l'afficher
> > > > @+
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > ok merci je vais essayé
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Salut,
> > > > > > Il faut tester tout les octets du buffer que tu as recu et si l'un d'entre eux est < 9 alors tu peux considerer ce que tu as recu comme du binaire. Aussi, il faut penser a envoyer les chaines de caracteres sans les caracteres NULL de la fin.
> > > > > > Ca devrait fonctionner je pense.
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > en testant avec if(buf[0]<9) par exemple, il le considere comme une chaine normale et l'affiche (d'ailleur il affiche n'importe quoi, et pas des 0 ou 1 contrairement a ce que je pensai...)
> > > > > > > merci quand même
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Disons que si tu as un octet < 9 tu consideres comme binaire, c'est une idee.
> > > > > > > > BruNews, ciao...
> > > > > > > >
> > > > > > > >
> > > > > > > > -------------------------------
> > > > > > > > Réponse au message :
> > > > > > > > -------------------------------
> > > > > > > >
> > > > > > > > > Voila mon problème : je recoit en temps normal par socket une chaine que j'afiche ds un edit, seulement, j'ai crée un systeme d'envoi de fichier qui peut également envoyé des chaine binaire que j'inscrit ds un fichier...
> > > > > > > > >
> > > > > > > > > Ma question est : comment je peut reconnaitre si la chaine est binaire ou non afin de pouvoir la traité comme il le faut ? J'ai essayé plusieur méthode mais sans succès...
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

1 2 3

Cette discussion est classée dans : fichier, binaire, chaine, ds


Répondre à ce message

Sujets en rapport avec ce message

Ecrire en binaire dans un fichier [ par pheno ] Bonjour Je dois réaliser un tp en C sur la compression avec la méthode Huffmanj ai construit l arbre et je récupère le chemin dans une chaine de carac problème de fermeture de fichier [ par RubikEID ] Salut à tous.Après pas mal de recherche je n'ai pas à réussi à trouver de réponse.je suis confronter au problème suivant : je veux effectue la recherc question sur ecriture ds un fichier [ par Battousai ] salut tout le monde,je suis nouveau ici et ceci est mon premier message :)ma question est sur les fichier, eneffet j'aimerait savoir si je peut ecrire insertion dans fichier binaire [ par thepunisher98 ] Bonjour.Je dois realiser un fichier binaire ou l'on place des structures triée par ordre alphabetique.Je dois travailler directement dans le fichier s Probleme de lecture d'un fichier x [ par Lavieillefolle ] Salut, j'aimerais savoir pourquoi, lorsque je tente de lire un fichier, avec ce code, je n'obtient qu'une boucle infinie?Code :#include #include main( ecrire octet par octet dans un fichier [ par naycos ] Voila je dois travailler dans un fichier ouvert en binaire (mode "w+b")Le but est d'écrire octet par octet. Bon du coup je me tourne naturelllement ve remplacer ds un fichier [ par flatou ] salutds un executable compilé, j'ai une variable de type char initialisé avec le texte AMODIFIER. Ce que je veux faire, c'est ouvrir le fichier (bon c récup de donnée dans un fichier text [ par ymlf ] Je veux récupere des données dans un fichier teste qui sont contenu entre une chaine de caractere et " .Aucun problème pour des petits fichier mais j' Ajouter exe en ressource binaire sous borland... [ par ChrOnOs83 ] Bon ben voila g de nouvo un pb...en faite g posté une kestion ds le forum demandant coment je pouvai ajouté un exe a mon projet...BruNews a pu maiclai Données en binaire [ par didrocks ] J'aimerai, à l'instar de denini dans "lire/ecrire fichier texte a plusieurs colonnes" faire un fichier de données dans lequel je pourrai écrire à part


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,560 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales