Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ostringstream effacer

65 réponses
Avatar
Ael Rowan Terence
Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais j'ai du
mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?

10 réponses

3 4 5 6 7
Avatar
Ael Rowan Terence
"Alain Gaillard" a écrit dans le message de
news:

Si l'exemple et les réponses apportées plus haut ne suffisent pas pour
eclaircir se que je veux faire, je préfère abandonner cette conversation
qui


ne mene nulle part.


James en programmeur C++ très expérimenté qu'il est, je devrais même
dire expert en fait, voulait te mener vers la solution naturelle, qui
devrait s'imposer naturellement à toi.


Il ne viendrait pas à l'idée de contester son expertise du langage.

Mais la solution naturelle ce n'est pas ce que je cherchais.

J'ai bien compris la difficulté de connaitre avec précision l'etat du flux,
je l'en remercie.
Mais ma demande n'etait pas celle-là.

Et je ne veux pas me laisser entrainer dans un debat philosophique sur un
point qu'il ne peut accepter : c-a-d l'utilisation de oss.str("")
La reponse m'a été gentiment donnée par Cyrille, et cela suffit à mon
bonheur.


Avatar
Ael Rowan Terence
"James Kanze" a écrit dans le message de
news:
On Jul 5, 1:26 pm, "Ael Rowan Terence" wrote:

[...]
Quant à James, est-il vraiment nécessaire que je justifie
pourquoi le seul __ oss.str("")__ , suffit pour resourdre ma
problématique.


Je ne connais pas ta problématique ; je ne peux
donc pas juger.


J'ai essayé tout au long du fil d'expliquer que je veux juste une info,
concernant l'effacement du contenu d'un ostringstream
La réponse m'a été apportée, tu l'as complétée.
Jusque là c'est super.


Ce que je sais, c'est que bien trop souvent, on
essaie de réutiliser des flux (particulièrement des
stringstream) quand ce qu'on veut réelement, c'est un nouveau
flux.


A partir de là tu pars tout seul dans ton film, et plus rien ne semble
pourvoir t'arrêter.
Comme apparament tu connais mieux que moi ce que je cherche "réellement", la
discussion devient inextricable.



Ce qui ne va pas sans problèmes, dont le premier c'est que
c'est moins transparent au lecteur, qui se pose la question :
de quoi a-i-il besoin dans cet ancien flux, qui fait qu'il ne
prend pas un nouveau ?



En fin de compte, c'est Alain qui a compris le sens de mon
intervention. C'est de faire reflechir.


Effectivement si je ne pense pas à réfléchir ...

La solution « par defaut », c'est le nouveau flux. Il y a parfois des
raisons

pour s'écarter de la solution par defaut, mais il faut bien
comprendre alors pourquoi on le fait -- écarter d'une solution
« standard » doit être une demarche motivée.


Rien avoir avec le sujet de la question initiale.


Avatar
Ael Rowan Terence
"James Kanze" a écrit dans le message de
news:
On Jul 5, 11:41 am, "Ael Rowan Terence" wrote:

[...]
Pour l'aspect temps d'execution, cela, à priori, me semble faux.
Et une vérification s'impose.


En effet, tant qu'on ne l'a pas vérifé, on ne sait pas.
D'ailleurs, même une fois qu'on l'a vérifié, on ne sait que pour
une implémentation donnée ; ça pourrait être completement
l'opposé avec une autre implémentation. En général, c'est une
perte de temps d'y penser avant que le profiler en a montré la
nécessité.



Donc, toi aussi, tu t'inscris en faux sur l'affirmation de "Christophe
Lephay "

<Citation>
Sauf que la création d'un nouveau flux est à la fois plus rapide en temps de
développement, en temps d'exécution, et plus fiable.
<Citation/>

En tout cas elle n'est pas vrai dans tous les cas de figure sur l'aspect
"temps d'exécution".


Avatar
Christophe Lephay
"Ael Rowan Terence" a écrit dans le message de news:
f6l03c$6ar$
"James Kanze" a écrit dans le message de
news:
On Jul 5, 11:41 am, "Ael Rowan Terence" wrote:

[...]
Pour l'aspect temps d'execution, cela, à priori, me semble faux.
Et une vérification s'impose.


En effet, tant qu'on ne l'a pas vérifé, on ne sait pas.
D'ailleurs, même une fois qu'on l'a vérifié, on ne sait que pour
une implémentation donnée ; ça pourrait être completement
l'opposé avec une autre implémentation. En général, c'est une
perte de temps d'y penser avant que le profiler en a montré la
nécessité.



