Retour a la ligne...

Résolu
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005 - 15 mai 2005 à 12:27
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005 - 16 mai 2005 à 07:37
Bonjours a tous,
j'aimerais savoir comment faire pour dire au programme qu'a chauqe fois qu'il rencontre un changement de ligne il doit le reporter aussi, car je vous explique ma fonction de convertion hexa fonctionne mais lorsqu'elle rencontre un caractere de retour chariot elle me le convertie ( elle m'affiche 0A ) au lieu d'effectuer se retour chariot...
j'ai donc fais :

.....
if ( buf[i]!=0x0A )
{
convertire......
}
else
....

et c'est le cas de else que je n'arrive as a faire, que doije metre dans mon buf pour qu'il soit interprété comme un retours chario et pas un caractere 0x0A ?

Merci d'avance pour votre aide.

6 réponses

yphelizo Messages postés 10 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 26 février 2006
15 mai 2005 à 18:03
Oui, d'accord, je comprend. Bon, je vois ce que vous voulez faire. Mouais, ce que tu peut faire c'est un truc du genre:
if(buf[i] != '\n')
{
sortie[j]="%";
j = j + 1;
sortie[j]="x";
j = j + 1;
sprintf( sortie, buf[i] );
}
else
{
sortie[i]='\n';
}
i = i + 1;

en fait sprintf va convertir votre caractere en caratere hexa. sortie sera de la forme:
0x0A 0x23 ... 0x2A
En mettant %x, on convertie l'élément en hexa mais en l'enregistrant dans une chaine de caratere.

Et voila. Je pense que la j'ai repondu a la question. Sinon, vous avez de droit de me frapper. (Evitons quand même les trucs SM ).

plus un ordinateur est puissant, plus il plante rapidement...
3
theneoiceman Messages postés 78 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 23 avril 2010
15 mai 2005 à 13:05
le caractere "retour chariot" est le caractere '\n'.

Donc tu fais :

if(buf[i] != '\n')

{
...

}

else

...



Voila voila
Mess with the best, die like the rest
0
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005
15 mai 2005 à 13:12
Oui mais ce que tu marque revient exactement au meme que ce que j'ai fais....
Ce que je cherche a faire c'estle code que j'incere dans ELSE, celui qui permet de ne pas interpreter le "line feed" comme un caractere mais comme un vrais retour a la ligne....
0
yphelizo Messages postés 10 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 26 février 2006
15 mai 2005 à 16:07
En fait je me demande si je comprend ton probleme. Mais tu es sous quoi? Système unix ou windows?
sous windows, Le caratère \n correspond en fait à 2 caratères: le caractère 0x0A (qui est retour au debut d'une ligne) et le caractère 0x0D (qui est la caractère pour descendre d'une ligne). Sous unix, il n'y a qu'un caractère (0x0D).

Dans le premier cas (windows), tu dois faire buf[i]=0x0A; buf[i]=0x0D; Dans l'autre cas, buf[i]=0x0D;.


Enfin, je ne suis pas vraiment sur d'avoir repondu à ta question .

plus un ordinateur est puissant, plus il plante rapidement...
0

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

Posez votre question
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005
15 mai 2005 à 16:45
Non en faite je conaissais les valeur hexa ....c'est pas ca que je demande...
Bon je recommance mes expliqcations :)

j'ai fais un editeur hexa decimale, tout les fichiers ouverts sont ecris dans une editebox en ASCII et dans une autre editebox en HEXA
le probleme c'est qu'en hexa lorsqu'il m'affiche le contenue du fichier il ne tient pas compte des retour chariot et saut de ligne (tout le texte est a la suite)...il se contente de m'afficher leur code au meme titre qu'un caractere normale...

moi ce que je voudrais c'est que des qu'il y a une 0x0A et 0x0D il y est un retour chariot dans mon editbox....pour suivre la structure de l'editbox en ASCII

Vous comprenez se que je veux dire ?
0
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005
16 mai 2005 à 07:37
C'est bon j'ai trouver en m'inspirant de ton code,
Merci a vous ;)
0
Rejoignez-nous