Umleiten von .NET Stream Ausgabe an ein String-Variable
-
04-07-2019 - |
Frage
Ich würde gerne wissen, ob es möglich ist, Stream Ausgabe in eine Variable
umleitenSo etwas wie
String^ myString;
StreamWriter sw = gcnew StreamWriter([somehow specify myString])
sw->WriteLine("Foo");
dann myString wird Foo enthalten. Der Grund, warum ich mag, dies zu tun ist eine komplexe Funktion wieder zu verwenden. Wahrscheinlich sollte ich es in eine String Rückkehr Funktion Refactoring, aber es wäre immer noch ein nettes Hack zu wissen,
Lösung
Stream und
Andere Tipps
Sie können mit einem String tun dies den Wert direkt in ein String-Builder-Objekt zu schreiben
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
// now, the StringWriter instance 'sw' will write to 'sb'
Sie diesen Code ausprobieren =]
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
string s = sb.ToString(); <-- Now it will be a string.
Sie sollten fähig sein, zu tun, was man einen Speicherstream verwenden müssen.
MemoryStream mem = new MemoryStream();
StreamWriter sw = new StreamWriter(mem);
sw.WriteLine("Foo");
// then later you should be able to get your string.
// this is in c# but I am certain you can do something of the sort in C++
String result = System.Text.Encoding.UTF8.GetString(mem.ToArray(), 0, (int) mem.Length);
Umgestalten die Methode String zurückzugeben, wie Sie erwähnt haben Sie konnten. Hacking es so, wie Sie versuchen, während akademisch interessant, den Code matschig und es ist sehr schwer für jemanden zu halten, die Sie folgt.