Donc, toi aussi, tu t'inscris en faux sur l'affirmation de "Christophe
Lephay "

<Citation>
Sauf que la création d'un nouveau flux est à la fois plus rapide en temps
de
développement, en temps d'exécution, et plus fiable.
<Citation/>

En tout cas elle n'est pas vrai dans tous les cas de figure sur l'aspect
"temps d'exécution".


Il dit que :

1- On ne peut rien affirmer tant qu'on n'a pas testé, et il se peut que cela
change d'une implémentation à l'autre ;

2- On s'en fout que ce soit plus rapide ou non tant qu'il n'est pas établi
(via un profiling) qu'on a besoin de quelque chose de rapide.

Dans tous les cas, il vaut mieux se méfier des idées reçues, et ce serait
une mauvaise idée de ne pas vouloir créer un nouveau flux sous pretexte
d'économiser de quelconques ressources, dont le temps d'exécution. C'est
pourquoi j'avais parlé du temps d'exécution, même s'il y manquait sans doute
les réserves d'usage.

Je ne sais pas s'il s'inscrit en faux à proprement parler dans la mesure où
il cite un exemple avec une string pour laquelle la création d'une nouvelle
était plus rapide.



Avatar
James Kanze
On Jul 6, 1:42 am, Sylvain wrote:
James Kanze wrote on 05/07/2007 10:24:

tu n'as pas le même post que moi ? pour ma part je lis "Quelle proc édure
employer pour effacer le contenu d'un ostringstrem".


Alors, il y a un problème, parce qu'un flux n'a pas de
« contenu ». Ça ne fait pas parti de l'abstraction d'un flux.


disons que cela dépendra du background de l'auteur, pour moi un 'flux' a
(dans la plupart des cas) un contenu, sinon c'est un pipe, un injecteur,
un formatteur.


Je suis peut-être vieux, mais quand je pense à un « stream »,
j'imagine surtout quelque chose du genre bande magnétique ou
bande perforée. Où le supporte « streams » sur la tête de
lecture. Il y a bien une « supporte », qui contient des
données, mais le concepte de flux est lié à la façon d'y
accéder. D'une façon vraiment rigueureuse, même « seek » n'y
appartient pas, et il y a des flux qui ne le supportent pas.
(Note bien que la spécification formelle des iostream se base
sur la norme C, qui elle se base sur des conceptes assez anciens
pour avoir pris des bandes magnétiques en compte. Donc, si tu
écris dans un flux bidirectionnel, l'implémentation peut
tronquer le fichier au dernier octet écrit -- sur une bande
magnétique, effectivement, une fois que tu écris, tout ce qui
suis sur la bande est perdue.)

je note ici que l'abstraction doit être une caractéristique
forte d'un flux.


Je ne sais pas. Disons que l'« utilisation normale » d'un
iostream va conformer à l'abstraction d'un flux : c-à-d un
accès séquentiel. Maintenant, les auteurs de la norme ont ajouté
des fonctions en plus de l'abstraction pûre, comme les seek, et
aussi des fonctions propre à des types de flux spécifiques. Et
il y a des cas où leur utilisation se justifie. Mais ce n'est
pas l'« utilisation normale ». Leur utilisation doit être
motivée, et on le fait avec attention -- les fonctions seek ne
se comportent pas le même selon le type de flux, par exemple, et
les règles sont même différentes pour un fstream selon qu'il est
en mode binaire ou mode texte. S'écarter de l'utilisation
normale cause des soucis en plus. Si on a quelque chose en
retour, bien. Sinon, il vaut mieux s'abstenir.

Comment effacer quelque chose qu'il n'y a pas, voilà la
question ?


ben ?! si il y a un contenu on l'efface, si il n'y en a pas on
ne fait rien, ou on assert ou on throw, ou ..., on le dis
juste dans la spec. non ?


En passant, istringstream a bien une fonction clear(), héritée
de ios, pour effacer son « contenu ». Seulement, ce n'est pas
le contenu qui semble t'intéresser:-). (Et non, je ne considère
pas les bits d'état effacés par clear() réelement un contenu. Je
ne pense pas qu'un flux, en général, ait un contenu.)

Comme j'ai déjà dit, l'abstraction d'un flux s'approche plus à
l'abstraction d'itérateur qu'à l'abstraction d'une collection.

