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

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

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

Re[6]: WindowsPhone ストリーム形式での読み込み


(過去ログ 101 を表示中)

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

■60116 / inTopicNo.1)  WindowsPhone ストリーム形式での読み込み
  
□投稿者/ あゆみ (1回)-(2011/06/21(Tue) 12:11:19)

分類:[C#] 

常日頃より参考にさせていただいております。
WindowsPhone7.0-7.1の開発
VS2010
SilverLight
C#

プロジェクトが保持している画像をストリームとして読み出す方法がわからず
質問させていただきました。

画像自体は
BitmapImage img = new BitmapImage(new Uri("hoge.png", UriKind.RelativeOrAbsolute));
で読み出せるのですが

ストリーム形式で保持したい場合
PCのSilverlightでは
OpenFileDialog.File.OpenRead()で
FileStream形式で読み出せたのですが
WindowsPhoneにはOpenFileDialogがありません。

どのような方法があるのかアドバイスを頂けたらと思います。
よろしくお願いします。
引用返信 編集キー/
■60119 / inTopicNo.2)  Re[1]: WindowsPhone ストリーム形式での読み込み
□投稿者/ shu (795回)-(2011/06/21(Tue) 13:36:06)
No60116 (あゆみ さん) に返信

> ストリーム形式で保持したい場合
> PCのSilverlightでは
> OpenFileDialog.File.OpenRead()で
> FileStream形式で読み出せたのですが
> WindowsPhoneにはOpenFileDialogがありません。

WindowsPhone開発はしたことがありませんが、
OpenFileDialog.FileはFileInfoだと思うので
new FileInfo(ファイル名)とすればインスタンスを作成出来ると思います。

WindowsPhone7に当てはまるか分かりませんが以下のリンクを貼っておきます
http://gihyo.jp/dev/serial/01/windows-phone/0005
引用返信 編集キー/
■60139 / inTopicNo.3)  Re[2]: WindowsPhone ストリーム形式での読み込み
□投稿者/ あゆみ (2回)-(2011/06/21(Tue) 19:05:23)
No60119 (shu さん) に返信

>
> WindowsPhone開発はしたことがありませんが、
> OpenFileDialog.FileはFileInfoだと思うので
> new FileInfo(ファイル名)とすればインスタンスを作成出来ると思います。
>
> WindowsPhone7に当てはまるか分かりませんが以下のリンクを貼っておきます
> http://gihyo.jp/dev/serial/01/windows-phone/0005

ご回答ありがとうございます。
さっそく試してみたのですが
new FileInfo(ファイル名)のところでエラーが発生します。
ファイル名には"hoge.png"のようにプロジェクトに含まれている画像を指定しています。

URIで指定してあげたいのですがString形式しかうけつけてくれません・・・
リンクのほうの記事はWindowsMobileの記事のようでした。


引用返信 編集キー/
■60140 / inTopicNo.4)  Re[3]: WindowsPhone ストリーム形式での読み込み
□投稿者/ 逆運の覇者 (8回)-(2011/06/21(Tue) 19:36:01)
http://msdn.microsoft.com/en-us/library/system.io.streamreader%28v=VS.95%29.aspx
MSDNのStreamReaderには
 Silverlight for Windows Phone
 Supported in: Windows Phone OS 7.0
と書いてあり、StreamReaderが使えるようです。


1.
StreamReader sr = new StreamReader(“file.txt”);
string str = sr.ReadLine();


2.
Stream testpath = TitleContainer.OpenStream(“Content/Test.txt”);
StreamReader reader = new StreamReader(testpath);
string line = reader.ReadLine();


3.
Stream testpath = Application.GetResourceStream(new Uri(“Test.txt”, UriKind.Relative)).Stream;
StreamReader reader = new StreamReader(testpath);
string line = reader.ReadLine();
引用返信 編集キー/
■60188 / inTopicNo.5)  Re[4]: WindowsPhone ストリーム形式での読み込み
□投稿者/ あゆみ (3回)-(2011/06/22(Wed) 17:09:11)
No60140 (逆運の覇者 さん) に返信

ご回答ありがとうございます。
さっそく試してみたのですが
1,2の方法はやはりエラーとなりました。

3についてですが
1行目を少し分解して
System.Windows.Resources.StreamResourceInfo sri = Application.GetResourceStream(new Uri("hoge.txt",UriKind.Relative));
この時点でsriがNullになってしまいます。

http://msdn.microsoft.com/ja-jp/library/ms596994%28v=vs.95%29.aspx
を参考にURIを変えてみたりしたのですが全て戻り値Nullになりました。
対象ファイルのビルドアクションも「Resource」になっていますし間違ってないように思えるのですが・・・



> 3.
> Stream testpath = Application.GetResourceStream(new Uri(“Test.txt”, UriKind.Relative)).Stream;
> StreamReader reader = new StreamReader(testpath);
> string line = reader.ReadLine();
引用返信 編集キー/
■60190 / inTopicNo.6)  Re[5]: WindowsPhone ストリーム形式での読み込み
□投稿者/ 逆運の覇者 (9回)-(2011/06/22(Wed) 17:42:37)
objフォルダを削除して、
ビルドしなおしてみてください。


  [WPF] Application.GetResourceStream() でハマった
  http://bearmini.net/blog/View.aspx?bid=1&aid=168
引用返信 編集キー/
■60193 / inTopicNo.7)  Re[6]: WindowsPhone ストリーム形式での読み込み
□投稿者/ あゆみ (4回)-(2011/06/22(Wed) 21:49:28)
No60190 (逆運の覇者 さん) に返信
> objフォルダを削除して、
> ビルドしなおしてみてください。
>
>
>   [WPF] Application.GetResourceStream() でハマった
>   http://bearmini.net/blog/View.aspx?bid=1&aid=168

ご回答ありがとうございます。
objフォルダ削除→リビルドで読みだせるようになりました。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -