Il arrive que l'on souhaite créer un flux à partir d'une chaîne de caractères, par exemple pour faciliter certaines opérations de traduction entre texte et nombres (ou entre texte et autres types sérialisables). En langage C, les fonctions sscanf() et sprintf() sont les outils privilégiés en ce sens, mais la majorité des langages ont des métaphores à proposer pour y arriver.
En C++, le type à privilégier pour ce faire est un std::stringstream (incluez <sstream>).
La fonction make_stream proposée à droite crée un tel flux. Elle instancie un stringstream sur la base du texte src et retourne ce flux. Il sera possible par la suite d'extraire de ce flux ce dont on a besoin. |
|
En C#, le type à privilégier pour ce faire est MemoryStream, qui dérive de la classe abstraite Stream (assurez-vous d'avoir recours à using System.IO)
La fonction MakeStream proposée à droite crée un tel flux. Elle instancie un MemoryStream vide, puis un StreamWriter pour y écrire; par la suite, elle écrit la totalité de la chaîne src sur ce flux, s'assure que l'écriture soit bel et bien complétée, puis replace la position de consommation sur ce flux au début du flux avant de retourner une référence sur le MemoryStream. Il sera possible par la suite de créer un StreamReader ou une autre sorte de consommateur de flux, et d'extraire de ce flux ce dont on a besoin. |
|
À venir (il y a assurément un mécanisme, mais je n'ai pas eu le temps de fouiller encore).
Quelques liens pour enrichir le propos (à venir).