トップページ⇒tech
1001コメント291KB

ふらっとC#,C♯,C#(初心者用) Part21

■ このスレッドは過去ログ倉庫に格納されています
0001ななしぃ#2007/11/18(日) 15:53:41
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

前スレ: ふらっとC♯, C#(初心者用) Part20
http://pc11.2ch.net/test/read.cgi/tech/1191036844/
03853352007/12/05(水) 18:08:05
@IT逝ってきます
0386デフォルトの名無しさん2007/12/05(水) 18:08:57
LINQ使えばわかる
0387デフォルトの名無しさん2007/12/05(水) 18:32:16
イベント使えば分かる。


いや分からんかも…
0388デフォルトの名無しさん2007/12/05(水) 18:36:23
100レススルーされてる>>285がやや気の毒だがわからない
でも動画なんて埋め込みたいとは思わないな俺は
0389デフォルトの名無しさん2007/12/05(水) 18:36:33
イベントはdelegate分かってなくてもIDEが勝手に書いてくれるからな
0390デフォルトの名無しさん2007/12/05(水) 18:44:00
>>285か。
メモリに読めば何とかなるのなら、APIでリソースから直接読むのは可能。
0391デフォルトの名無しさん2007/12/05(水) 20:23:14
>>390
メモリにあるものをどうやって再生するかって話じゃないの?
テンポラリフォルダにでも展開しちゃえばいいんじゃないかと思うが
0392デフォルトの名無しさん2007/12/05(水) 22:24:32
>>379-380
川俣氏のやつですよね
以前2chで叩かれてるところに本人降臨してたスレがありましたが、中身はガチと思っていいんですかね?
0393デフォルトの名無しさん2007/12/05(水) 22:30:06
>>392
内容は悪くないというか、簡潔でいいと思うけど、
あれで習得できるのは「ミニマムリクワイアメント」に過ぎないね。
0394デフォルトの名無しさん2007/12/05(水) 22:32:37
話題になったのはVBネタの記事とかか
あの人どうも筆が走りすぎる感があるな
C#入門とかあの辺はよく書けてるんだけど
0395デフォルトの名無しさん2007/12/05(水) 22:38:30
>>394
俺が思うに、川俣の文体に反発する人間っていうのはたぶんあまり読書経験がないというか、
文芸的な文章を読まないタイプの人でしょ。

あれはああいう文体で、あんなものベタにとって反発するってどんだけオボコいんだよ、
と俺なんか思っちゃうけど。
0396デフォルトの名無しさん2007/12/05(水) 22:47:51
ライターなら多少走り気味なくらいがちょうどいいんじゃないの?
0397デフォルトの名無しさん2007/12/05(水) 22:48:39
叩きをするようなねらーによしあしなどわかってたまるか
0398デフォルトの名無しさん2007/12/05(水) 22:52:07
まあおまえらおちつけ
ここは初心者用質問スレだ
0399デフォルトの名無しさん2007/12/05(水) 22:52:11
なんかカワマタさんが来ましたよ
0400デフォルトの名無しさん2007/12/05(水) 22:53:08
>>395
>オボコい
久しぶりに見たよw
0401デフォルトの名無しさん2007/12/06(木) 00:33:01
asmxファイルで開発してる人いる?
0402デフォルトの名無しさん2007/12/06(木) 01:01:45
Xファイルなら
0403デフォルトの名無しさん2007/12/06(木) 02:34:50
あるプロトコルでチャットに接続し、ユーザはIEの画面を通して発言したり
他者の発言を取得して画面を更新したりするプログラムを作りたいと思っています。
以下のような構造になるのかなと考えています。

【ユーザ】←HTTP→【画面側プログラム�@】←なんらかの方法→【プログラム�A】←→インターネット

�@:
ASPで、他者の発言の取得はn秒ごとにポーリングを行う。
(サーバプッシュ型にできればなお良い)

�A:
EXEにしてサービス化?ともかく常時起動しており、チャットには繋がりっぱなしにする。
�@の状態には依存しない。
ASPにして�@と同化させると、ユーザが画面を開くたびにインスタンスが新しくなってしまうのと
ユーザが画面を開かなければインスタンスを作れないので分ける必要がある(と思っている)

