Aide - Recherche - Membres - Calendrier
Version complète : heeeeeeeeelp
CandiULB > Discussions Générales > Autres Discussions > Autres discussions - Le classique
dutdut
pour créer une image et 256 niveaux de gris, j'ai eu besoin de donnée de 8 bits; j'ai donc utilisé des caractére mais, avec ofstream, quand je rajoute de char 10(saut de ligne) à mon fichier, il y a le char 13(retour chariot) qui apparet avant.
Si qqun à une idée qu'il me la dise.
Ryo Saeba
y'a bien une méthode qui devraiit marcher mais qui est sans doute assez pourrie, c'est de faire ça en 2 passes.. tu rajoutes ton char(10) qui te rajoute automatiquement ton char(13) (c'est étonnant comme truc!!) et ensuite tu repasses et tu supprimes tous les char(13) wink.gif
dutdut
c'est effectivement pourie car j'ai aussi besoin du carectere 13 et il peu aussi arriver que j'ai un char 13 puis un char 10 car sur un dessein l'utilisateur peu faire ce qu'il veux.

merci d'avoir essayésad.gif
Minh
Le format texte Dos utilise 2 caractere pour un retour a la ligne.
Ce que tu peux faire c'est soit faire tourner ton programme sous Unix/Linux ou prendre un editeur de texte comme metapad pour convertir ton fichier texte format dos en format unix.
dutdut
j'édit pour retire ce que j'ai dis. c'est pas con. il faut m excusé j'y ai passé toute la nuit.
si quelqu'un sait comment on le faire dans son propre programme pour retirer un caractere dans un flux (ca serait bien plus propre que de donner une image fausse a corriger avec un traitement de txt), merci de me le dire.
Ryo Saeba
Minh > Lancer l'image dans un éditeur de texte pour remplcer les 10-13 en simple 10 (convertir de windows en Unix) comme tu proposais revient à faire une deuxième passe lors de la création du fichier pour supprimer tous les 13 qui sont précédés d'un 10 comme j'avais proposé dans mon message précédent...
Mais si, comme l'a dit dutdut, il peut avoir besoin de certains 10-13 tels quels, alors je vois pas comment faire sad.gif
dutdut
en fait je peu tout a fait le faire car si j'ai un machin du genre:
... 40 13 10 55 ...
ce sera transformé en
... 40 13 13 10 55 ...
la je ne retirerais que le deuxieme 13.
C'est pour ca que j'ai changé mon dernier reply car j'y avais marqué une chose un peu samblable au tien(c'est la meme chose ca ne marche pas...)
il ne faut pas de seconde passe car je peu faire un teste :
si j'ai dix je l'ajoute puis je retire le 13 qui se trouve avant.

Mais je ne sais pas comment retirer dans un flux ofstream(ni dans les autre)
Ryo Saeba
effectivement, pas besoin de seconde pass... Maintenant, pour retirer, c'est pas trop à moi qu'il faut demander... Zarglor saura p't'etre t'aider, vais lui dire de passer par ici wink.gif
dutdut
j'ai trouvé commant l'ouvrire en binaire(sans traduction de fin de ligne ni caractere de fin de doc qui arrete la lecture)

ifstream src;
src.open("image.raw", ios::in | ios::binary );

ofstream dest;
dest.open("image.raw", ios::out | ios::binary );

ou

ifstream src("image.raw", ios::in | ios::binary );
ofstream dest("image.raw", ios::out | ios::binary );
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.