• ベストアンサー

”System::IO::StreamReader”ってどういう意味ですか?

Visual C++ 2008 Express Editionで、現在、600kバイト程度のバイナリファイルを読み込んで特定の番地のデータだけを取り出してそれをテキスト変換してテキストボックス内に表示させるというプログラムを作成しているのですが、このことをOKwaveでどのようにコーディングするかを教えてもらったところ、 System::IO::StreamReader^ sr=gcnew StreamReader(_T("sample.txt")); このような文を教えてもらったのですが、全く知識がなく何をやっているのかわかりません。 ”sr”というのは変数で、sample.txtからstreamReader関数でsample.txt内のデータをsr変数に 入れているという感じがしますが、”System::IO::StreamReader”とか”gcnew”とかの意味がよくわかりません。 どうかご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mako_tyo
  • ベストアンサー率37% (61/161)
回答No.1

私は、C++で開発を行っているのではなくC#ですが・・・ さらに初心者ですが・・・ >System::IO::StreamReader テキストの文字列を、指定のフォーマットなどで取り込む時に使用します。 srへ、格納した後は、自由に取り出すことができます。 (while文などを使用して、上から一行づつ取り出すなど) >gcnew gcnewは、初めてみたのでわかりませんが、メモリ管理周りっぽいですね。難しかったですが、リンク載せておきます。(2つ目)

参考URL:
http://msdn.microsoft.com/ja-jp/library/akzyzwh9.aspx,http://loafer.jp/mixi/diary/class.xsp?2007-09-02-22-43
maeken0012
質問者

お礼

回答ありがとうございます。 資料のURLも載せてもらい、ありがとうございます。 それで、​http://msdn.microsoft.com/ja-jp/library/akzyzwh9.aspxこちらのリンクで、同じような例文が書かれいて、 ”StreamReader* objReader = new StreamReader("c:\\test.txt");” テキスト文を”StreamReader”で宣言したobjReader変数に渡している文なんですが、 ”StreamReader*”という書き方をしているのですが、”System::IO::StreamReader”という書き方とは違うのですが、これには何か理由があるのでしょうか? ”System::IO::”このコロンで挟んだりして書いたりする文というのはどうゆうことを表しているのでしょうか? どなたかご存じでしたらご教授いただけませんでしょうか?

その他の回答 (1)

  • FAY
  • ベストアンサー率49% (95/193)
回答No.2

C++/CLIの基本的な構文ですねー。 大雑把に書くと、System名前空間の下のIO名前空間の下の StreamReaderクラスのインスタンスを、ガベージコレクタの対象として (すなわちマネージヒープに)作成し、そのハンドルをsrに持ちましょう、ということです。 なので、 System::IO::StreamReaderは System名前空間の下のIO名前空間の下のStreamReaderクラス gcnewは マネージヒープ上にインスタンスを作成しなさい となるのかな。 ここら辺の意味が理解不能ならば、まずは入門用の 書籍やWebサイトを参照することをオススメします。

maeken0012
質問者

お礼

回答ありがとうございます。 ”System::IO::StreamReader”このような書き方はC++言語の特徴だそうですね。 C++言語の入門学習WEBページの http://www.asahi-net.or.jp/~yf8k-kbys/newcpp3.html ”C++によるプログラミング入門3 cinを使った入力” に同じような記述がありました。 ちょっと基本的なことを見ながらC++プログラミングをやっていきたいと思います。

関連するQ&A

専門家に質問してみよう