そこでよく分からないんですが、まず、IISの起動と終了のイベントを拾って
プログラムを動かすことができるのでしょうか。
可能なら、�@と�Aを一緒くたにして、IIS起動でチャット接続して、その状態をstaticメンバにして
全インスタンスで共有し、終了で切断するということでASP一本にできると思ってます。
これは可能でしょうか。

もう一つ、分ける場合には�@と�Aで情報のやりとりをする必要があります。
�Aでインタフェースを提供し、�@はそれを呼び出すだけという形にしたいです。
�@から見たときに利用を簡単にしたいので、できればWebサービスとしてインタフェースを
提供できないかなと思うのですが、�AがASPじゃなく普通のEXEの時に、�AでWebサービスを
実装するにはどのようにすればいいのでしょうか。
(�AがASPなら、IISが良きに計らってくれますが…)
また、Webサービスが無理ならどういう方法で通信するのがベターでしょうか。プロセス間通信とか?

妄想段階なので曖昧な点が多いのですが、アドバイスをいただければ幸いです。
よろしくお願いします。
0404デフォルトの名無しさん2007/12/06(木) 03:10:01
パスワードを保存するファイルに暗号化をかけたいな〜と思ったんですが、
その暗号化キーをどこに保存しようか悩んでいます。
Firefox のマスタパスワードみたいに毎回問い合わせるのは最終手段にしたいと思ってまして、
じゃあどこにどうやって保存しようかな……という話です。
0405デフォルトの名無しさん2007/12/06(木) 13:26:26
>>395なんじゃそりゃ?
まあ反発してたってのがどんなんかしらんから何とも言えんけど、
誤解を招きやすい文章だと思ったことは何回かある。
0406デフォルトの名無しさん2007/12/06(木) 13:36:09
保存先ならIsolatedStorageでもどう
0407デフォルトの名無しさん2007/12/06(木) 14:05:11
>>403
ASPスレで聞いたほうがよい
たぶんセッションで出来る
0408デフォルトの名無しさん2007/12/06(木) 14:48:03
VC#2005EEを使い始めたのですが、ツールバーに使うアイコンをWindows標準のもの(新規作成とか上書き保存とか)を使いたいのですが、Windowsフォルダとかから探してくるしかないんでしょうか?
また、そういうったアイコンは勝手に使ってもいいんでしょうか?
0409デフォルトの名無しさん2007/12/06(木) 15:00:29
VS2005ImageLibraryというのがあるんだけどExpressには付いてないみたいだね
http://i-keisuke.at.webry.info/200701/article_13.html
ライセンス的に大丈夫なのか知らないけどこういうのも可能みたい
0410デフォルトの名無しさん2007/12/06(木) 15:51:04
NewWindowイベントをキャンセルしたいのですが、

private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}

では上手くいきません。
どのようにしたら良いのか教えてください
0411デフォルトの名無しさん2007/12/06(木) 17:30:21
下記のソースを実行すると1のところでエラーが発生してしまいます。
どうやったら解消されるか教えてください。
目的は、csvファイルからデータを読み込んで、2番目のデータを配列に
挿入することです。

class FileRead2
{
public int[] data;

public void fileRead()
{
string[] list;
string line;
int k = 0;
StreamReader r = new StreamReader("data.csv",Encoding.Default);
while ((line = r.ReadLine()) != null)
{
list = line.Split(',');
/*1*/ data[k] = Convert.ToInt32(list[1]);
k++;
}
r.Close();
}
}
0412デフォルトの名無しさん2007/12/06(木) 18:01:29
>>411
空文字なんじゃねーの?
Console.writeline(list[1] == string.Empty);
/*1*/ data[k] = Convert.ToInt32(list[1]);
でやってみれ
0413デフォルトの名無しさん2007/12/06(木) 18:21:52
listの要素数を確認せずに[1]にアクセスするなよ
0414デフォルトの名無しさん2007/12/06(木) 18:27:31
>エラーが発生してしまいます。
なんでエラーの内容を書かないかな。
list[1]がないか、Parseに失敗してるかのどちらかだろうけど。
04154112007/12/06(木) 18:43:07
エラー内容は
オブジェクト参照がオブジェクト インスタンスに設定されていません。
というものです。