D'un sens réel, un flux n'a pas de contenu ;
il s'apparente plus à un itérateur qu'à une collection.


ce point est réducteur et cette réduction me parait même erron ée.

un flux d'injection a un contenu et ce contenu est ce qui a été in jecté.


std::ofstream f( "/dev/tty" ) ;


erase() { f << (char) 12; }
ça marche depuis 30+ ans non ?


Je ne sais pas. Pas dans un xterm sous Solaris, ni sous Linux,
en tout cas. Ni avec VC++ sous Windows. (Même en remplaçant le
"/dev/tty" avec "CON" sous Windows, ça ne marche pas.)
f << (char)27 << "[2A" ;
marche, en revanche, au moins dans les xterm.

Mais ça contradit un peu ton assertation : le contenu est ce
qui a été injecté, non ? Ou est-ce que tu prétends que le
contenu d'un écran blanc, c'est les octets 27, 133, 50, et 65 ?

(Je suppose, en fait, que ta réponse était un peu d'humeur. Mon
essai de le prendre au pied de la lettre doit être compris dans
la même veine.)

Tu vas me dire que f a un contenu. Tu vas me dire que ça a un
sens d'« effacer » le contenu. Dans le cas de ostringstream,
il y a bien une collection derrière, mais ostringstream présente
à surtout l'interface d'un flux. On peut facilement récupérer la
chaîne qu'on a générée, mais au delà, on joue avec le feu.


pas compris - 'ostringstream' ne voulait sûremnt pas être cité en
opposition dans les 2 cas.


Pas compris ce que tu n'as pas compris. Quels deux cas ?

un flux d'extraction a un contenu et ce contenu est (au minimum) ce qui
n'a pas encore été extrait (on peux selon le type concrêt de la source
imaginer un rewind qui redonne accès au contenu initial intégral).


Tu te rends compte de ce que tu dis ? Encore l'exemple de
"/dev/tty" (je crois que c'est "CONS" sous Windows, mais je ne
suis pas sûr). Voire même n'importe quel fichier ; le
« contenu » du fichier ne change pas lors de l'extraction, à
ce que je sache.


je n'ai pas dit qu'un fichier *extrait* (parcouru) changeait - seul le
"pointeur de lecture" change, c'est lui que je rembobinais, remettais au
début du fichier.


Exactement. Le « pointeur de lecture ». Ce n'est pas un
concepte assez proche d'itérateur ? Et comme l'itérateur n'est
pas le conteneur, le flux n'est pas le médium.

Encore une fois, l'abstraction fondamentale des iostream, c'est
un flux. C'est beaucoup plus proche à un itérateur qu'à une
collection. Comme un itérateur, il peut y avoir une collection
derrière, ou non, selon le cas. Et comme un itérateur, il n'y a
pas de sense de parler d'en effacer le contenu.


je note que l'abstraction est non seulement une caractéristique forte
d'un flux mais même fondamentale.

c'est que qui me gène dans l'approche, je dis bien dans le style ! pas
sur le fond: que std::ostringstream ne soit pas prévu pour cela et qu'il
soit déconseillé de tirer parti de ce que semble faire telle méthode
n'est pas une solution, tu l'as expliqué et évidemment je n'oppose ri en
à cela.

mais l'approche (jouée sous la forme d'argument d'autorité, pardon po ur
la redite) cela est impossible (en général, et pas que pour cette
implémentation là) parce que nécessairement l'abstraction fondament ale
... est là pour me casser les pieds ?? me gène un peu.

dans un autre fil ("Problème d'héritage"), tu résumes (avec raison)
qu'un problème doit être regardé dans son contexte propre et (dans cet
exemple) que la réponse se trouve dans ce contexte.


Maintenant on commence à se comprendre.

