- PR -

【C# PDA】

1
投稿者投稿内容
乱太郎
会議室デビュー日: 2004/09/21
投稿数: 4
投稿日時: 2004-11-27 16:16
.NET Compact Framewokを使用しPDA開発を行っています

初歩的な質問かもしれませんが、ご了承ください。

サーバからクライアント(PDA)に複数のファイルをDLするようなモジュールを
作成しています。参考URL(http://dobon.net/vb/dotnet/internet/webrequestsavefile.html)を元にモジュール
を作成したのですが、1つのファイルをDLした時点で終了してしまいます。どの
部分が悪いのか少しわかりません。

また、C#を用いて開発していますが、他の手法(他の言語)を使用してPDAに複数のファイルをDLするといった方法があれば教えてほしいです。

よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-27 17:20
諸農です。

引用:

サーバからクライアント(PDA)に複数のファイルをDLするようなモジュールを
作成しています。参考URL(http://dobon.net/vb/dotnet/internet/webrequestsavefile.html)を元にモジュール
を作成したのですが、1つのファイルをDLした時点で終了してしまいます。どの
部分が悪いのか少しわかりません。


参考にされているサイトのコードは単一ファイルのダウンロード例ですね。
実際には乱太郎さんがどのようなコードを書いていて、どの部分で期待している結果と違う症状が発生しているのか見てみないことには、どんな人であれアドバイスなんて出来ないと思います。
実際に症状が再現する最小限のコードをご提示ください。

引用:

また、C#を用いて開発していますが、他の手法(他の言語)を使用してPDAに複数のファイルをDLするといった方法があれば教えてほしいです。


他の言語と言われていますが、参考サイトにはVB.NETも書かれていますよね?
それともeVC++4.0とかを指していますか?

でも、たぶん、現在直面している症状の原因は単なるコード不備(ロジックバグ)だと思うので、再現できる実際のコード(の最小限)を提示してもらった方が解決までの道は早いのではないかと思います。

--文言編集しました--
_________________
諸農和岳
Powered by Borland Delphi/C++Builder & Microsoft VS.NET


[ メッセージ編集済み 編集者: Jubei 編集日時 2004-11-27 17:28 ]
乱太郎
会議室デビュー日: 2004/09/21
投稿数: 4
投稿日時: 2004-11-29 14:36
仁木です。

引用:

参考にされているサイトのコードは単一ファイルのダウンロード例ですね。
実際には乱太郎さんがどのようなコードを書いていて、どの部分で期待している結果と違う症状が発生しているのか見てみないことには、どんな人であれアドバイスなんて出来ないと思います。
実際に症状が再現する最小限のコードをご提示ください。



申し訳ありません。
最低限のことを書いていなくて・・・。
参考URLを参照に一つのファイルを5秒おきにDLするようにしました。

---------------------コード--------------------------------
int minute = DateTime.Now.Minute;
int second = DateTime.Now.Second;

string time = minute+"_"+second;

string url = "http://www.google.co.jp/images/logo_sm.gif";


//保存先のファイル名
string fileName0 = @"\My Documents\logo"+time+".jpg";

//WebRequestの作成
System.Net.HttpWebRequest webreq0 =(System.Net.HttpWebRequest) System.Net.WebRequest.Create(url0);

//WebStatusの番号エラー処理追加!
//サーバーからの応答を受信するためのWebResponseを取得
System.Net.HttpWebResponse webres0 =(System.Net.HttpWebResponse) webreq0.GetResponse();

//応答データを受信するためのStreamを取得
System.IO.Stream strm0 = webres0.GetResponseStream();

//ファイルに書き込むためのFileStreamを作成
System.IO.FileStream fs0 =new System.IO.FileStream(fileName0,
System.IO.FileMode.Create, System.IO.FileAccess.Write);

//応答データをファイルに書き込む
int b;
while ((b = strm0.ReadByte()) != -1)
{
 fs0.WriteByte(Convert.ToByte(b));
}

//閉じる
fs0.Close();
strm0.Close();
-----------------------------------------------------------

1回目のDLは大丈夫なのですが、2回目以降『スレッド '<名前がありません>' (0x1a2eb4) はコード 0 (0x0) で終了しました。』の表示があり終了してしまいます。

また、

引用:

他の言語と言われていますが、参考サイトにはVB.NETも書かれていますよね?
それともeVC++4.0とかを指していますか?



言い方が悪くて申し訳ないです。
他の言語というより、ただ単にサーバからPDAクライアントにファイルをDLする
方法を教えてもらいたいです。

表現があいまいですみません。 よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-30 00:53
諸農です。

引用:

引用:

参考にされているサイトのコードは単一ファイルのダウンロード例ですね。
実際に症状が再現する最小限のコードをご提示ください。



申し訳ありません。
最低限のことを書いていなくて・・・。
参考URLを参照に一つのファイルを5秒おきにDLするようにしました。



このコードを見る限りでは、参考サイトのコードをそのまま丸写しですよね?
エラーになっているのは5秒ごとの処理ですよね?
どのようにして5秒を計測しているのでしょうか?

たとえば、ボタンクリックイベントハンドラに、単一ファイルのダウンロード処理を記述して、ダウンロードの開始でButtonをDisableにしておき、ダウンロードが終了した時点でButtonをEnableにして処理が重複しないように制御しておき、連続したファイルダウンロードを行っても大丈夫でしょうか?
大丈夫であるなら、アップされているコードに問題はないものと、ひとまず判断できそうですよね?
そうしたら、次に5秒ごとに処理を開始するところを疑いたくなりますね。
5秒ごとの処理には何を使っているのでしょうか?
自前の時間制御処理ですか?Timerコンポでしょうか?
そうやって一つずつ問題点をクリアにしていくのも一つの開発方法だと思います。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
乱太郎
会議室デビュー日: 2004/09/21
投稿数: 4
投稿日時: 2004-12-02 19:04
返事が遅れまして申し訳ございません。

引用:

エラーになっているのは5秒ごとの処理ですよね?
どのようにして5秒を計測しているのでしょうか?


エラーになっているのは5秒ごとの処理です。TIMERを使用して5秒は計測してます。

引用:

たとえば、ボタンクリックイベントハンドラに、単一ファイルのダウンロード処理を記述して、ダウンロードの開始でButtonをDisableにしておき、ダウンロードが終了した時点でButtonをEnableにして処理が重複しないように制御しておき、連続したファイルダウンロードを行っても大丈夫でしょうか?
大丈夫であるなら、アップされているコードに問題はないものと、ひとまず判断できそうですよね?


ボタンクリックイベントハンドラを実施したところ連続で大丈夫でした。
ということは五秒間隔の部分になるんでしょうかね?
Timerコンボを疑ってみたのですが、どの部分を疑っていいのかわかりません。
ちなみにTimerコンボは.NETデフォルトのものを使用しています

よろしくおねがいします。
1

スキルアップ/キャリアアップ(JOB@IT)