エラー発生時のlistの中身を確認してみると6番目までデータが
入っているので、どうやらparseに失敗しているようです。
0416デフォルトの名無しさん2007/12/06(木) 19:05:13
>>415
そりはもしかして public int[] data; のdataを初期化してないのでは?
0417デフォルトの名無しさん2007/12/06(木) 19:24:00
なんでこれでヌルポが出るんだ
配列の境界を越えてるとかなら分かるが
0418デフォルトの名無しさん2007/12/06(木) 19:24:35
A.Hoge(){};
B.Hoge(){};

using A;
using B;

public static void Main{
Hoge();
}

この場合どっらのHoge()が呼び出されんですか?
0419デフォルトの名無しさん2007/12/06(木) 19:27:01
コンパイルエラーになる
0420デフォルトの名無しさん2007/12/06(木) 19:27:40
わかりました。
0421デフォルトの名無しさん2007/12/06(木) 19:35:09
>>417
data == null
0422デフォルトの名無しさん2007/12/06(木) 19:37:05
>>421
それしかないな
0423デフォルトの名無しさん2007/12/06(木) 19:37:30
明らかに>>416が正解だろ。
ファイルの行数が決まってないから初期化できない、というならList<string>を使え。
0424デフォルトの名無しさん2007/12/06(木) 19:48:23
C#ってLinuxに移植されないの?
0425デフォルトの名無しさん2007/12/06(木) 19:49:28
MONO
Silverlight
04264112007/12/06(木) 20:03:15
皆さんご助言ありがとうございました。
配列を初期化していないことが原因でした。
無事解決できて良かったです。
0427デフォルトの名無しさん2007/12/06(木) 21:15:55
>>409
遅くなりましたがありがとうございました。
EEを使ってる人は標準のアイコンすらないんですね;
0428デフォルトの名無しさん2007/12/06(木) 22:18:54
>>427
ToolStripやMenuStripなら「標準項目の挿入」でいくつかアイコンがつくね。
そいつをなんとか保存しといて使い回したら? ちっこいけど。
0429デフォルトの名無しさん2007/12/06(木) 23:16:30
これマジでつまらない質問なんですが
インスタンスが理解できません
だれかわかりやすく説明してください
0430デフォルトの名無しさん2007/12/06(木) 23:33:45
(どこかで)newしたもの
0431デフォルトの名無しさん2007/12/06(木) 23:35:19
使ってりゃ分かる
0432デフォルトの名無しさん2007/12/06(木) 23:49:37
定番の
クラス…社員
インスタンス…平社員の山本
みたいなのって余計混乱させるだけだと思う
0433デフォルトの名無しさん2007/12/06(木) 23:58:59
オブジェクト指向とか継承とかの説明って大嘘だしな
使ってりゃ分かる
0434デフォルトの名無しさん2007/12/07(金) 00:44:24
>>428
「標準項目の挿入」というのはどこにあるんですか??
0435デフォルトの名無しさん2007/12/07(金) 01:46:15
質問です。

半角英文で書かれたWord文書を読み込んでXMLに出力するプログラムをC#(VS2003)で作成しています。

