ふらっとC#,C♯,C#( ..
2:デフォルトの名無しさん
08/08/20 17:19:16
[プログラム板] C#, C♯, C#相談室 Part47
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
スレリンク(tech板)
Live2
スレリンク(tech板)
初心者のためのプログラミング言語ガイド Part11
スレリンク(tech板)
3:デフォルトの名無しさん
08/08/20 17:20:08
参考サイト。まずはここで検索してから。
URLリンク(www.google.co.jp)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)
4:デフォルトの名無しさん
08/08/21 08:21:56
おっつ
やっぱり立てたのね
5:デフォルトの名無しさん
08/08/21 10:38:34
C#と直接関係ないのですが、マニュアルを書くときにメニューの
展開時の画面をキャプチャーするにはどうすればよいでしょう?
展開時に別のキャプチャー用の画像取り込みソフトを操作すると
展開していたメニューが引っ込んでしまいます。これを取り込むため
には通常はどのような方法で行うのでしょう。よろしくお願いします。
6:デフォルトの名無しさん
08/08/21 10:49:26
キーでトリガにするとか、時間で撮ってくれるソフトとかあるよ。
まあオレはWindows標準の機能(PrintScreenキー)使ってるけど
7:デフォルトの名無しさん
08/08/21 12:29:30
いちもつ
8:デフォルトの名無しさん
08/08/21 12:56:45
普通にAlt + PrintScreenだろ普通は。
ソフト使うにしても>>6の言うようにホットキー設定すればいいし。
つかそんなことも分からんやつがC#で開発なんかできるのか?
C#どころかWindows質問スレレベルだし
9:デフォルトの名無しさん
08/08/21 13:00:57
>>6>>8
>Alt + PrintScreen
わかりました。ありがとうございました!
10:デフォルトの名無しさん
08/08/21 13:39:23
まあAltはメニュー出してるときは無理だけどなw
マルチディスプレイでAlt無しで2画面分丸ごととって切り取る。
11:8
08/08/21 14:40:41
>>10
あ、ほんとだ盲点だわw失礼。
まあ全画面キャプチャから欲しいところだけ切り取ればいいよね。
12:デフォルトの名無しさん
08/08/21 21:14:53
>>11
そんな面倒なことをしないための方法を聞いているのだろ。
そんなことも分からんやつがC#で開発なんかできるのか?してんのか?
C#どころかWindows質問スレレベルに答えられていない。
13:デフォルトの名無しさん
08/08/21 21:37:34
じゃあキミが答えてやれよ
質問者は満足して帰っちゃっただろうけど
14:デフォルトの名無しさん
08/08/21 21:51:41
面倒だからビデオにでも撮れ
15:デフォルトの名無しさん
08/08/21 22:42:01
ファイルにデータを追記しようと思うのですが、
ファイルの先頭に追記するのと末尾に追記するのではどちらが負荷がかかりますか?
また、新規ファイルに書き込むのと比べてどちらの負荷が大きいでしょうか?
よろしくお願い致します。
16:デフォルトの名無しさん
08/08/21 22:43:44
>>15
先頭には追加できない。
17:デフォルトの名無しさん
08/08/21 23:05:58
先頭に追加しようと思ったら、残りを全部後ろにずらさなきゃならない。
ってことだ。
分かるよな。
18:デフォルトの名無しさん
08/08/22 00:30:29
自分からテスト専門です、って宣言してる派遣テスターって何なの?
将来プログラマとかSEになりたい、とかならわかるけど。
向上心ないよね、頑固だし。
そういう派遣テスターって、仕様書は読めない、
テスト仕様書も作れない、テストプログラムも作れない
やれることは「テキトーにプログラムを触る」ことだけ。
俺は派遣プだけどさ、こういう派遣テスターがいると
派遣全体がバカにされるんだよ。
テスト専門派遣なんて氏んで欲しいよ、まったく。
今日も正社員の人が派遣テスターに仕様書を読んで
テスト仕様書を作ってください、って説教してたよ。
その派遣は頑固に「何故、仕様書が必要なんですか?」って
反論してたから、きっとテスト専門派遣テスターだな。
仕様書も読まず、テスト仕様書も作らず、ただテキトーに
プログラム触るだけで給料もらおうなんて頭おかしいんじゃねーの?
あ〜あ、あの派遣テスターが3ヵ月後に切られるまで、
仕様書も読まねーでテキトーにテストしたバグ票がまわってくんのかよ。
そんな糞なもん、読んで処理する派遣プの身にもなってくれよ。
うわ〜、しかもそいつが切られる3ヵ月以内に中間納品あるじゃねーか!
テスト仕様書もなしにテキトーにテストして納品か。
中間納品後にソッコウクレームでデスマ必至だな。俺の休みも返上かよ。
派遣専門テスターさんよ、少しは向上心持てよ!
頑固な性格直して仕様書読めよ!テスト仕様書作れよ!
19:デフォルトの名無しさん
08/08/22 07:43:23
コピペ君が多いな
20:デフォルトの名無しさん
08/08/22 14:49:01
>>15
ファイルの大きさや
>末尾に追記する
の方法による。下手すりゃ
>新規ファイルに書き込むのと
と同じになる。
21:デフォルトの名無しさん
08/08/22 15:05:59
今あるファイル(■)がディスク上に
◆◆■■■■■◆◆ってあったら、ここに追記したら激しく断片化しない?
それとも、◆◆■■■■■□◆◆の様に常に余裕をみて割り当ててるの?
多少空き領域は断片化するかもしれないが、ファイルは断片化しにくいと思って毎回新しいファイルとして作ってた(その方が楽だし)
◆◆□□□□□◆◆■■■■■■■■
22:デフォルトの名無しさん
08/08/22 15:14:04
結局全部読むならいっしょやん
23:デフォルトの名無しさん
08/08/22 15:25:39
>>21
ただ記録しておくだけのログみたいなものなら別に断片化してもかまわないし、
後から何度も読むにしても断片化した大きなファイルを読むのと、
バラバラに配置された複数のファイルを読むのとでは時間にそれほど差はないと思うよ。
読み出すのに少しでも速度が必要ならば、予めある程度の大きさの領域を確保しておく他ない。
24:デフォルトの名無しさん
08/08/22 15:26:21
>>21
お前さんがうだうだ考える程度のことはファイルシステムの設計者やWin32APIの設計者は考慮済みだと思うよ
25:デフォルトの名無しさん
08/08/22 15:37:45
>>21
[゚д゚] ・・・・。
/[_]ヽ
| |
◆◆□□□□□◆◆■■■■■■■■
26:デフォルトの名無しさん
08/08/22 15:39:18
>>21
どうせ新しく書き出すなら、一旦別の名前で書き出してから
(古いのを削除し)本来の名前に変えるようにしたほうがいい。
こうすると、もし書込み中に死んでしまっても、古いファイルが残っていて安心できる。
27:デフォルトの名無しさん
08/08/22 16:34:02
断片化を気にする男の人って・・・・
28:デフォルトの名無しさん
08/08/22 16:36:48
そんなことより、きっちりかっちりシンメトリーかどうかを気にしろよ
29:デフォルトの名無しさん
08/08/22 17:06:28
普通の男なら気になるだろw
30:デフォルトの名無しさん
08/08/22 17:07:30
>>1
31:デフォルトの名無しさん
08/08/22 19:06:29
ListBoxのオーナードローで、各項目に
UserControlを貼り付けるようなことってできるのでしょうか?
32:デフォルトの名無しさん
08/08/22 19:20:22
>>31
WPFを使えば簡単にできるよ。オススメしたい。
オーナードローで多分できるとは思うけど、クリックイベントの処理とか面倒臭そう。
俺はオーナードロー使ったことないからあくまで想像だけど。
33:デフォルトの名無しさん
08/08/22 19:35:33
知らないなら黙っててください
他の方お願いします
34:デフォルトの名無しさん
08/08/22 19:42:01
>>32
ありがd
WPFちょっとさわってみます
35:デフォルトの名無しさん
08/08/22 20:37:08
>>33何か面白いのか知らんが
うざいだけだからもうやめろ
36:デフォルトの名無しさん
08/08/22 20:39:32
想像でラクガキするのも同罪と思うな
37:デフォルトの名無しさん
08/08/22 20:43:15
俺様棚上げクンw
38:デフォルトの名無しさん
08/08/22 20:44:36
ほんと、知らなきゃ黙ってろって事、よくあるよね。
どんな神経してるんだろ。初心者スレで不確かな事言ってなんになるの?
39:デフォルトの名無しさん
08/08/22 20:54:20
猫でもわかるC#のホームページにC#フォーム編があるんですが、
これってVS2005の時にかかれたものみたいなんですが、VS2008でも
フォームを作るデフォルトは代わってないですか?これより、VS2008
のフォームを作る勉強したほうがいいですか?
40:デフォルトの名無しさん
08/08/22 21:00:18
>>39
変わってないから安心しんさい
41:39
08/08/22 21:06:47
>>40
ありがとうございます。このページは結構親切にのっていて、
本を1冊やると同じくらいいいので、得しました。
多謝です。2000円浮いた〜。
42:836
08/08/22 21:51:13
前回の>858
返事がだいぶ遅くなってしまいました。
3行目だけほしいという処理で、ぜんぶを読めといわれたので、なんとかトライしてみました。
が、どうしてもぜんぶを読めずにいます。
ソースは次のとおり。iとsとsrの名前を変えただけです。
ご呈示いただいたところだけだと、読み込みファイル名がなかったりするので、それを足したりしました。
アドバイスよろしくお願いします。
43:836
08/08/22 21:53:05
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;
class ReadWrite{
[STAThread]
public static void Main(string[] args) {
string fileName = args[0]; //引数をファイル名とします。
string[] lines = ReadAllText(fileName); //ReadAllTextは現在のコンテキスト内に存在しないそうです。どう定義したらいいんでしょう? それともこの行は不要?
using(StreamReader readContents = new StreamReader(fileName, System.Text.Encoding.Default));
{
string line = null;
int lineNumber = 0;
do {
line = readContents.ReadLine(); //readContentsは現在のコンテキスト内に存在しないそうです。定義の位置が問題でしょうか?
if(lineNumber == 3) {
Console.WriteLine(line);
break;
}
lineNumber++;
} while (line != null);
}}}
44:デフォルトの名無しさん
08/08/22 21:59:26
ReadAllTextとreadContentsを定義しろよ
45:デフォルトの名無しさん
08/08/22 22:10:18
ワロタ、usingの最後に余計なものが…
46:デフォルトの名無しさん
08/08/22 23:25:52
>>43
1. ReadAllText を Google
2. 前スレ858をあと100回読む
47:デフォルトの名無しさん
08/08/23 00:06:37
デリゲートってオブジェクト志向的には有りなんですか?
なんか積極的に使っていいのか分からんのだけど。
48:デフォルトの名無しさん
08/08/23 00:15:03
オブジェクト指向の暗黒面に囚われてないかい?
49:デフォルトの名無しさん
08/08/23 00:21:46
>>47
オブジェクト指向って何だと思ってるの?
50:デフォルトの名無しさん
08/08/23 00:32:53
とりあえず「有り」か「無し」で。
51:デフォルトの名無しさん
08/08/23 00:35:08
とりあえず、『とりあえず「有り」か「無し」』かを迫るような
単細胞な質問は「なし」だな。
52:デフォルトの名無しさん
08/08/23 00:42:48
必要性があるから存在するにきまってるだろう
53:デフォルトの名無しさん
08/08/23 00:43:09
2択にしても難しい問題だったんだ・・・
54:デフォルトの名無しさん
08/08/23 00:46:53
使わないと実現できない処理がある以上「有り」としか言いようがないでしょ。
「オブジェクト指向だから,これは出来ません」って通らないよね?
55:デフォルトの名無しさん
08/08/23 00:50:29
どうして「無し」と思うのか述べてみろよ。
56:デフォルトの名無しさん
08/08/23 01:08:35
暗黒面ってなんだよw
手続きの方がよっぽどカオスじゃんw
57:デフォルトの名無しさん
08/08/23 01:09:45
>>50
この「無し」ってのは君が理解してないだけ
58:デフォルトの名無しさん
08/08/23 02:26:13
UMLであらわせるれるかどうかと基準ならプロパティやenumだってなしだな。
59:デフォルトの名無しさん
08/08/23 07:51:57
>>47オブジェクト志向的に……
有りだとする。
→オブジェクト指向万歳ってことでどんどん使え。
無しだとする。
→C#はオブジェクト指向だけじゃないマルチパラダイム言語だから、
オブジェクト指向に捕らわれずどんどん使え。
60:デフォルトの名無しさん
08/08/23 08:03:11
プロパティの中身はメソッドの自動生成機能だし、
enumはクラスの自動生成機能でしょ?
delegateもメソッド1つのインターフェース作ったりするのと
同じじゃない?
ただの便利機能じゃないのか。
61:デフォルトの名無しさん
08/08/23 08:46:36
delegateは関数ポインタに近い機能と思えばよい、と何処かに書いてあった。
→ ということは、過去の遺物を引きずっているのではないか?
→ 俺の知ってる最新鋭のオブジェクト指向言語に似合わない!
ごめん、思考のトレースに失敗した。色々と無理があった。ごめん。
62:デフォルトの名無しさん
08/08/23 09:11:11
結局、全ては機械語の構文糖衣なんだよ。
63:デフォルトの名無しさん
08/08/23 09:17:22
オブジェクト指向の既存の機能を使って実現したものでも、
それがオブジェクト指向であるかどうかとは無関係。
例えシンタックスシュガーであっても概念的に違うものになりえる。
64:デフォルトの名無しさん
08/08/23 09:19:54
>>62
それはいいすぎ
機能を実現するかどうかか、ではなくて、
どれだけ生産性を向上するかどうかがオブジェクト指向を使う意義なんだから
65:デフォルトの名無しさん
08/08/23 10:22:04
つまり、delegateはオブジェクト指向の概念と合わない?
66:デフォルトの名無しさん
08/08/23 10:24:54
なんでそうなるんぞ
67:デフォルトの名無しさん
08/08/23 10:29:31
delegateは、関数ポインタをクラスでラップしたものだね。
68:デフォルトの名無しさん
08/08/23 10:51:16
女の子はデリケートだぞっ!
69:デフォルトの名無しさん
08/08/23 11:07:20
関数ポインタというより委譲モデルを簡略化したと考えれば
オブジェクト指向から外れてないと思うけどね。
javaのlistener/adapter型の委譲モデルも意地悪を言えば、
内部クラスや匿名クラスはオブジェクト指向かどうか疑わしいよ。
70:デフォルトの名無しさん
08/08/23 11:17:50
そうそう、関数ポインタって説明はあまり良い方向ではないと思う。
「処理」をカプセル化してオブジェクトとして扱えるようにしたもの
という方向の方が、今時の思想にマッチしてる。
もちろん単純に関数ポインタイメージで使うことはできるが。
71:デフォルトの名無しさん
08/08/23 11:22:59
デリゲートに好きして
72:デフォルトの名無しさん
08/08/23 11:25:16
デリゲートのスコープの外の変数もちゃんと見れて、そのまんまで、あちこち受け渡しできるんだもんな。
すげーよ。
73:デフォルトの名無しさん
08/08/23 11:26:50
>>72
どういうこと?
詳しく
74:デフォルトの名無しさん
08/08/23 11:32:29
クロージャということ、これはさすがにオブジェクト指向というより関数型。
75:デフォルトの名無しさん
08/08/23 11:36:39
レキシカルクロージャとかいうやつ?
よくしらんけど
76:デフォルトの名無しさん
08/08/23 12:00:31
クロージャってオブジェクト的とも見ることができる
詳しくはSICP
77:デフォルトの名無しさん
08/08/23 14:48:31
オブジェクト指向とは・・・ただの言葉じゃ
78:デフォルトの名無しさん
08/08/23 15:23:01
オブジェクト指向=良いもの
オブジェクト指向との合致度が高い言語=いい言語
そんな盲目的な思い込みが罠なんだ
79:デフォルトの名無しさん
08/08/23 16:19:42
関数ポインタに毛が生えて好き物ってのでいいよ。
80:デフォルトの名無しさん
08/08/25 10:33:34
オブジェクト指向もパフォーマンス悪いし、匙加減が重要
81:デフォルトの名無しさん
08/08/25 11:34:37
C#でMDI フォームアプリを作成しています。
子フォームを最大化すると親フォームのメインメニューにアイコンが
表示されるのですが、これを非表示にするにはどうすればよろしいでしょうか?
82:デフォルトの名無しさん
08/08/27 11:29:13
Dictionary<key,value>で、valueを指定してkeyを探すことはできますか?
83:デフォルトの名無しさん
08/08/27 11:43:02
.Firstとか.Selectとか
あとはforeach
84:デフォルトの名無しさん
08/08/27 11:45:08
SelectじゃなくてWhereだった…
85:デフォルトの名無しさん
08/08/27 12:00:28
>>83
ありがとうございます。
FirstやSelectは初めて知りました。
しかし、なんでDictionaryにはFindやFindAllが無いんだろう
86:デフォルトの名無しさん
08/08/27 12:09:43
Key使わない検索じゃDictionaryの旨みが無いから?
87:デフォルトの名無しさん
08/08/27 21:56:40
まあ、検索スピード欲しけりゃ逆引きの方のDictionaryも用意すべきだし。
88:デフォルトの名無しさん
08/08/27 22:59:26
class 逆引きつきDictionary<TKey, TValue> : IDictionary<TKey, TValue>{
private Dictionary<TKey, TValue> 順引き辞書;
private Dictionary<TValue, TKey> 逆引き辞書;
void Add(TKey key, TValue value){
順引き辞書.Add(key, value);
逆引き辞書.Add(value, key);
}
bool Remove(TKey key){
TValue v = 順引き辞書[key];
逆引き辞書.Remove(v);
return 順引き辞書.Remove(key);
}
TKey 逆引き(TValue value){
return 逆引き辞書[value];
}
…
}
これはねーか
89:デフォルトの名無しさん
08/08/27 23:05:56
valueが重複したらアウトじゃねえかw
90:デフォルトの名無しさん
08/08/27 23:50:12
なるへそじゃあ
void Add(TKey key, TValue value){
if(逆引き辞書.ContainsKey(value))
throw new valueが重複してますよExeption();
順引き辞書.Add(key, value);
逆引き辞書.Add(value, key);
}
っていう風になるのか?
91:デフォルトの名無しさん
08/08/28 08:06:34
>>90
それか、逆引きの側は Dictionary<Value, HashSet<Key>>。
92:デフォルトの名無しさん
08/08/28 13:34:59
フォーム内にWebBrowserコントロールを追加しているのだが、
その中の任意のポイントにクリックを発生させるにはどうしたらよいのだろう?
Cursor.Position = webBrowser1.PointToScreen(new Point(webBrowser1.Location.X + 50, webBrowser1.Location.Y + 50));
のような感じでマウスカーソルを希望するところに持っていくことはできたのだが、
そこにクリックを発生させる方法がわからない。
もしかしたらSendMessageでLEFTDOWN->LEFTUPでクリックを送ればいいのかと思ったけど、
今度はwebBrowser1のいわゆるhWndを取得する方法がわからない。
誰かお助け下さい。
93:デフォルトの名無しさん
08/08/28 13:38:18
SendInputが一番楽じゃね
94:デフォルトの名無しさん
08/08/28 13:52:00
Flashなどの組み込みオブジェクトではなく単にリンクやボタンなどのHTMLエレメントなどを
操作したいというのであればHTMLDOMつかってInvokeMember(マネージDOMの場合)で
Clickメソッドを実行したほうが楽と思われるが。
まあ、わざわざマウスクリックをしたいといってるから組み込みオブジェクトの可能性が高いなw
SendMessageではなく、mouse_eventというAPIを使ってみれば?こっちだとhWnd不要だから
95:デフォルトの名無しさん
08/08/28 14:05:03
>>93
なるほど、そんな関数があったのね。
URLリンク(homepage3.nifty.com)
ここを見て、うまくいきました。
ありがとうございます。
96:デフォルトの名無しさん
08/08/28 14:20:30
private setの自動プロパティにreadonlyが付けられたらいいのに
コンストラクタで初期化して以降変更しないものでも
自動プロパティが便利だからついreadonlyフィールド使わなくなっちゃうんだよね
独り言
97:デフォルトの名無しさん
08/08/28 14:22:28
aho
98:デフォルトの名無しさん
08/08/28 16:35:53
{0}をコンソールに表示する方法おしえてください
99:デフォルトの名無しさん
08/08/28 16:40:24
Console.Write("{0}");
100:デフォルトの名無しさん
08/08/28 16:43:46
エスケープの方法はヘルプの「複合書式設定」参照
101:デフォルトの名無しさん
08/08/28 16:54:47
public struct MyStruct
{
public MyStruct(long value)
{
this.TotalValue = value;
}
[FieldOffset(0)]
public long Total;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}
//コンパイルエラー
フィールド 'Value1~4' は、コントロールが呼び出し元に返される前に割り当てられている必要があります。
ちゃんと割り当てられてるじゃんね。意外とコンパイラもお馬鹿さんだな。
まーどーでもいいことなんだけど、過疎ってるからネタを投下してみた
102:デフォルトの名無しさん
08/08/28 16:56:14
struct MyStruct{
public MyStruct(long value){
this.TotalValue = value;
}
[FieldOffset(0)]
public long TotalValue;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}
コードミスったのはご愛敬で
103:デフォルトの名無しさん
08/08/28 16:57:24
[StructLayout(LayoutKind.Explicit)]
struct MyStruct{
public MyStruct(long value){
this.TotalValue = value;
}
[FieldOffset(0)]
public long TotalValue;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}
属性付け忘れもご愛敬で。。。
スレ汚しすまない
104:デフォルトの名無しさん
08/08/28 17:02:22
いや、コンストラクタで初期値セットせな
105:デフォルトの名無しさん
08/08/28 17:04:39
Console.Writeline("{{0}}", 10);
で
{10}
を期待したところ
ぶーぶー
言われました
>>100さん、ありがとうございます
おかげさまで解決しました
>>99さん、二度とくんな
106:デフォルトの名無しさん
08/08/28 17:06:11
98 :デフォルトの名無しさん [↓] :2008/08/28(木) 16:35:53
{0}をコンソールに表示する方法おしえてください
105 :デフォルトの名無しさん [↓] :2008/08/28(木) 17:04:39
>>99さん、二度とくんな
wwwwwwwwwwwwww
107:デフォルトの名無しさん
08/08/28 17:10:40
>>99はたしかに{0}が出力される。
引数無いとそのまま出るみたいよ。
よって、>>98の質問の答えにはなってる。
108:デフォルトの名無しさん
08/08/28 17:11:20
つーか最初から>>105の内容で質問すりゃいいのに。
109:デフォルトの名無しさん
08/08/28 17:20:27
100の先もエスケープには限界あるから分けて出力する必要があるかもよって書いてるしな
110:デフォルトの名無しさん
08/08/28 17:28:45
夏だねぇ
111:デフォルトの名無しさん
08/08/28 18:24:32
>>110
そのセリフはちょびっと遅いぞ。
言ってみたかったの?
来年またトライしてみよう!
112:デフォルトの名無しさん
08/08/28 19:24:54
一生懸命勉強して、大きなプログラマになるんだ!
113:デフォルトの名無しさん
08/08/28 20:14:11
System.Security.AllowPartiallyTrustedCallersAttribute
というエラーが出てJScriptからDLLを呼び出せません…
呼び出せるDLLと呼び出せないDLLがあるのですけれども
どこが違うのでしょうか?よろしくお願いします m(_ _)m
URLリンク(www.isla-plata.org)
114:デフォルトの名無しさん
08/08/28 20:35:51
・セキュリティ上好ましくない為、部分的に信頼されたアセンブリは、厳密な名前付きのアセンブリを呼び出す事ができない。
それだと不便なのでAllowPartiallyTrustedCallersAttributeが付いた物に限り、利用可能になっている。
詳しくはMSDN見て来い
115:デフォルトの名無しさん
08/08/29 02:06:09
public int hoge(ここでエンターキー)
↓
public int hoge
{
}
上のようにエンターキーでブロックが自動挿入されるように出来ないでしょうか?
VBから移行してきたばかりなので入力に手間取ってしまいます。
116:デフォルトの名無しさん
08/08/29 02:09:24
一生VBやってればいいよ
こっちくんな
117:115
08/08/29 02:11:02
自己解決しました
自動で複数行ブロックが挿入されるようにすると全部複数行になってしまうんですね・・・
118:デフォルトの名無しさん
08/08/29 02:12:01
>>116
はじめまして。
119:デフォルトの名無しさん
08/08/29 02:27:04
C#はいちいち面倒なことが多くて、やっぱりVBの方がいいですよ。
120:デフォルトの名無しさん
08/08/29 02:28:40
ID出してくれええ
121:デフォルトの名無しさん
08/08/29 02:49:25
誰だお前?死ねよ
122:デフォルトの名無しさん
08/08/29 03:59:15
言語に優劣をつける気はないが、VBの
If a = b Then
だけはどーーしても違和感&不安になる
123:デフォルトの名無しさん
08/08/29 04:00:27
自分の場合、ときどきIf a == b Thenって書いちゃうよ。
124:デフォルトの名無しさん
08/08/29 09:15:44
VBの場合>>115みたいな機能が無いとタイプ量が多すぎるからな
C#でもifとかforとか使うときにコードスニペットが使えるよ
125:デフォルトの名無しさん
08/08/29 10:08:03
c# から Windows のスタートメニューを開きたいのだけれど、どうやったらできますか?
SendKeys.Send("^{ESC}");
としても開けませんでした。
126:デフォルトの名無しさん
08/08/29 10:28:05
>>125
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
const uint WM_SYSCOMMAND = 0x112, SC_TASKLIST = 0xf130;
private void button1_Click(object sender, EventArgs e) {
SendMessage(this.Handle, WM_SYSCOMMAND, new IntPtr(SC_TASKLIST), IntPtr.Zero);
}
127:デフォルトの名無しさん
08/08/29 10:40:16
>>126
早々にありがとうございますm(__)m
ばっちりです。
128:デフォルトの名無しさん
08/08/29 18:06:00
TcpClient の受信処理で1024Byteずつ受信してメモリストリームに書き出しています。
NetworkStreamのDataAvailableが続きのデータがあるにもかかわらず、
FALSEを返して受信が終了してしまいます。
下記サイトでも同じ問題が記載されています。
URLリンク(www.niseko.or.jp)
現在do〜while間にSleep(50)を入れると正常に受信できるのですが、
他にも解決策はありませんか?
//クライアントとの間の通信につかうストリームを取得
NetworkStream ns = server2.GetStream(); //server2は、TcpClient
//クライアントから送られたデータを受信する
System.IO.MemoryStream ms = new System.IO.MemoryStream();
byte[] resBytes = new byte[1024];
int resSize;
do
{
//データの一部を受信する
resSize = ns.Read(resBytes, 0, resBytes.Length);
//受信したデータを蓄積する
ms.Write(resBytes, 0, resSize);
Thread.Sleep(50); //ここで50ミリ秒スリープさせると正常に受信できる
} while (ns.DataAvailable);
string responsStrings = enc.GetString(ms.ToArray());
129:デフォルトの名無しさん
08/08/29 18:12:45
Readの返値で判断するのが吉
130:デフォルトの名無しさん
08/08/29 18:15:22
リンク先見ずに書いたけどリンク先でもそう結論してんじゃんか
何が悲しいのかさっぱり理解できないが
DataAvailableがtrue返すのは多分その時点でネットワークからは読み取り終わってるから
Read前なのでバッファには残ってる
131:デフォルトの名無しさん
08/08/29 18:18:51
なんか適当なことを書いてしまった
DataAvailableがtrueになるのはバッファにデータが溜まってるとき
Read連続で呼び出すとネットワークからの読み取りが遅れた場合にfalseを返すのは当然
132:デフォルトの名無しさん
08/08/29 18:34:28
MSDNを正確に読めよ
133:128
08/08/29 18:55:56
>>129
Readの返値で判断するのが吉
このReadの返り値は自分で用意したバッファサイズが返るだけのようですが・・
(resBytesのサイズ)
>>131
了解です。
100分の5秒遅れただけでfalseでは使えないと言うことですね。
MSDNのサンプルに騙されたか・・
1byteずつ読んでエンコードしてCONTENT_LENGTHを読んだ方が確実ですね。
134:デフォルトの名無しさん
08/08/29 19:00:56
もっぺんReadの解説読んでこい
135:デフォルトの名無しさん
08/08/29 19:02:06
Visual C# 2008 Expressを使ってるんですけども
デバッグビルドとリリースビルドはどうやって切り替えるんでしょうか
136:デフォルトの名無しさん
08/08/29 19:13:05
MSDNはたまに意味不明なところもあるけど、それは君の技術力が足りなすぎていて理解できないだけ
137:デフォルトの名無しさん
08/08/29 19:17:07
>>135
FAQだね
Expressをインストールしたらまずやるべきこと
ツール→オプション→すべての設定を表示 にチェック
プロジェクトおよびソリューション
→ビルド構成の詳細を表示・常にソリューションを表示・作成時に新しいプロジェクトを保存
にチェック
138:デフォルトの名無しさん
08/08/29 19:19:54
NetworkStream..::.Read メソッド
パラメータ
buffer
型 : array< System..::.Byte >[]()[]
Byte 型の配列。NetworkStream から読み取られたデータを格納するメモリ内の場所です。
offset
型 : System..::.Int32
データの格納を開始する buffer 内の場所。
size
型 : System..::.Int32
NetworkStream から読み取るバイト数。
戻り値
型 : System..::.Int32
NetworkStream から読み取るバイト数。
139:デフォルトの名無しさん
08/08/29 19:20:17
APIぐらいちゃんと読めよ
140:デフォルトの名無しさん
08/08/29 19:27:44
>>138まだ続きがあるだろ。
解説
このメソッドは、データをbufferパラメータに読み込み、正常に読み込まれたバイト数を返します。
読み取ることができるデータが存在しない場合、Readメソッドは0を返します。
Read操作は、sizeパラメータで指定されたバイト数に達するまで、使用できるデータをすべて読み取ります。
リモート ホストが接続をシャットダウンし、使用できるデータがすべて受信されると、
Readメソッドはすぐに完了して、0バイトを返します。
141:128
08/08/29 19:30:03
おわ!理解不足だったか
MSDNからコピってきました。
なにがいけないんだろう?
// Examples for CanRead, Read, and DataAvailable.
// Check to see if this NetworkStream is readable.
if(myNetworkStream.CanRead){
byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = 0;
// Incoming message may be larger than the buffer size.
do{
numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
}
while(myNetworkStream.DataAvailable);
// Print out the received message to the console.
Console.WriteLine("You received the following message : " + myCompleteMessage);
}
else
{
Console.WriteLine("Sorry. You cannot read from this NetworkStream.");
}
142:128
08/08/29 19:41:00
あ、Readの解説ありがとうございます。
resSize = ns.Read(resBytes, 0, resBytes.Length);
if (resSize == 0)
break;
とすればいいわけですね。
これは>>131さんが言っている、
Read連続で呼び出すとネットワークからの読み取りが遅れた場合にfalseを返す
に対応できますね。
みなさまありがとうございます。
50にもなって初めてのプログラミング、何もかもが分からないことだらけです。
143:デフォルトの名無しさん
08/08/29 19:51:36
年齢は関係ないだろ
144:デフォルトの名無しさん
08/08/29 20:03:15
うむ、年齢は関係ないな。学ぼうとする気持ちが大事。
145:デフォルトの名無しさん
08/08/29 20:09:01
新手の煽りか?
146:デフォルトの名無しさん
08/08/29 20:59:39
50歳からのプログラミング
147:デフォルトの名無しさん
08/08/29 21:11:58
暴れる50代は多いな。
スレリンク(tech板:738番)
148:デフォルトの名無しさん
08/08/29 21:25:12
>>137
遅レスですがありがとうございました
149:デフォルトの名無しさん
08/08/31 01:13:19
VBから移動組だけどはコードがシンプルでいいなあ
インテリセンスがもうちょっと使いやすかったらよいんだけど
150:デフォルトの名無しさん
08/08/31 01:52:54
VC++からの移行組としてはインテリセンスがちゃんと効くだけで満足です
151:デフォルトの名無しさん
08/08/31 02:31:56
JavaやらVBやらやってきたけど、Javaは言語の構造というかなんかすきになれなくて
VBは簡単すぎて(;´д`)ってかんじがしてたんだけど、ようやく自分に最適な言語をみつけた。
152:デフォルトの名無しさん
08/08/31 02:37:52
そうですか。
153:デフォルトの名無しさん
08/08/31 03:11:32
>VBは簡単すぎて
の意味がわからん。簡単な方がいいだろ
154:デフォルトの名無しさん
08/08/31 03:31:52
そのJavaは言語の構造ってのは何のこと?
謎が多い奴だ・・・
155:デフォルトの名無しさん
08/08/31 03:42:29
Javaは周辺技術を追いかけるのに疲れたってのはあるな。
156:デフォルトの名無しさん
08/08/31 03:47:38
C#も凄いけどな。それよか、VBは追いかける必要なく得て、いつも言語に組み込んじゃう。だからVBの追いかけなくていいし、面倒ないからいいかなと思うよ。
157:デフォルトの名無しさん
08/08/31 04:22:32
VBでなれちゃうと他に乗り換えるのがめんどくさくなってくる。
158:デフォルトの名無しさん
08/08/31 04:37:42
それはない
159:デフォルトの名無しさん
08/08/31 04:48:31
>>156
C#はMSだけ追いかけていればいいけど、JavaはSun以外からもいろいろ
出てくるのがしんどい。
160:デフォルトの名無しさん
08/08/31 05:41:00
もうDしかない!
161:デフォルトの名無しさん
08/08/31 07:06:41
private void 終了XToolStripMenuItem_Click(object sender, EventArgs e)
{
}
↑から↓を呼び出すにはどう書けばよいのでしょうか?
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
162:デフォルトの名無しさん
08/08/31 07:19:10
フォームデザイナでイベントを定義してあれば、勝手に呼ばれるだろ。
163:デフォルトの名無しさん
08/08/31 07:30:39
Linq to xml の事で少し手ほどきしてください
XmlSerializer 等を使うと、適当に作ったクラスを一発でシリアライズできますが
同様な感じで、適当に作ったクラスから XElement を作る方法で良い方法はありますでしょうか?
またその逆も簡単にできそうであれば教えてください。
現状ではXmlSerializerをStringWriterを経由させているのですが、なんとなくバカっぽいので・・・
164:デフォルトの名無しさん
08/08/31 07:34:47
>>162
デザイナで終了XToolStripMenuItem_Clickのプロパティから
Clickイベントのドロップダウン一覧にForm1_FormClosingが出てこないので
定義できないのですが、ほかに方法があるでしょうか?
165:デフォルトの名無しさん
08/08/31 07:38:22
>>164
デザイナでフォームのイベントを見てみ
ここでイベントを割り当てれば、イベントハンドラ定義が追加される。
フォームデザイナでどういうことをすると、どういうコードが追加されるのか
確認してみるといいよ。
166:デフォルトの名無しさん
08/08/31 07:44:32
終了XToolStripMenuItem_Clickからフォームを閉じたいって言うこと?
でもe.Cancel=true;って書いてるし何がしたいんだかよくわかんね
167:デフォルトの名無しさん
08/08/31 07:48:10
>>163
ぐぐったらこんなのがヒットした。
URLリンク(www.hanselman.com)
XDocumentのCreateWriterメソッドがポイントみたいね。
168:デフォルトの名無しさん
08/08/31 07:53:43
>>165
>>デザイナでフォームのイベントを見てみ
これはデザイナのプロパティウィンドウのイベントボタンを押したときの一覧ですよね?
>>161はここからダブルクリックで追加したコードですが
終了XToolStripMenuItem_ClickもForm1_FormClosingもどちらにも
お互い出てこないのでイベントハンドラを共有できないのですがどうすれば良いですか?
169:デフォルトの名無しさん
08/08/31 07:59:03
>>164
ボタンからは普通にフォームを閉じるなりアプリを終了するなりすればいい。
>>165ができていれば、フォームが閉じられる前にFormClosingを拾えるはず。
で、イベントがキャンセルされてフォームは閉じられない。
何がしたいんだ?
170:デフォルトの名無しさん
08/08/31 08:11:58
>>166
実際にはかなり複雑な分岐処理が書かれているので、ほとんど省略してます。
>>169
VBだと
Form1_FormClosing(sender,e)
で行けた様な気がしたので気になってDesigner.csでEventHandlerを直接いじっても
FormClosedも共有できないみたいだし、C#の仕様ということでしょうか?
171:デフォルトの名無しさん
08/08/31 08:25:58
ボタンから閉じないけど同じ処理をしたいのなら別な関数として書いてそれを両方から呼び出したほうがよくね?
172:デフォルトの名無しさん
08/08/31 08:28:48
片方が
EventArgs
もう片方が
FormClosingEventArgs
つまりそういうことだ
173:デフォルトの名無しさん
08/08/31 08:37:04
>>170
Form1_FormClosingにブレークポイントを設定したら、フォームを閉じるときに
ちゃんと呼ばれるか?
呼ばれるなら、終了メニューにApplication.Exit();とかthis.close();とか書けば
いいっしょ。
174:デフォルトの名無しさん
08/08/31 11:28:13
KeyedCollection使うときにGetKeyForItemをオーバーライドするためだけに
それぞれ派生クラス作るのってアホらしくない?
デリゲートでキーを返す派生クラスを一つだけ作るとか?
175:デフォルトの名無しさん
08/08/31 18:44:33
それでもいいと思うが ObjectModel 内のクラスの存在理由とかそんなの
勘違いしてないか?
176:デフォルトの名無しさん
08/08/31 22:06:54
日本語対応のフォントのみを取得する方法ってあります?
FontFamilyでインストールされてるフォントを全部取得することはできたんですが
そこから欧文フォントとかを除く方法がわかりません。
177:デフォルトの名無しさん
08/09/01 14:03:41
>>170
クラスとキャストの概念が分かってないみたいだねぇ。さすがVB。
Form1_FormClosing(sender,new FormClosingEventArgs())
やりたいのはこれかな?
178:170
08/09/01 18:00:03
>>171
やっぱりそれが一番勝手が良いですね。
>>172
ようするに、キャストできない型なのでそのままだと呼び出せないということでしょうか。
>>173
なんか一番わかりやすいのでthis.close();を使ってます。
>>177
例えば
Form1_FormClosing(sender, new FormClosingEventArgs(CloseReason.None, true));
見たいにコンストラクタを初期化してやるとエラーにならないんですが
引数なしだとエラーになります。
型が違うイベントを呼び出すときは、毎回コンストラクタを初期化しないと
呼び出せないということでしょうか。
クラスとキャストの概念がわかってるかどうかは自信がありませんがキャストは出来ませんよね?
179:デフォルトの名無しさん
08/09/01 19:28:40
>>178
>>177の言ってることもトンチキだから気にしない。
君が分かってないのは>>177の言ってるようなことじゃない。
君が分かってないのはイベントとイベントハンドラだよ。
イベントハンドラ(例えばForm1_FormClosing())というのは、
イベント(例えばフォームが閉じられた)時に「呼ばれる」ものであって、
それを呼び出すと何かが起こる(例えばフォームが閉じる)わけではないよ。
VBの人にありがちな倒錯だね。
原因と結果が逆立ちしてる。
180:170
08/09/01 19:46:54
>>179
あー、そうか
一般論としてはイベントとイベントハンドラについて理解してるつもりだったけど
今回の件に関しては全く理解できてなかったということですね (^^;
ものすごく本末転倒なことを聞いてましたね、精進します
みなさん、有難うございました
181:デフォルトの名無しさん
08/09/01 19:47:29
VS2008sp1のインテリセンス日本語化はいつなんでしょうか?
182:デフォルトの名無しさん
08/09/01 19:54:20
>>178
とりあえず新規のWinFormプロジェクトを作る。
フォームデザイナでフォームを選択し、イベントハンドラの
FormClosingをダブルクリックする。
Form1_FormClosingにMessageBox.Show("FormClosing");
を書く。
実行する。
メニューを追加し、終了メニューにthis.close();と書く。
実行する。
これでイベントの流れの概略がわかるか?
FormClosingをダブルクリックする前後にForm1.Designer.csも
見てみるといい。
183:デフォルトの名無しさん
08/09/01 21:01:50
usingについての質問です
ネットワークプログラミングをしているのですが、通信が終わったときにNetworkStreamを閉じようと思い、以下のようなコードを書きました。
using( NetworkStream Stream = new NetworkStream(socket, true) )
{
…
事前の処理
…
Thread newthread = new Thread(Func);
newthread.Start(new object[] { Stream, newthread });
}
このような場合、NetworkStreamはどのように扱われるのでしょうか?
# threadの処理が終わるまで保持される?
# newthread.Startが呼ばれたあとにDispose()されてStreamはnullになる?
184:デフォルトの名無しさん
08/09/01 21:16:20
スレッドを作り終わった瞬間に削除される。
185:デフォルトの名無しさん
08/09/01 21:16:42
>>183
どう考えてもすぐに破棄されるに決まってる。
186:デフォルトの名無しさん
08/09/01 21:17:47
まあnullになるは意味不明だけどな。
187:デフォルトの名無しさん
08/09/01 21:28:43
匿名デリゲートを使うと、nullにならない事が確認できるよ
188:デフォルトの名無しさん
08/09/02 10:48:39
>>187
usingに使う変数の宣言は()内じゃなくてもいいんだよ
ローカル変数でもフィールドでもおk
189:183
08/09/02 15:24:14
皆様ありがとうございました。
# nullにならない、usingの使い方に関しては大変勉強になりました。
もう一つ質問させてください。
上のようなコードで、例えばFunc内で、
void Func(object obj)
{
NetworkStream newStream = (NetworkStream)((object[])obj)[0];
…
byte[] abBuffer = new byte[256];
newStream.Read(abBuffer,0,256);
…
}
などの操作を行った場合、NetworkStreamは既に破棄されており、利用できないのでしょうか。
190:デフォルトの名無しさん
08/09/02 15:31:18
そんなわけない
191:デフォルトの名無しさん
08/09/02 15:34:06
まあほとんどの場合Disposedだろうな
192:デフォルトの名無しさん
08/09/02 15:35:58
objが
193:デフォルトの名無しさん
08/09/02 16:45:03
>>190
お前はプログラミングするんじゃねーぞ
194:デフォルトの名無しさん
08/09/02 16:51:02
ローカル変数が何時までも残ってたらローカルじゃないでしょ
195:デフォルトの名無しさん
08/09/02 16:53:58
>>194
何の話?
196:189
08/09/02 18:44:51
ありがとうございました。
thread内でNetworkStreamを閉じるなど、コードを書き換えて検討し直してみます。
197:デフォルトの名無しさん
08/09/02 19:07:50
適当なディレクトリ内のファイルを列挙して、キューにどんどん突っ込んでいきたいのですが、
Directory.GetFilesなどではそのディレクトリのファイルを全て列挙するまで結果を得ることが出来ません、、、
ファイルを1つずつキューに入れていくためには、WinAPIを呼ぶしかないのでしょうか。
198:デフォルトの名無しさん
08/09/02 19:13:27
どんなストレージ使ったら問題になるのか分からないがまあその通り
フロッピーとかか
199:デフォルトの名無しさん
08/09/02 19:14:25
>>196
いや、ちゃんと調べたほうがいい、間違いが混ざってる。
200:デフォルトの名無しさん
08/09/02 19:51:37
質問です
1.findControlを使用して、コンテンツページからマスタページのDataListを取得
2.staticなメソッドに取得したDataListを渡して、DataListへの設定を行う。
3.画面表示
こうすると、DataListへの設定が反映されません。
staticなメソッドで行わずにコンテンツページ内でDataListへの設定を行った場合は
問題なく動くのですがなぜでしょうか。
201:デフォルトの名無しさん
08/09/02 20:28:54
若干怪しい部分はあるが、具体的なコードがないとわからない。
特にstaticメソッド辺り。
202:デフォルトの名無しさん
08/09/03 12:02:08
List<string,string> ls = new List<string,string>();
というような二次元の動的な配列を作りたいのですが
どうすればいいのでしょうか。
203:デフォルトの名無しさん
08/09/03 12:12:52
List<List<string>>
要素にアクセスするときはls[r][c]
204:デフォルトの名無しさん
08/09/03 12:17:42
有り難うございます。試してみます。
205:デフォルトの名無しさん
08/09/03 19:50:51
すみません、質問いいですか?
複数端末から同一ファイルをFilesystemWatcherで監視します。
んでファイルが来たらファイルを読みたいんですが
この場合、排他制御はどうしたらベストでしょうか?
お願いします。
206:デフォルトの名無しさん
08/09/03 21:31:03
何いってんのかわからん
207:デフォルトの名無しさん
08/09/03 21:34:08
おまえうざいんですけど
208:デフォルトの名無しさん
08/09/03 22:10:33
正直俺にも何言ってんのかわからんよ。
ぼんやりとは伝えたい方向が推測できないわけではないが。
プログラミング勉強する前に日本語できちんと自分の意図を
伝える練習した方がいいんじゃないのか?
209:デフォルトの名無しさん
08/09/03 22:14:03
おいおい>>205の文章は普通に言ってることはわかるだろw
サーバサイドの話でしょ。
俺はそっち方面知らんから答えられんけど。
210:デフォルトの名無しさん
08/09/03 22:14:49
>>205
やりたいことの説明が足りないのは確かだな。
1) 書き込まれたファイルを複数の監視しているPCのうちどれか1台が処理する。
2) 全部で処理する。
3) 全部で処理するが並列では処理させない。
並列処理といってるから1か3の可能性が高いが、
ファイルを書き出すのが完了した状態を判断したいということかもしれない。
211:デフォルトの名無しさん
08/09/03 22:32:29
>>209
なんだよ 「サーバサイドの話」ってww
FileSystemWathcerクラスは確かにUNCパスも使えるけど、基本的に
IOの話であって、「ローカルサイド(嗤)」の話だがな。
第一、FileSystemWatherが監視するのはディレクトリであって、ファイルじゃ
ないし。
そもそも「複数端末から同一ファイルを」監視しているはずなのに、「ファイルがきたら」
「ファイルを読みたい」って全く意味不明。ファイルは存在しているの?存在している
なら「ファイルがくる」ってどういう意味? 存在していないなら「同一ファイルを監視する」
っていったいどういうこと?
あ、なんかだんだんわかってきたぞ!!
たとえば \\server\dir を複数マシンから監視して、hoge.txt ファイルが新しく
作られたら、それを読み込みたいんだけれど、複数マシンからアクセスするので
排他制御をなんとかしたいということなんだろうか????
Created イベントで新しいファイルの名前がhoge.txtだったら、単純にreadモードで
FileStreamに読み込めばいいだけだと思うんだが…。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4745日前に更新/134 KB
担当:undef