Je ne dis pas qu'il ne faut jamais utiliser la version non-const
de str(). Je n'ai ici pas de contexte ; je ne peux pas dire
qu'on ne se trouve pas devant un cas spécial. Ce que je dis,
c'est que ce n'est pas une utilisation « normale », et que si
on veut un stringstream dans un état « vièrge », la meilleur
solution, c'est bien d'en créer un de neuf. (Si on veut, en
revanche, garder l'état de formattage existant, créer un nouveau
n'est pas forcement une bonne idée.)

Si je m'acharne sur des idées comme l'abstraction du flux, ou
qu'un flux n'a pas de « contenu », c'est avec idée de faire
reflechir ; de faire aller au delà des apparences, pour
comprendre mieux ce qu'on fait, et pourquoi.

de la même façon, j'ai la faiblesse de penser que si une abstraction est
nécessaire dans la défintion des services d'un flux, l'implémentati on
concrête d'un type de flux particulier peut trouver des réponses
(spécialisations) évidentes et pertinentes pour ce flux (comme défi nir
une chaine à '' ou effacer un shell).


Certes. Un stringstream est un flux, mais c'est un flux
particulier, avec une sémantique supplémentaire. (N'empeche que
je ne vois pas réelement la chaîne comme « contenu ». Mais
c'est peut-être parce que ce n'est pas comme ça que je
l'implémenterais.)

toutes mes classes d'injections ont des méthodes "empty" et selon le
type réel, j'oublie / efface / supprime une chaine, ou un contenu
(partiel ou complet) de fichier.


Alors, tu n'as pas bien compris l'abstraction que tu essaies
d'implémenter. Comme j'ai dit, les classes d'injection de la
norme ne l'ont pas.


euh si, j'ai très bien compris l'abtraction que je code.


Si tu es en train de coder stringstream, en effet. On parle ici
de stringstream. Si tu codes quelque chose dont l'abstraction
est un flux, non plus.

notre approche n'est sûrement pas la même, en court, je pose
généralement l'abstraction comme une proposition de services géné riques
que je résouds par le polymorphisme; tu sembles définir l'abstraction
comme quelque chose d'auto-contenu dans un seul concept pourtant
générique, dans un tel cas, l'objet en question n'a pas d'autre choix
que d'être restrictif.


J'ai bien une tendance à dire qu'un type doit implémenter une
seule abstraction, dans la mesure du possible.

En fait, même les classes de collection de
la norme ne l'ont pas ; leur fonction « empty() » ne ramène
pas la collection à son état initial.


il s'agit - enfin j'espère - de rester pragmatique et efficace - mon
expérience n'est pas que du "chez moi, paour m'amuser" - remettre à s on
état initial doit (aurait dû) être compris comme l'état visible de
l'extérieur et non moultes détails d'état interne comme tel buffer,
array ou autre point invisible au code utilisateur.


C'est un peu plus que ça, parce que parmi l'état visible de
std::vector, il y a bien std::vector<>::capacity(). Et son effet
sur les garanties des itérateurs.

Mais plus généralement, je pensais à une différence pas
forcement directement visible, mais qui peut avoir un effet
notable : le fait justement qu'il ne libère pas la mémoire. Tu
crée un vecteur avec une million d'éléments, puis tu fais
clear(), et tu lui insères un seul élément. Il utilise toujours
la mémoire pous une million.

C'est justement à cause de ces effets pas trop visible que
j'insiste : si tu veux un objet à l'état vièrge, il faut en
créer un nouveau.

[...]
pour re-illustrer le point précédent, je redirais qu'un flux est
précisément et avant tout ce contenu que l'on peut modifier (par
adjonction) et naturellement supprimer.


Seulement que c'est manifestement faux.


pour les flux de std.


Disons pour les flux qui dérivent de istream ou de ostream. Plus
généralement, quand je définis une classe qui surcharge les
opérateurs << ou >>, j'essaie de le rendre le plus semblable à
istream et ostream que possible, pour rapprocher au connu, et en
rendre la compréhension plus facile.

Maintenant, il y a bien des cas où cette abstraction ne convient
pas, et que je fais quelque chose d'autre. Dans ces cas-là, je
n'utilise pas les opérateurs << et >>, pour ne pas induire en
erreur, et j'évite de les appeler « flux » (ou stream), de
peur que le lecteur va tout de suite penser aux flux standard.
(D'un certain sens, le mot a été préempté par la norme. On
pourrait bien penser à d'autres définitions de flux dans une
contexte plus général, mais quand on entend « flux » dans la
contexte d'un programme C++, on comprend immédiatement des flux
standard, ou quelque chose qui leur ressemble étroitement.)

J'avoue que je ne peux pas imaginer un tel cas. Ça serait trois
fonctions différentes, non ? Chacune avec son flux. La question
serait plutôt quelque chose comme :


non cela peut ne pas se justifer, si je génére un XML, je ne vais pas me
taper (systématiquement) une méthode pour définir chaque attribut t exte
à formatter. si je génére un DER, je ne vais pas (systématiquemen t) me
taper une méthode pour encoder chaque data object.


Si je génère un XML, je vais générer le schéma complet dans un
seul flux, non ? Sans jamais le resetter. S'il me faut un flux
à part, je crois bien que j'en ferais une fonctionne à part,
mais j'imagine la plupart du temps que la situation serait
l'inverse : que j'ai une fonction pour générer les attributes
(par exemple), et que cette fonction prend un ostream& en
entrée.

[...]
je viens philosopher avec toi pour cela ;)


