leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 21 sept. 2004 à 20:10
const int fd = Open (argv [1], O_WRONLY | O_CREAT | O_TRUNC, 0777);
Dup2 (fd, 1);
Close (fd);
ca c'est sous unix, et a partir de la des que tu ecris ds cout, tu ecris ds ton fichier argv [1], regarde les equivalents de dup ou dup2, open et close sous windows, ca peut peut-etre marcher (ds la table des files descriptors, on a tjs 0 clavier, 1 sortie std, 2 sortie std d'erreur) faudrait que tu vois si tu peux faire un truc du meme genre sous windows, je crois ke au moins open et close on t leurs equivalents, a toi de fouiller paske la je maitrise pas trop
Gmrinfo
Messages postés8Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention22 septembre 2004 22 sept. 2004 à 11:19
- vecchio56 merci mais si j'utilise sprintf je modifie le code alors que je ne dois pas y toucher merci quand même
- leprov j'avais bien pensé à cela mais ca ca écrit dans un fichier moij'aimerais que ca écrive dans un Tmemo en direct a chaque fois qu'un printf ce fait.
Gmrinfo
Messages postés8Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention22 septembre 2004 22 sept. 2004 à 14:05
je ne sais pas comment avec le fd de mon memo et de plus je ne vois pas pourquoi ton code redirigerai la sortie standard (fd =1 ) sur mon memo. Je te rappelle que j'aimerais que cela ce fasse avec un printf
En France on n'a pas de pétrole mais on a des idées
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 22 sept. 2004 à 17:48
leprov > Gmrinfo est sous builder, meme si ya le support de posix, il serais plus coherent de passer par l'api windows win32 ou le rt de builder (qui au final appel les fonction de l'api)
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 22 sept. 2004 à 18:15
peut-etre djl, mais etant donné ke je sais pas faire avec les apis, je donne une solution que je connais. comment marche le truc?
bah tu dis que le pointeur de fd de ta sortie standard pointe finallement sur le fd de ton memo, ce qui fait que tout ce qui sort avec printf sort finallement ds ton fichier.
sinon methode tte bete: tutilise printf dc je suppose ke cest une appli console, fait un batch genre
@echo off
ton_prog > fich
c'est surement pas ce que tu attends de ton prog, mais en attendant une meilleure solution, et si tu as besoin de faire tourner ton prog en attendant mieux.....
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 22 sept. 2004 à 22:53
Sinon il y a freopen, qui permet de rediriger un fichier vers un autre fichier ou vers la console (grâce à la valeur spéciale "CON" dans le style :
freopen("CON", "w", stdout);
freopen("CON", "r", stdin);
freopen("CON", "w", stderr);
Mais pour rediriger vers ton TMemo, déjà faut voir si c'est possible de rediriger vers une chaîne de caractères, et si c'est le cas alors là faudrait trouver un moyen d'associer cette chaîne à ton TMemo...
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Gmrinfo
Messages postés8Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention22 septembre 2004 23 sept. 2004 à 11:25
Je crois que vous avez bien compris mon problème
quelques petites précisions :
- ce n'est pas une appli console donc en fait quand il y a un printf (puisqu''il y en a plusieurs en fait) ca "n'apparait pas" dans mon programme.
- les printf c'est pas moi qui les ai mis c'est encore une fois une contrainte imposée.
- j'aimerais que l'affichage des chaines de caractères se fasse en direct dans mon memo après chaque printf.
- je ne crois pas qu'on puisse lier un descripteur de fichier avec Un TMEMo de builder
Mais je crois crois bien que lorsque qu'on écrit sur std out, il doit y avoir un buffer de réception, peut être existe t il un handler qui puisse se déclencher à la réception des caractères envoyé par printf dans ce cas là je redéfinis le handler et mets un
TMemo->Add(chaine de caractères) et le tour est joué. Mais je sais pas si ce handler ou équivalent existe.
En France on n'a pas de pétrole mais on a des idées
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 23 sept. 2004 à 15:55
Ouais on avait bien compris le pb, presonnellement je t'ai dit tout ce que je savais...il te reste Google ou virer tes printfs ^^
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/