問題なのは、Word文書中に半角の「μ(みゅー)」や「π(ぱい)」が存在する場合で、読み込んでstring変数に格納した時点で「(」のような文字に変わってしまいます。

化けずにうまく読み込む方法はありますでしょうか?

ちなみに、半角の「μ」や「π」は、Wordの「挿入−記号と特殊文字」 メニューから挿入したものです。

よろしくお願いします。
0436デフォルトの名無しさん2007/12/07(金) 01:55:51
>>434
ポトペタしたあと、そいつをクリックするとそいつの右上あたりに矢印がでて、
そいつクリックすると出るウィンドウの中。
0437デフォルトの名無しさん2007/12/07(金) 03:32:17
>>435
コンソール出力だけど普通に化けなかったよ?
なんか情報出てないんじゃない?
0438デフォルトの名無しさん2007/12/07(金) 05:22:03
>>436
わ!
ありがとうございます!!
0439デフォルトの名無しさん2007/12/07(金) 13:53:40
>>437
トレースで出力してみましたが、文字化けしています。
全角なら問題ないのですが...。
0440デフォルトの名無しさん2007/12/07(金) 13:55:36
>>439
どう化けるの?
実際に出力してるコードは16進でダンプしてみた?
表示のフォントはどれにしてるの?
0441デフォルトの名無しさん2007/12/07(金) 14:13:07
>>440
string変数の中身はセミコロンのような文字になっています。
フォントは、Wordはセンチュリーで、VSの出力ウィンドウのフォントもセンチュリーに変更したら、こちらは正しく表示されました。

0442デフォルトの名無しさん2007/12/07(金) 14:41:24
ListViewItemのTagに自作の構造体を入れてるんだけど、この構造体は
ListViewItemを削除した時点で破棄されるのですか?
0443デフォルトの名無しさん2007/12/07(金) 14:50:07
Delete時に破棄する、というコードを入れてないのなら破棄されない
0444デフォルトの名無しさん2007/12/07(金) 14:50:49
ってここC#だったすまん。
でも削除した時点、ではないかな。
0445デフォルトの名無しさん2007/12/07(金) 14:51:34
そのうちGCが回収してくれるので楽観的でもいいってことでしょうか?
0446デフォルトの名無しさん2007/12/07(金) 15:00:21
おまじないかもしれないが、明示的Disposeしたりnullをセットしたほうが無難なきがする
0447デフォルトの名無しさん2007/12/07(金) 15:02:19
>>445
その構造体が、アンマネージドリソースを確保していないが入りにはそれでOK。
0448デフォルトの名無しさん2007/12/07(金) 15:24:07
前から思ってたんですが、楽観的って言葉の定義がすごい曖昧な気がするであります。
マネージコードである限り、どんなに無茶苦茶なコード書いてもBSODみたいな
破壊は原理的に起きないんでしょうか?

本当にこの辺理解しようと思ったら.netをきちんと勉強しないと駄目ですよね
0449デフォルトの名無しさん2007/12/07(金) 15:30:27
マネージコードでもたとえばDllImportしてる関数を適当に呼んだら死ぬ。
0450デフォルトの名無しさん2007/12/07(金) 15:30:39
>>448
マネージドコードでかつ、マネージドリソースにしかアクセスしない限りは
BSOD 起こす前に OutOfMemoryException が起こる。

でも、結局、ライブラリ中とかでも Win32API を色々 PInvoke してて、
あんま楽観もできないかも。
まあ、多分、ドライバとかみたいに OS に深く食い込むものでもなければ
ブルースクリーンは拝めないと思う。
04514482007/12/07(金) 15:45:45
やっぱりそうですよね
つまり、マネージな世界で閉じてる限り、何があろうともBSODのような被害は起こりえないってことですね
ある意味初心者が使うには打ってつけの言語ですね

ところで>>447さんの
>確保していないが入りにはそれでOK。
は
>確保していない限りにはそれでOK。
という意味でしょうか?
0452デフォルトの名無しさん2007/12/07(金) 16:15:20
構造体がアンマネージリソース確保しちゃダメだろ
0453デフォルトの名無しさん2007/12/07(金) 16:21:00
そんな事あんまねーし
0454デフォルトの名無しさん2007/12/07(金) 19:25:38
C#でErr.Numberのようなシステムの吐き出すエラーコードを知るにはどうしたらいいでしょう
catchの中でどうしても取りたいです

クラス名とかエラー文字列とかいらないです
0455デフォルトの名無しさん2007/12/07(金) 19:32:50
そんなものはない。
0456デフォルトの名無しさん2007/12/07(金) 19:38:24
エラーを番号で表すのが不便でしょうがないから
エラー通達の方法自体を変えたのに。
0457デフォルトの名無しさん2007/12/07(金) 19:39:12
C#のデストラクタって役に立つんですか?
0458デフォルトの名無しさん2007/12/07(金) 19:42:25
Dispose()の呼び忘れ防止とか……
0459デフォルトの名無しさん2007/12/07(金) 19:46:48
とかっていうかそれだけだな
0460デフォルトの名無しさん2007/12/07(金) 21:58:20
半角の「μ(みゅー)」や「π(ぱい)」ってあるんだね。
しらんかった。

つーかないだろ?
0461デフォルトの名無しさん2007/12/07(金) 22:05:00
Windows以外でC#使ってる人いるの?
やっぱC#の人はWinアプリ開発なのかな?
0462デフォルトの名無しさん2007/12/07(金) 22:06:01
うんにゃ
言語論争につかうだけ。
0463デフォルトの名無しさん2007/12/07(金) 22:10:15
いるよ
0464デフォルトの名無しさん2007/12/07(金) 22:10:58
万一Silverlightが流行ることがあれば…
0465デフォルトの名無しさん2007/12/07(金) 22:15:16
でもvista以降のOSが普及すれば一気に流行るんだろうね
LLなんて軟派な言語は要らないんだぜ?
0466デフォルトの名無しさん2007/12/07(金) 22:18:45
>>460
Symbol フォントでμとかπ出すためのコードじゃないか?
Symbol フォントのμ、πってそれぞれ m と p に対応してた気はするけど。
0467デフォルトの名無しさん2007/12/07(金) 23:02:39
配列のプロパティについて詳しく説明しているHPはありますか?
宣言の仕方と使い方の例を参照したいです。
0468デフォルトの名無しさん2007/12/07(金) 23:52:27
そりゃMSDN2
0469デフォルトの名無しさん2007/12/07(金) 23:55:34
.net frameworkのクラス階層が複雑すぎて疲れました…
c#のせいじゃないと分かってますが…
0470デフォルトの名無しさん2007/12/07(金) 23:58:47
そうなったら引退ですね
0471デフォルトの名無しさん2007/12/08(土) 00:06:57
あれが複雑てw
0472デフォルトの名無しさん2007/12/08(土) 00:27:53
Javaの方が酷い
0473デフォルトの名無しさん2007/12/08(土) 01:08:01
複雑なんじゃなくて量が多いだけ
一部のよく使うものだけ覚えておけばあとは必要に応じて調べればいい
0474デフォルトの名無しさん2007/12/08(土) 01:12:08
何の言語でもライブラリ覚えるのが一番大変だ
0475デフォルトの名無しさん2007/12/08(土) 01:19:52
.NETのクラスライブラリなんて無茶苦茶使いやすいじゃん
その昔MFCなるものがあって、最悪だったぞ。
0476デフォルトの名無しさん2007/12/08(土) 01:38:23
こいつ引退どころかプログラマになってすらいないだろうな
0477デフォルトの名無しさん2007/12/08(土) 01:39:23
なんか色々話聞きますよね・・・>MFCやSTL
これから入る初心者にとっては、昔に比べて相当恵まれた環境なんですかね、やっぱ?
0478デフォルトの名無しさん2007/12/08(土) 01:41:47
もう、恵まれてるなんてものじゃない。
10年も昔と比べたら、何十倍も何百倍も生産性高いんじゃなかろうか。
0479デフォルトの名無しさん2007/12/08(土) 02:42:06
IDEがタダなんて考えられんかったしなぁ・・・
0480デフォルトの名無しさん2007/12/08(土) 02:42:11
話ぶった切ってスマソ。質問です。

windows mobile6でファイルを同期させるプログラムをC#で書いているのですが、
ファイルの作成日や最終書き込み日時を変更させるには どうしたら良いでしょうか?
FileInfoやFileクラスだと、LastWriteTimeプロパティが読み取り専用で使えずハマってる現状です。

File.copy(string path)を使ってファイルをコピーすると、何故かファイルのミリ秒部分が
切り捨て、もしくは切り上げされているようで、書き込み日時が1秒ずれてしまうのを直したいのです。
0481デフォルトの名無しさん2007/12/08(土) 03:00:29
ExpressEditionみたいのをもっと早く出しておけば他のIDEへの流出は食い止められたのに
IDEの儲けなんて全体で見れば大したことないんでしょ?
0482デフォルトの名無しさん2007/12/08(土) 03:00:51
>>480
へ?File.SetLastWriteTimeは?
04834802007/12/08(土) 03:09:28
GetLastWriteTime はwindows mobileでもサポートされてるんですが、
何故かSetLastWriteTimeの方はサポートされていないようなんです。
0484デフォルトの名無しさん2007/12/08(土) 09:19:44
>>480
http://www.opennetcf.com/FreeSoftware/SDF14/tabid/91/Default.aspx
ここのソース見てみたらIntPtrとかでドロドロやらないと駄目みたい。
■ このスレッドは過去ログ倉庫に格納されています