C'est souvent en contradisant quelqu'un qu'on apprend le plus:-).

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34




Avatar
Ael Rowan Terence
"Christophe Lephay" a écrit dans le message
de news:468e06bc$0$25946$
"Ael Rowan Terence" a écrit dans le message de news:
f6l03c$6ar$
"James Kanze" a écrit dans le message de
news:
On Jul 5, 11:41 am, "Ael Rowan Terence" wrote:

[...]
Pour l'aspect temps d'execution, cela, à priori, me semble faux.
Et une vérification s'impose.


En effet, tant qu'on ne l'a pas vérifé, on ne sait pas.
D'ailleurs, même une fois qu'on l'a vérifié, on ne sait que pour
une implémentation donnée ; ça pourrait être completement
l'opposé avec une autre implémentation. En général, c'est une
perte de temps d'y penser avant que le profiler en a montré la
nécessité.



Donc, toi aussi, tu t'inscris en faux sur l'affirmation de "Christophe
Lephay "

<Citation>
Sauf que la création d'un nouveau flux est à la fois plus rapide en
temps


de
développement, en temps d'exécution, et plus fiable.
<Citation/>

En tout cas elle n'est pas vrai dans tous les cas de figure sur l'aspect
"temps d'exécution".


Il dit que :

1- On ne peut rien affirmer tant qu'on n'a pas testé, et il se peut que
cela

change d'une implémentation à l'autre ;


C'est bien ce que je dis, à la suite de James et des tiennes maintenant ,
certaines implémentations invalideront ton affirmation :
plus rapide en temps d'execution.


2- On s'en fout que ce soit plus rapide ou non tant qu'il n'est pas établi
(via un profiling) qu'on a besoin de quelque chose de rapide.


Ha bon ! si "on s'en fout" , je me demande pourquoi même tu l'évoques.
Pour ma part je ne m'en fout pas, mais comme ce n'était pas le but de ma
demande, cela ne derange pas de suspendre ce point.


Dans tous les cas, il vaut mieux se méfier des idées reçues, et ce serait


Oui entierement d'accord avec toi, mefions nous des affirmations à l'emporte
piece.

une mauvaise idée de ne pas vouloir créer un nouveau flux sous pretexte
d'économiser de quelconques ressources, dont le temps d'exécution.


C'est ce que je nommerai une affirmation à l'emporte piece.
Plus précisément : affirmation à l'emporte piece ex-nihilo.
Je ne me rappelle qui que soit pretendant economiser un ressource en
s'évitant la création d'un flux.


C'est pourquoi j'avais parlé du temps d'exécution, même s'il y manquait
sans doute

les réserves d'usage.



C'est donc ça ... les "reserves d'usages".

Je ne sais pas s'il s'inscrit en faux à proprement parler dans la mesure


il cite un exemple avec une string pour laquelle la création d'une
nouvelle

était plus rapide.


D'accord, mon expression "s'inscrit en faux " est excessive




Avatar
Alain Gaillard
Le Fri, 06 Jul 2007 10:25:34 +0200, Ael Rowan Terence a écrit :

Mais ma demande n'etait pas celle-là.

Et je ne veux pas me laisser entrainer dans un debat philosophique sur un
point qu'il ne peut accepter : c-a-d l'utilisation de oss.str("")


S'il ne peut l'accepter, c'est parce qu'il a de bonnes raisons. Et ce que
tu devrais conclure c'est qu'il y a un problème de fond dans ta demande.
Mais bon on est dans un pays libre, donc libre à toi de t'entêter :)

--
Alain

Avatar
Michael DOUBEZ
James Kanze wrote on 05/07/2007 10:24:

tu n'as pas le même post que moi ? pour ma part je lis "Quelle procédure
employer pour effacer le contenu d'un ostringstrem".


Alors, il y a un problème, parce qu'un flux n'a pas de
« contenu ». Ça ne fait pas parti de l'abstraction d'un flux.


