C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: String変数に改行有りで文字列を書き込むには


(過去ログ 163 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■94325 / inTopicNo.1)  String変数に改行有りで文字列を書き込むには
  
□投稿者/ でええ (1回)-(2020/04/01(Wed) 18:34:00)

分類:[.NET 全般] 

VBを使って、
文字列をテキストファイルに書き出したい場合、
以下のようにしてすることができます。
Using writer As New StreamWriter(FileOutPath, False, Encoding.Default)


writer.WriteLine("aaa")
writer.WriteLine("bbb")
writer.WriteLine("ccc")

End Using


一方で、
String変数に同じ内容を書き出すには



Dim Text_data0 As String = ""

Text_data0 &= "aaa" & vbNewLine
Text_data0 &= "bbb" & vbNewLine
Text_data0 &= "ccc" & vbNewLine

というようにする必要があります。

コードに一貫性をもたせるために、

String変数に書き出す場合も
WriteLineを使いたいのですが
どのようにすれば良いですか?


引用返信 編集キー/
■94326 / inTopicNo.2)  Re[1]: String変数に改行有りで文字列を書き込むには
□投稿者/ とっちゃん (665回)-(2020/04/01(Wed) 18:42:49)
No94325 (でええ さん) に返信

StreamWriter とそっくりのクラスに StringWriter というものがあります。
それを使うのはどうでしょう?

どちらも、TextWriter から派生しているので、同じように使えます。
StreamWriter との違いは、書き込んだ後の処理をどうする?というところかな?

一応リファレンスを置いておきますね。

https://docs.microsoft.com/ja-jp/dotnet/api/system.io.stringwriter?WT.mc_id=DT-MVP-32182

引用返信 編集キー/
■94327 / inTopicNo.3)  Re[1]: String変数に改行有りで文字列を書き込むには
□投稿者/ 魔界の仮面弁士 (2662回)-(2020/04/01(Wed) 18:43:19)
No94325 (でええ さん) に返信
> String変数に書き出す場合も
> WriteLineを使いたいのですが

StreamWriter からの置き換えであれば、
StringWriter を使うのが良いでしょう。

(StringBuilder を使うパターンもあるけれど、これだとポリモーフィズムを維持できない)
引用返信 編集キー/
■94328 / inTopicNo.4)  Re[2]: String変数に改行有りで文字列を書き込むには
□投稿者/ でええ (2回)-(2020/04/01(Wed) 18:51:43)
ありがとうございます。
しかしこれってどうやって宣言すれば良いのでしょうか?


Dim aaa As String&#8203;Writer

とやってみても
String&#8203;Writer
は宣言されていません
というエラーがでます。
何か参照設定しないと駄目ですか?

引用返信 編集キー/
■94329 / inTopicNo.5)  Re[3]: String変数に改行有りで文字列を書き込むには
□投稿者/ でええ (4回)-(2020/04/01(Wed) 19:07:23)
できました
web上のコードをコピペしたので
文字化けしているのが原因でした、
どうもありがとうございました。

解決済み
引用返信 編集キー/
■94331 / inTopicNo.6)  Re[4]: String変数に改行有りで文字列を書き込むには
□投稿者/ でええ (5回)-(2020/04/01(Wed) 19:59:28)
すいません、ちなみに



        Using writer As New StreamWriter(FileOutPath, False, Encoding.Default)

		test(writer)

        End Using

        Using writer As New StringWriter

		test(writer)

        End Using






    Sub test(writer As StringWriter)

                writer.WriteLine(aaa)
                writer.WriteLine(bbb)

    End Sub

のようにして、StreamWriterとStringWriterで同じsubを共有したいのですが
相互に変換することってできますでしょうか?






引用返信 編集キー/
■94334 / inTopicNo.7)  Re[5]: String変数に改行有りで文字列を書き込むには
□投稿者/ 魔界の仮面弁士 (2664回)-(2020/04/01(Wed) 21:47:08)
No94331 (でええ さん) に返信
> のようにして、で同じsubを共有したいのですが
> 相互に変換することってできますでしょうか?

できますよ。それが No94327 にも書いた「ポリモーフィズム」です。

No94326 で、とっちゃんさんが「どちらも、TextWriter から派生している」と書かれていますよね。
つまり、test メソッドの『仮引数』の型を TextWriter 型にしておくだけで OK です。
呼び出し側が渡す『実引数』は、StreamWriter でも StringWriter でも、どちらのインスタンスも渡せます。
引用返信 編集キー/
■94335 / inTopicNo.8)  Re[6]: String変数に改行有りで文字列を書き込むには
□投稿者/ でええ (6回)-(2020/04/01(Wed) 22:47:45)
なるほどそういうことでしたか
どうもありがとうございました

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -