OVH Cloud OVH Cloud

Transformer une string en Stream ?

9 réponses
Avatar
Oriane
Hello,

savez-vous faire cela ?

Merci d'avance...

9 réponses

Avatar
Ambassadeur Kosh
re

utilises un StreamWriter, qui hérite de TextWriter.
le StreamWriter contient Write et WriteLine. le flux dans lequel tu écris,
il existe déja. soit c'est un fichier, soit c'est un MemoryStream. , on ne
"transforme" pas la chaine en stream, on pousse la chaine dans un stream
existant.

c'est tout. et à l'image du XmlWriter, n'hesite pas à te faire une classe
qui va correspondre à tes attentes.
Avatar
Oriane
Voir ma réponse sur fr.dotnet

"Ambassadeur Kosh" a écrit dans le message de news:
re

utilises un StreamWriter, qui hérite de TextWriter.
le StreamWriter contient Write et WriteLine. le flux dans lequel tu écris,
il existe déja. soit c'est un fichier, soit c'est un MemoryStream. , on ne
"transforme" pas la chaine en stream, on pousse la chaine dans un stream
existant.

c'est tout. et à l'image du XmlWriter, n'hesite pas à te faire une classe
qui va correspondre à tes attentes.




Avatar
Ambassadeur Kosh
MemoryStream, c'est un stream en mémoire. c'est comme une string, mais
"interfacée" pour faire du flux.
Avatar
Eric Mittelette[MS\)
Un bout de code :

MemoryStream ms = new MemoryStream(Convert.FromBase64String(s));
ou s est une string...

HTH
Eric

"Oriane" a écrit dans le message de news:
coeur2$pne$
Hello,

savez-vous faire cela ?

Merci d'avance...
Avatar
Oriane
J'ai une exception: "Longueur non valide pour pour une chaîne Base 64."...

"Eric Mittelette[MS)" a écrit dans le message de news: %23lyis$
Un bout de code :

MemoryStream ms = new MemoryStream(Convert.FromBase64String(s));
ou s est une string...

HTH
Eric

"Oriane" a écrit dans le message de news:
coeur2$pne$
Hello,

savez-vous faire cela ?

Merci d'avance...




Avatar
Ambassadeur Kosh
ben c'est que ta chaine est pas en base64.
prend autre chose.

au fait, c'est quoi l'interet de mettre ça dans un stream ?
Avatar
Oriane
"Ambassadeur Kosh" a écrit dans le message de news:
ben c'est que ta chaine est pas en base64.
prend autre chose.


Yesse mais quoi ?

au fait, c'est quoi l'interet de mettre ça dans un stream ?



L'intérêt, c'est que je sais imprimer, avec le code que tu m'as donné (en fait que je connaissais déjà), un StreamReader...qui peut être construit à partir d'un MemoryStream.
Avatar
Ambassadeur Kosh
pourquoi ne pas simplement utiliser DrawString sur ton Graphics, avec la
chaine qui va bien ?

le Stream te sert à quoi ? à faire des ReadLine ? bof...

fait un Split sur ta chaine

string buffer = "du texternavec des sauts de lignesrnça marche" ;
string [] chaines = buffer.Split("rn") ;

foreach(string text in chaines)
graphics.DrawString(text,...) ;

et comme le DrawString se gere tout seul les sauts de lignes, y'a meme pas
besoin de s'emm....

graphics.DrawString(buffer) ;

non ?
Avatar
Oriane
Tu as raison...

"Ambassadeur Kosh" a écrit dans le message de news:
pourquoi ne pas simplement utiliser DrawString sur ton Graphics, avec la
chaine qui va bien ?

le Stream te sert à quoi ? à faire des ReadLine ? bof...

fait un Split sur ta chaine

string buffer = "du texternavec des sauts de lignesrnça marche" ;
string [] chaines = buffer.Split("rn") ;

foreach(string text in chaines)
graphics.DrawString(text,...) ;

et comme le DrawString se gere tout seul les sauts de lignes, y'a meme pas
besoin de s'emm....

graphics.DrawString(buffer) ;

non ?