disons que cela dépendra du background de l'auteur, pour moi un 'flux' a
(dans la plupart des cas) un contenu, sinon c'est un pipe, un injecteur,
un formatteur.


Le seul contenu des flux est un pointeur vers un streambuf qui ne fait
qu'offrir les fonction d'ajout et de lecture de (w)caractères. Le
streambuf n'est même pas possédé par le stream.


je note ici que l'abstraction doit être une caractéristique forte d'un
flux.


En realité, les flux ne sont pas abstraits même du point de vue du
langage: il n'est pas possible d'hériter d'un flux.


Comment effacer quelque chose qu'il n'y a pas, voilà la
question ?


ben ?! si il y a un contenu on l'efface, si il n'y en a pas on ne fait
rien, ou on assert ou on throw, ou ..., on le dis juste dans la spec. non ?


Il s'agit donc bien d'effacer le contenu du streambuf sous-jacent en
supposant qu'il y en ait un.

Michael



Avatar
Christophe Lephay
"Ael Rowan Terence" a écrit dans le message de news:
f6l2hg$6i5$
"Christophe Lephay" a écrit dans le message
C'est bien ce que je dis, à la suite de James et des tiennes maintenant ,
certaines implémentations invalideront ton affirmation :
plus rapide en temps d'execution.


Non. James dit juste qu'on ne peut pas l'affirmer à l'avance.

2- On s'en fout que ce soit plus rapide ou non tant qu'il n'est pas
établi
(via un profiling) qu'on a besoin de quelque chose de rapide.


Ha bon ! si "on s'en fout" , je me demande pourquoi même tu l'évoques.


Je résumais ce que disait james, pas ce que je disais moi.

Pour ma part je ne m'en fout pas, mais comme ce n'était pas le but de ma
demande, cela ne derange pas de suspendre ce point.


C'est précisément parce qu'on a souvent pour (mauvaise) habitude de penser
un peu à la vitesse dès la phase de codage que j'ai parlé du temps
d'exécution, afin qu'une hypothétique lenteur ne soit pas retenue comme
critère pour ne pas créer un nouveau flux.

une mauvaise idée de ne pas vouloir créer un nouveau flux sous pretexte
d'économiser de quelconques ressources, dont le temps d'exécution.


C'est ce que je nommerai une affirmation à l'emporte piece.
Plus précisément : affirmation à l'emporte piece ex-nihilo.
Je ne me rappelle qui que soit pretendant economiser un ressource en
s'évitant la création d'un flux.


Sans que cela n'ait été dit explicitement, on a tout de même parlé de la
gestion des ressources (sylvain avec son "développement durable", james avec
le temps du développeur), et je trouve donc légitime de parler d'une autre
ressource, à savoir le temps d'exécution, dans la mesure où on pourrait être
tenté de ne pas créer un nouveau flux afin de "gérer les ressources".

C'est pourquoi j'avais parlé du temps d'exécution, même s'il y manquait
sans doute

les réserves d'usage.


C'est donc ça ... les "reserves d'usages".


Les réserves d'usage concernant les performances sont celles qu'a rappelé
james : les performances réelles doivent être testées au cas par cas, et on
ne doit s'en soucier qu'une fois qu'il a été établi qu'elles posaient
problème.


Avatar
Ael Rowan Terence
"Alain Gaillard" a écrit dans le message de
news:

Mais ma demande n'etait pas celle-là.

Et je ne veux pas me laisser entrainer dans un debat philosophique sur
un


point qu'il ne peut accepter : c-a-d l'utilisation de oss.str("")



S'il ne peut l'accepter, c'est parce qu'il a de bonnes raisons.


Je n'en disconvient nullement.
Est-ce suffisament clair comme-ça.




Et ce que tu devrais conclure c'est qu'il y a un problème de fond dans ta
demande.


J'en conclue que même la demande la plus basique amènent à des extremes
hallucinants.



Mais bon on est dans un pays libre, donc libre à toi de t'entêter :)


M'enteter à quoi ? tu ne m'a pas bien lu.

Je ne veux pas utiliser un solution ou une autre.
J'ai juste osé demander une information. Pour ensuite tester, vérifier par
moi-même.

Tout le debat sur faut-il utiliser ça à la place de ça, je ne veux pas y
prendre part.
Cela ne m'interesse pas.

Alors relis-moi bien et tu verras, que tu t'es laissé fourvoyer.


3 4 5 6 7