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

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

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

Re[8]: XNAで、、


(過去ログ 59 を表示中)

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

■33766 / inTopicNo.1)  ReadAllText
  
□投稿者/ あらら (1回)-(2009/03/09(Mon) 16:45:51)

分類:[C#] 

2009/03/09(Mon) 17:19:10 編集(投稿者)

質問させてください。

System.IO.File.ReadAllText以外を使って、
下記一文と同じ効果を得るにはどうすればよいでしょうか?

string data = System.IO.File.ReadAllText("data.txt", Encoding.GetEncoding("shift_jis"));

どなたか教えてください。
よろしくお願いします。




引用返信 編集キー/
■33771 / inTopicNo.2)  Re[1]: XNAで、、
□投稿者/ Mr.T (319回)-(2009/03/09(Mon) 17:19:51)
Mr.Tです。


No33766 (あらら さん) に返信
> 2009/03/09(Mon) 16:46:42 編集(投稿者)
>
> 質問させてください。
> 私、XNAを使ってソースを組んでいるのですが、
>
> http://msdn.microsoft.com/ja-jp/library/system.io.file_methods.aspxによると、
> XNAでは、System.IO.FileのReadAllTextは使えないみたいなのですが、

え?使えないんですか?
そんなことないと思いますが。

例えば、「XNA ReadAllText」で検索すると
http://www.saturn.dti.ne.jp/~npaka/xna/JapEx/index.html
あたりがひっかかったりしました。

使えないという理由はどこからきているのでしょう。

引用返信 編集キー/
■33772 / inTopicNo.3)  Re[2]: XNAで、、
□投稿者/ あらら (2回)-(2009/03/09(Mon) 17:38:09)
こみいった話になるのですが、
System.IO.Fileを使うには、参照設定にmscorlib.dllを追加しないとダメかと思うのですが、

XNAでプロジェクトを作った時に
Windowsプロジェクトではc:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dllを参照しているので、
Windows上ではプロジェクトが起動するのですが、

Create Copy of Project for Xbox 360を実行しXbox360プロジェクトを追加した際に、
参照しているのは同じmscorlib.dllでも、
C:\Program Files\Microsoft XNA\XNA Game Studio\v3.0\References\Xbox360\mscorlib.dll
のものなのです。
よって使えないのだと思うのです。

他に使えないと判断した理由は
http://msdn.microsoft.com/ja-jp/library/system.io.file_methods.aspx
のReadAllTextの横にX印がなかったためでもあります。
引用返信 編集キー/
■33773 / inTopicNo.4)  Re[3]: XNAで、、
□投稿者/ Hongliang (344回)-(2009/03/09(Mon) 17:56:16)
StreamReader.ReadToEndですね。
引用返信 編集キー/
■33774 / inTopicNo.5)  Re[4]: XNAで、、
□投稿者/ あらら (3回)-(2009/03/09(Mon) 18:01:15)
StreamReader.ReadToEndを使って具体的に、
string data = System.IO.File.ReadAllText("data.txt", Encoding.GetEncoding("shift_jis"));
のように、string型の変数に代入する段階まで持ってくるにはどうすればよいのでしょうか?
引用返信 編集キー/
■33775 / inTopicNo.6)  Re[5]: XNAで、、
□投稿者/ επιστημη (1810回)-(2009/03/09(Mon) 18:07:25)
επιστημη さんの Web サイト
2009/03/09(Mon) 18:07:58 編集(投稿者)

...マニュアル読もうよ。encodingはコンストラクタで指定できるから:

StreamReader rader = new StreamReader("data.txt", Encoding.GetEncoding("shift_jis"));
string data = reader.ReadToEnd();
reader.Close();

...ってとこじゃないでしょか。

引用返信 編集キー/
■33778 / inTopicNo.7)  Re[6]: XNAで、、
□投稿者/ あらら (4回)-(2009/03/09(Mon) 18:23:04)
επιστημηさんに教えていただいた方法で試させていただいたところ、
StreamReader rader = new StreamReader("data.txt", Encoding.GetEncoding("shift_jis"));の所で下記のようなエラーになりました。

'System.PlatformNotSupportedException' のハンドルされていない例外が mscorlib.dll で発生しました。
追加情報: PlatformNotSupportedException

対処策がわからないのですがどうすればよいでしょうか?
引用返信 編集キー/
■33782 / inTopicNo.8)  Re[7]: XNAで、、
□投稿者/ επιστημη (1811回)-(2009/03/09(Mon) 20:06:20)
επιστημη さんの Web サイト
> 'System.PlatformNotSupportedException' のハンドルされていない例外が mscorlib.dll で発生しました。
> 追加情報: PlatformNotSupportedException

あれまー

encodingつけないとどうでしょう。
それでうまくいくなら、食わせるファイルをUnicodeで用意するですね。

引用返信 編集キー/
■33786 / inTopicNo.9)  Re[7]: XNAで、、
□投稿者/ DELI (13回)-(2009/03/09(Mon) 20:55:36)
No33778 (あらら さん) に返信
> επιστημηさんに教えていただいた方法で試させていただいたところ、
> StreamReader rader = new StreamReader("data.txt", Encoding.GetEncoding("shift_jis"));の所で下記のようなエラーになりました。
>
> 'System.PlatformNotSupportedException' のハンドルされていない例外が mscorlib.dll で発生しました。
> 追加情報: PlatformNotSupportedException
>
> 対処策がわからないのですがどうすればよいでしょうか?

こう書いても駄目かな?
StreamReader reader = new StreamReader(Path.Combine(StorageContainer.TitleLocation, "data.txt"), Encoding.GetEncoding("shift_jis"));
引用返信 編集キー/
■33859 / inTopicNo.10)  Re[8]: XNAで、、
□投稿者/ NyaRuRu (84回)-(2009/03/11(Wed) 17:47:09)
2009/03/11(Wed) 18:06:59 編集(投稿者)
2009/03/11(Wed) 18:02:25 編集(投稿者)
2009/03/11(Wed) 17:52:42 編集(投稿者)
2009/03/11(Wed) 17:52:01 編集(投稿者)
2009/03/11(Wed) 17:48:31 編集(投稿者)

No33786 (DELI さん) に返信
> ■No33778 (あらら さん) に返信
>>επιστημηさんに教えていただいた方法で試させていただいたところ、
>>StreamReader rader = new StreamReader("data.txt", Encoding.GetEncoding("shift_jis"));の所で下記のようなエラーになりました。
>>
>>'System.PlatformNotSupportedException' のハンドルされていない例外が mscorlib.dll で発生しました。
>>追加情報: PlatformNotSupportedException
>>
>>対処策がわからないのですがどうすればよいでしょうか?
>
> こう書いても駄目かな?
> StreamReader reader = new StreamReader(Path.Combine(StorageContainer.TitleLocation, "data.txt"), Encoding.GetEncoding("shift_jis"));

[del]駄目なんじゃないでしょうかね.[/del]

(以下訂正版)

すみません.ちゃんと StorageContainer.TitleLocation を付けられていたのを見ていませんでした.この場合であれば,ストレージにちゃんとデータがあれば読めるかと思います.(質問者さんの内容を見る感じ,そもそもファイルがあるかもチェックした方が良さそうですが)

ファイルの内容の書き換えが無くて,単にデータを読み出すだけなら,コンテントパイプラインでビルド時に読み出しておく標準的な方法ですかね.>あららさん


引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -