 Groupe : Membres
|
Bonjour  ,
je suis en train de réaliser un application Qt qui génère du code source. J'enregistre ce code source dans un fichier. Voila mon code :
Code : C++ 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | QFile file("../drivers/"+titreExt+"/Makefile");
file.open (QIODevice::ReadWrite | QIODevice::Text);
QString chaine1;
chaine1="OBJS = "+titreSansExt+"start.o "+titreSansExt+"core.o \n"
"all: $(OBJS) \n "
"\t$(LD) $(LDFLAGS) -Ttext "+adresse2+" -o "+titreSansExt+".b $(OBJS)\n "
"\tobjcopy -R .note -R .comment -R .eh_frame -S -O binary "+titreSansExt+".b \n"
+titreExt+" \n"
"\tcp "+titreExt+" $(DESTDIR)/Logram/sys64/drivers/"+titreExt+" \n"
"\n"
"%.o: %.c \n"
"\t$(CC) $(CFLAGS) -o $*.o $*.c \n"
"\n "
"%.o: %.s \n"
"\t$(AS) $(ASMFLAGS) -o $*.o $*.s \n"
" - \n"
"clean: \n"
"\trm *.b \n"
"\trm *.o \n"
"\trm *.ext \n";
QTextStream out(&file);
out.setCodec("UTF-8");
out << chaine1 <<endl;
|
mais voila le fichier qui en resulte :
Code : Console | OBJS = driverstart.o drivercore.o
all: $(OBJS)
$(LD) $(LDFLAGS) -ÂTtext 0x6545 -Âo driver.b $(OBJS)
objcopy -ÂR .note -ÂR .comment -ÂR .eh_frame -ÂS -ÂO binary driver.b
driver.ext
cp driver.ext $(DESTDIR)/Logram/sys64/drivers/driver.ext
%.o: %.c
$(CC) $(CFLAGS) -Âo $*.o $*.c
%.o: %.s
$(AS) $(ASMFLAGS) -Âo $*.o $*.s
clean:
rm *.b
rm *.o
rm *.ext |
Il me rajoute des -Â alors que je n'en ai pas mis dans le texte de depart
Merci de votre aide
|
 Groupe : Membres
|
|
Linux, à la VI, à la MORE
 Groupe : Membres
|
Je crois que en console, ça fait des misères les accents, je te conseille de faire une petite appli GUI comme ça tu n'auras plus de soucis. (quitte à utiliser les TextCodec pour enlever tout problème d'encodage)
ou
alors tu as des caractères cachés ... (genre tu as utilisés ton fichier sous windows et linux)
Édité
le 18/07/2008 à 09:40:07
par gripsou
|
 Groupe : Membres
|
Enfait ce n'est pas en console : le 2eme code est le contenu du fichier apres avoir éxécuté le 1er code  C'est un application GUI. Et je ne pense pas avoir des caractères cachés, je n'ai codé que sous linux, et j'ai utilisé le setCodec en le mettant à UTF-8
|
Linux, à la VI, à la MORE
 Groupe : Membres
|
 Cette réponse a aidé l'auteur du sujet
Essaye de mettre ça dans ton main:
Code : C++1
2
3
4 | #include <QTextCodec>
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
|
setCodecForTr a mettre que si tu utilises la fonction dans le but de traduire plus tard.
EDIT: plus j'y pense moins je me dis que c'est un problème d'encodage. Je te conseille à tout hasard de retaper le code histoire d'être sur qu'il n'y ai pas de caractères bizarres ou je ne sais quoi.
Édité
le 18/07/2008 à 11:51:15
par gripsou
|
 Groupe : Membres
|
ok, je vais tester ça, et si ça marche pas je retaperais
Merci
|
 Groupe : Membres
|
ça marche
Je ne sais pas trop si c'est le textcodec ou le fait d'avoir recopié à la main le texte mais ça marche  Merci beaucoup
|