• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c#でcsvファイルをリソースとして読み込むには?)

c#でcsvファイルをリソースとして読み込む方法

このQ&Aのポイント
  • c#でcsvファイルをリソースとして読み込む方法を教えてください。
  • リソースの追加でcsvファイルをResourcesフォルダに入れた後、変数に代入する方法を教えてください。
  • 222.csvがResourcesフォルダに入ると_222.csvというファイル名に変わりますが、それを考慮した正しい記述方法を教えてください。

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

  • ベストアンサー
回答No.3

> これで設定したボタンを押してみましたが、何も起こりませんでした… Windowsフォームの環境でしたらテキストボックスか何かにでも出力してみてください。 例に書いたのはコンソールアプリ用のものですから。 textBox1とかいうテキストボックスがあったら private void button3_Click_1(object sender, EventArgs e) { string txt = Properties.Resources._222; textBox1.Text = txt; } とかいうように。

master817199
質問者

お礼

お返事遅くなりまして申し訳ありませんでした。 おかげさまで問題解決しました。 お忙しい中何度もご回答ありがとうございます 本当に助かりました。

その他の回答 (2)

回答No.2

とりあえず、ソリューションエクスプローラーに表示されているファイル名は忘れてください。 「プロジェクト」メニューの一番下の「○○○のプロパティ」(○○○はプロジェクトの名前)を開くとプロジェクトに登録されているリソースの一覧が出ますので、そこに表示されている名前を使ってください。 仮にこのリソース名を hogehoge とすると、 string txt = Properties.Resources.hogehoge; で、txtにhogehogeの中身が読み込まれます。 (今の場合、txtの中身は csvファイルの内容そのもの) リソースの読み込みはこれだけでOKです。 読み込んだcsvの中身を行毎やセル毎に取り出すというのは、また別の作業です。 試しに Console.Write(txt); とすれば、csvの中身がコンソールに表示されるはずです。

master817199
質問者

補足

度々もうしわけありません。 仰る通りに実行したのですがまだうまくいきません。 プロパティの内容を読み込むだけのボタンを作って実行してみました。 private void button3_Click_1(object sender, EventArgs e) { string txt = Properties.Resources._222; Console.Write(txt); } プロパティ内でファイル名は_222になります、これはResources.まで打ち込むと自動で出てくる名を タブキーで選択しているので間違いないと思います。 これで設定したボタンを押してみましたが、何も起こりませんでした… 他に注意する点などありませんでしょうか? お忙しい中何度も申し訳ありませんがよろしくお願いします。

回答No.1

 リソースはビルド時にオブジェクトとしてプログラムの中に組み込まれるので、Resourceフォルダのパスを指定しても意味ありません。第一、実行環境にResourceフォルダなんてものは用意されません。  リソースに追加したときにリソースIDなりリソース名なりを付加しているはずなので、それを使ってアクセスします。 リソースの使い方ぐらいググればいくらでも出て来ますが、 http://dobon.net/vb/dotnet/programing/bitmapresource.html (これは古い方法) とか http://dobon.net/vb/dotnet/programing/vsresource.html あたりが参考になるでしょう。

master817199
質問者

補足

お返事ありがとうございます。 質問前に方法をグーグル検索で探し、該当のページも拝見しましたが 初心者ですので、はっきりと理解ができませんでした。 今回の場合、以下のコードを記述すればリソースフォルダに入れたcsvファイルが 読み込めるということでしょうか? //現在のコードを実行しているAssemblyを取得 System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly(); //指定されたマニフェストリソースを読み込む System.IO.StreamReader sr = new System.IO.StreamReader( myAssembly.GetManifestResourceStream("Project1.222.csv"),//ここでファイル名を指定。 System.Text.Encoding.GetEncoding("shift-jis")); //内容を読み込む string s = sr.ReadToEnd(); //後始末 sr.Close(); よろしくお願いします。

関連するQ&A