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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/

■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/

■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
2デフォルトの名無しさん:2010/12/16(木) 18:27:19
1>>乙
3デフォルトの名無しさん:2010/12/16(木) 19:10:57

「乙」とは十干(じっかん、甲乙丙丁戊己庚辛壬癸)の第2番目。「きのと」とも読む。五行は木、陰陽は陰。草花を象徴し、協調・社交・和合を意味する。

または甲で始まる順位の第2位。「乙種」「甲乙つけがたい」

>>1
4デフォルトの名無しさん:2010/12/17(金) 10:37:49
>1お疲れさまです^^

早速質問なんですが、xmlデータの取込の際にタグで
<ns0:root xmlns:ns0="http:〜">のタグって名前空間とまで分かったのですが

public T Deserialize<T>(string fileName, string encode = "Shift_JIS")
{
var serializer = new XmlSerializer(typeof(T));
using (var tr = new StreamReader(fileName, Encoding.GetEncoding(encode)))
{
return (T)serializer.Deserialize(tr);
}
}
の形で取り込む時に<T>のクラス指定での名前空間の指定(?)の方法がわかりません;w;
どなたか分かる方いらっしゃいますか?

説明下手ですいません。。。
5デフォルトの名無しさん:2010/12/17(金) 10:44:13
DOMを使うべき
64:2010/12/17(金) 10:55:26
業者から来る形がいままで名前空間の無いXMLが来ていたのですが
新規の業者に名前空間が付いていることと、既存の取込方法をしようして
取り込みたいのでどうぞよろしくおねがいいたします。
7デフォルトの名無しさん:2010/12/17(金) 11:21:39
DOMで好きなように書き換えてからXmlSerializerに食わせればいいじゃん
8デフォルトの名無しさん:2010/12/17(金) 11:26:22
xmlは詳しくないけどxmlの中に名前空間を持ったノード?が存在できて
そのクラスが独自に存在するならそういうデータを作ってそのクラスの型を調べればいいんじゃね?
9デフォルトの名無しさん:2010/12/17(金) 11:30:19
だいたいDOMを使わなかった元の設計者が糞
10デフォルトの名無しさん:2010/12/17(金) 11:33:46
うーむ、、、独自にXPathDocument使ってしまおうかな@w@

それなら簡単だし。。。
11デフォルトの名無しさん:2010/12/17(金) 11:35:45
>>10
昔のようにメモリかつかつな時代でもないんだし
従来のロジック+新しいロジックの併用運用すればいいじゃん
新しい方でもいけるならそっちに切り替えるとかすればいいんだし
12デフォルトの名無しさん:2010/12/17(金) 11:51:31
そうですね、、、そうします@w@んでこっそりいままのやつも変更・・しようかなぁ
13デフォルトの名無しさん:2010/12/17(金) 14:33:27
スキーマがあるならxsd.exeでクラス自動生成させて
XmlSerializerに食わせれば一発だよ
14デフォルトの名無しさん:2010/12/17(金) 15:28:24
streamreader で何行か読んで、
今のストリームの位置を変数かなんかに
保存してbinaryreader でそこから読んでいきたいんですが
可能ですか?素直にbinaryreader で一文字ずつ読んで
改行文字を追うべきでしょうか
15デフォルトの名無しさん:2010/12/17(金) 15:30:25
そんな読み方して何やるの?
16デフォルトの名無しさん:2010/12/17(金) 15:48:05
途中までテキストとして扱えるファイルを使うのに
便利そうなので・・・
17デフォルトの名無しさん:2010/12/17(金) 16:11:07
>>16
StreamReaderはある程度の量をバッファーに読み込みながら処理しているんだけど、
そのバッファーをどこまで使ったかはプライベートになっているので外部からではわからない。
文字列の長さから位置を割り出そうとしても、改行文字が\nか\r\nかわからないし、
エンコーディングの関係でずれる可能性があるので難しい。
リフレクション使えばなんとかなるかもしれないけど、
素直にbinaryreaderで一文字ずつ読んで改行文字を追っていったほうが楽そう。
18デフォルトの名無しさん:2010/12/17(金) 16:14:14
>>17
というかテキストとバイナリの境目って何で判断するのって話だな
テキストデータってのはバイナリコードをあるルールに従って扱ってるだけの話だし

作ってる人間はここまでがテキストここからはバイナリと思ってても
コードだけみたんじゃあわからないぞ
19デフォルトの名無しさん:2010/12/17(金) 16:15:33
あー、ちょっと訂正
streamreader.CurrentEncoding.GetByteCount使えば文字列の長さは割り出せるね
20デフォルトの名無しさん:2010/12/17(金) 16:28:38
割り出せないよ
だいたいそれ使うならオンメモリだからストリーム戻す必要なんかない
最初から別のbyte配列に読んでしまえばいいだけのこと
21デフォルトの名無しさん:2010/12/17(金) 16:29:37
>>18
テキストとしてみたとき
4行だけ読めば良い、とか特定の文字の出現ででテキストとして解釈できる
範囲が確定できる場合を想定してるんです
22デフォルトの名無しさん:2010/12/17(金) 16:53:12
ちょっと大げさかもしれんが
class BinaryReaderEx : BinaryReader {
  public BinaryReaderEx(Stream input) : base(input) {
  }
  public string ReadLine() {
    StringBuilder sb = new StringBuilder();
    char c;
    while ((c = this.ReadChar()) != '\n') {
      if (c == '\r') continue;
        sb.Append(c);
      }
      return sb.ToString();
      }
    }
  }
}
23デフォルトの名無しさん:2010/12/17(金) 18:38:53
C#の文法やら仕様について詳しい他言語経験者向けの書籍でオススメなの有りますか?
24デフォルトの名無しさん:2010/12/17(金) 18:44:15
>>23
どの言語から来たかしらないがクラスを覚える必要があるけど
基本はそんなに難しくないと思うのでここでも一読を
http://ufcpp.net/study/csharp/index.html

まあどの言語から来るかにもよるんですけどね・・・・
25デフォルトの名無しさん:2010/12/17(金) 18:45:44
>クラスを覚える必要があるけど
MSが用意したクラスを覚える必要があるけど
26デフォルトの名無しさん:2010/12/17(金) 18:50:11
>>23
標準講座C#
978-4798114736

なんかどう?
27デフォルトの名無しさん:2010/12/17(金) 18:56:31
Cを中心にC++をちょっとかじった程度です

>>24>>26
なかなか分かりやすそうでよさげですね
そこそこ良いお値段するけど中身も良さそうなのでちょっと書店で目を通してみます
2814:2010/12/17(金) 21:16:11
GetByteCount と BaseStream.Seek

で出来ました。一箇所妙な出力が残ってますが

>>19
どうも
29デフォルトの名無しさん:2010/12/17(金) 22:59:02
それ、出来たっていうのだろうか
30デフォルトの名無しさん:2010/12/17(金) 23:09:28
>>29
明らかに消せそうだったので
もう直せましたし
31デフォルトの名無しさん:2010/12/17(金) 23:17:04
文字列として読み取ったブロックの元の長さと、GetByteCount(読み取られた文字列)が等しいことは
保障されるの?
32デフォルトの名無しさん:2010/12/18(土) 00:38:15
助けて下さい。
GoogleのAPIでGoogleカレンダーをc#で表示するにはどうしたらいいんでしょうか。SDKはDL済み、環境はVS2008です
いろいろいじってみたのですが全くわかりませんでした。
33デフォルトの名無しさん:2010/12/18(土) 06:45:52
こういうのはアリ?

Bitmap bmp = (略
pictureBox1.Image = bmp;


それともこうしなきゃだめ?

Bitmap bmp = (略
Image old = pictureBox1.Image;
pictureBox1.Image = bmp;
old.Dispose();
34デフォルトの名無しさん:2010/12/18(土) 08:21:01
>>32
web系のAPIってぶっちゃけると単なるURLでしょ


>>33
なんのためのGCかと
35デフォルトの名無しさん:2010/12/18(土) 09:02:27
>>33
なんか懐かしいw
DCにブラシやペンを設定〜
36デフォルトの名無しさん:2010/12/18(土) 09:12:57
>>35
c#でもブラシやペン使うときはDisposeするよ
http://dobon.net/vb/dotnet/graphics/fillrectangel.html
Dispose書き忘れが嫌ならusingで囲っちゃえばいいだけだし

PictureBoxに渡してあったImageは新しいImageを渡すことで
切り離されていずれGCが開放するだろうけど
37デフォルトの名無しさん:2010/12/18(土) 10:33:36
>>33
同じ処理したことあるけど、考えたことなかった。
確かに Dispose() したくなるね。
pictureBox.Image の set 時に、 勝手にDispose()してくれるとうれしいけど、どうだろう。

以下のサンプルではDispose()してないから、不要かな。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.picturebox.image%28v=VS.80%29.aspx
38デフォルトの名無しさん:2010/12/18(土) 10:46:49
>>37
勝手にDisposeされたら怖いわ
二つのImageを状況に応じて切り替えとかできねぇじゃん

たまに替えるだけなら基本はGCまかせでOK
ビューアとかならちゃんと以前のはDispose
3933:2010/12/18(土) 15:03:24
やっぱそうかーありがとう
それなりにぱかぱかBitmap生成して切り替えるからDispose必要ですね(精神衛生上)
コードが冗長になって凹むけど一応書いておこう
40デフォルトの名無しさん:2010/12/18(土) 15:10:15
精神衛生上じゃないよ
Imageが占有するメモリはGCが関知しないから解放がすごく遅れる可能性が高い
41デフォルトの名無しさん:2010/12/18(土) 15:23:19
c#初心者です.DataTable教えてください
MSDNサンプルを実行してみたのですが,
ttp://msdn.microsoft.com/ja-jp/library/9ha04z01.aspx

table.Columns.Add(column);
でAddしたcolumnはどこに格納されるのでしょうか?
table.Columnsの中身を探しても見つかりません.
42デフォルトの名無しさん:2010/12/18(土) 15:43:29
>>41
table.Columns.Count は増えてる?
43デフォルトの名無しさん:2010/12/18(土) 15:50:04
増えてます
foreach (DataColumn dc in table.Columns)
  MessageBox.Show(dc.ColumnName);
とすると中身も表示されます.
ただ,デバッグ画面のローカルって所を探してもAddした情報がないので,
どこに格納されているのかなと思いまして.
44デフォルトの名無しさん:2010/12/18(土) 16:01:02
>>43
格納されているのは、認識通りでいいよ。
ちゃんと探せば出てくる。表示名がインターフェースに変わって、見つけづらいのかも。
45デフォルトの名無しさん:2010/12/18(土) 16:55:49
>>33
Bitmap bmp = (略
pictureBox1.Image.Dispose();;
pictureBox1.Image = bmp;

じゃだめなん?
PictureBox使ったことないからよくわからんけど
46デフォルトの名無しさん:2010/12/18(土) 17:08:32
>>45
ゆっくりやるとダメ。早くやれば問題がでづらいかも。
少し気持ち悪い。
4733:2010/12/18(土) 19:22:11
>>46
まとめるとこう?
oldで挟むよりは気持ちいい

Bitmap bmp = (略
using(Image old = pictureBox1.Image){
  pictureBox1.Image = bmp;
}

Bitmapクラスの内部がどうなってるか知らないけど
BITMAPハンドル保持してるとかだったら
自前でDisposeしないと危ないね
4843:2010/12/18(土) 19:25:07
>>44
_primaryIndexっていうパブリックでないメンバーにはいってました.
49デフォルトの名無しさん:2010/12/18(土) 20:41:52
VC#で作たWindowsアプリを、ASP.NET使ってIEで操作できるようにしたいんだけど
なんでPictureBox使えなくなるの?
HTML使った事ないから、まとな画像処理できねぇよwww
50デフォルトの名無しさん:2010/12/18(土) 20:43:01
Silverlight使えば?
たいがいなんでもできるよ
51デフォルトの名無しさん:2010/12/18(土) 21:02:16
>>49
画像処理するだけならPictureBoxはいらないでしょ。
52デフォルトの名無しさん:2010/12/18(土) 21:05:28
ASP.NETって何かわかってるんだろうか
ブラウザはサーバーが生成したHTMLをただ表示してるだけで
C#のコードは全部サーバー側で動作するんだよ? Windowsアプリとは全く違うんだけど理解してる?
ブラウザ側でC#動かして画像処理とかやりたいならSilverlightでも使わないと
53デフォルトの名無しさん:2010/12/18(土) 21:14:17
>>49
お前アホか。GUIコンポーネントがサーバで使えるわけねーだろ。
WebとHTMLを基礎から勉強してこい。
54デフォルトの名無しさん:2010/12/18(土) 21:22:33
>>50
silverlightググってみた、やりたかった事全部行けそうです!
マジで感謝!MS最高だわwww

>>51
PictureBox使わないと背景画像に透明の画像かぶせて、
その上に点とか線描画できないと思ってたんだ

>>52
そりゃ.NETって言うぐらいだから、Webアプリ用のフレームワークでしょ?
俺バカだけどそんぐらい理解してるっつーの!
55デフォルトの名無しさん:2010/12/18(土) 21:31:52
今度はXAMLわからないから画像処理できないとか言い出しそうだな
SilverlightはWinFormsとは比べ物にならない表現力があるけど
ASP.NET以上にWinFormsの知識が役に立たない
56デフォルトの名無しさん:2010/12/18(土) 23:28:46
これからSilverlightの時代だよ
57デフォルトの名無しさん:2010/12/19(日) 00:06:09
いや、どう考えてもHTML5だろ
Flashが辛うじて残るかどうかだ
58デフォルトの名無しさん:2010/12/19(日) 00:10:17
>>57
HTML5は軸が違うから比べても意味ない。
Windows 系の GUI が Silverlight になってく。
ただ、置き換わるのは数年後かねぇ。
「Silverlight の時代」って言うにはちょっと早い。
59デフォルトの名無しさん:2010/12/19(日) 00:12:24
あのー・・・WPFは・・・?
60デフォルトの名無しさん:2010/12/19(日) 00:12:36
そういうのとは勝負やめて、
簡単にビジネスアプリケーションを配布するための仕組みになった
ClickOnceに近い位置づけ
61デフォルトの名無しさん:2010/12/19(日) 00:19:46
Silverlight5はpinvokeがサポートされるから
極端な話だけどやろうと思えはWinFormsやWPFもSilverlightの上で動かせるね
単にクライアント専用の簡易版.NETを目指してるんだよ
62デフォルトの名無しさん:2010/12/19(日) 00:20:54
MSはもうWPFよりSilverlightのほうに力入れてるじゃん
63デフォルトの名無しさん:2010/12/19(日) 01:01:05
まあでも、WPFが消えるのは、Silverlightの機能がWPF相当になった時よ。
それがたぶん、数年後。
64sage:2010/12/19(日) 01:08:11
>>62
開発環境のWebDeveloperはベータ以前の品質じゃね? ドキュメントも英語しかないし。
65デフォルトの名無しさん:2010/12/19(日) 01:14:34
毎度の事ながらMS新技術出しすぎわろすw
66デフォルトの名無しさん:2010/12/19(日) 01:18:13
カバーしてる範囲が広いだけ。
67デフォルトの名無しさん:2010/12/19(日) 01:33:50
>>64
WP7かなんかと勘違いしてるだろ
SilverlightはVS2008や2010で正式にサポートされてるし
Express版のWebDeveloperもVC#と同時にリリースされてる
68デフォルトの名無しさん:2010/12/19(日) 01:39:40
>>59
49ですが、時代はWPFだと思うよ!!

試しにWPFでプロジェクト作成したら
普通にIEから、Windowsフォーム呼び出せたwww
Win32も使えるみたいだし、既存のWindowsアプリをWeb化するならWPF最強じゃん!!
おかげで1人月の案件が3日で終わりそうwww
69デフォルトの名無しさん:2010/12/19(日) 01:44:21
>>68
それ、対応してるブラウザー少ないよ。
それでいいって言われる案件なら、普通にデスクトップ版の WPF でいいと思うんだけど。
ClickOnce 配布いいよ。
70デフォルトの名無しさん:2010/12/19(日) 02:34:46
wpfなくなるつってもふつうに流用できそうだしな。
安心してwpf勉強するわ。
71デフォルトの名無しさん:2010/12/19(日) 10:27:01
萌えキャラのあるSilverlight一択だし。
72デフォルトの名無しさん:2010/12/19(日) 12:13:39
何をもってweb化と言ってるんだろうな
XBAPなんてウインドウ枠がIEになっただけ
73デフォルトの名無しさん:2010/12/19(日) 12:21:36
web化っていうと仕事は基本的にwebサービスにやらせるもんだと思うが
silverlightにしろwpfにしろ、クライアントだけで完結するものをwebアプリと呼ぶのかどうか
74デフォルトの名無しさん:2010/12/19(日) 12:30:18
wpfはしらんけどsilverlightはビジネスロジックは
webサービスじゃなイカ
75デフォルトの名無しさん:2010/12/19(日) 12:31:18
>>73
いや、WCF サービスとかでサーバーサイド作っておけば、
例えクライアント側がデスクトップアプリであっても Web 化と呼べるとは思うが。
76デフォルトの名無しさん:2010/12/19(日) 13:29:56
顧客にとって大事なのはブラウザの画面の中に表示されること。
処理がサーバなのかクライアントなのかなんて関係ない。
77デフォルトの名無しさん:2010/12/19(日) 13:40:13
>>75
俺らから見たらそうでも一般の利用者からしたらWeb化=ブラウザ上で使えるって思うかと
78デフォルトの名無しさん:2010/12/19(日) 13:41:40
断定すんなw
79デフォルトの名無しさん:2010/12/19(日) 13:54:15
>>76
あほな顧客が多くて困るって奴ですね。
いや、困らないのか、むしろその方がぼったくれて。
80デフォルトの名無しさん:2010/12/19(日) 13:58:21
Webが何かぐぐった方がよいと思うよwww
81デフォルトの名無しさん:2010/12/19(日) 15:15:45
Silverlightはともかく、XBAPなんて普通のデスクトップアプリとしてWPFを動かすことも
可能な環境がないと動かせないからなw
何の意味もありません
82デフォルトの名無しさん:2010/12/19(日) 15:36:31
ただねぇ、真の意味でクロスプラットフォームなのは、HTML5+Ajaxアプリですらなく、
サービス化してデータだけプログラム的に取れるようにしとくことだと思う。

正直、HTML5が理念通りに完全に互換性保てるとは思えないし、
UI 技術はすぐに入れ替わるし、プラットフォームごとに変わる。

で、そのサービスを受け取る側のクライアントアプリは、
もうクロスとか気にせず、WPF とかで作ればいいと思う。
凝ったUI作るなら、多重開発した方がマシ。
83デフォルトの名無しさん:2010/12/19(日) 15:49:37
まあWebを好む人の大半はソフトをインストールするのが面倒くさいからだから
>>76-77みたいなのはそんなにおかしくないな
84デフォルトの名無しさん:2010/12/19(日) 15:52:06
コンシューマー向けだとそりゃ、ブラウザー内実行必須だと思うけども、
業務系だとあれよ、Webですキリッって言いつつ、
帳票印刷の部分はClickOnceでデスクトップアプリ起動とかが普通よ。
85デフォルトの名無しさん:2010/12/19(日) 16:00:44
>>84
うるせえ
86デフォルトの名無しさん:2010/12/19(日) 16:11:02
>>84
まさにそういうニーズに応えるのがSilverlightでしょ
妙なイメージが付いちゃってるから名前変えればいいのに
87デフォルトの名無しさん:2010/12/19(日) 16:16:16
普通だけどそれでいいかどうかは客に説明して確認してからじゃないと

1人月が3日でできたとか言ってたらダメってことだ。
88デフォルトの名無しさん:2010/12/19(日) 17:21:06
>>87
は?残りの時間、自分の好きな事できるんだぜ
全然ダメじゃ無いじゃんwww
89デフォルトの名無しさん:2010/12/19(日) 17:33:40
まあ、客に説明してからにしろってのは正論として、
「1人月が3日になります」なら普通納得してもらえるけどもね。
90デフォルトの名無しさん:2010/12/19(日) 17:45:37
でも説明して三日でできるっていったら普通客は
じゃあ安くしてって言うでしょ。
それでも1人月払うよっていうならすごいいい客だな。
しっかり捕まえておかないと。
91デフォルトの名無しさん:2010/12/19(日) 18:27:03
せんせー、ここ初心者スレ
92デフォルトの名無しさん:2010/12/19(日) 18:44:33
10年プログラミングしているけど
未だにLinq、ADO.Net,SQLがさっぱりわからないし
必要と思ったこともない
ラムダ式は一応やるけど
93デフォルトの名無しさん:2010/12/19(日) 18:50:23
使いどころを知ってれば問題ないのでは?
存在すら知らないとそれは選択肢を減らすことになるからどうかと思うけど。
94デフォルトの名無しさん:2010/12/19(日) 18:51:06
>>92
DBを使う必要がなければとことん必要無い
95デフォルトの名無しさん:2010/12/19(日) 18:51:40
使っている人はどんなソフトを作っているのですか?
96デフォルトの名無しさん:2010/12/19(日) 18:53:07
データベースってどんなアプリにもありませんか?
リストを保存したりするのはよくあることだと思うんだけど
そういうときに使うと便利なの?
97デフォルトの名無しさん:2010/12/19(日) 19:15:31
だけどfirefoxですらsqliteを使っているという
98デフォルトの名無しさん:2010/12/19(日) 19:19:36
Janeもsqlite使ってなかったっけ?
そこまでのデータ扱うか?ってあるけどなw
肥大化してもっさりとか言われながらw
99デフォルトの名無しさん:2010/12/19(日) 19:21:39
LINQをそこに混ぜるなよ
100デフォルトの名無しさん:2010/12/19(日) 19:37:41
10年プログラムしてSQL触らないとかあるんだな
101デフォルトの名無しさん:2010/12/19(日) 19:40:33
元々DB使いだし、素でSQL書いたほうがいいじゃん、と最初LINQは毛嫌いしてたが
DBと関係なくLINQ便利だよな
102デフォルトの名無しさん:2010/12/19(日) 19:44:12
データベースというものがそもそもない
103デフォルトの名無しさん:2010/12/19(日) 20:17:06
え?
104デフォルトの名無しさん:2010/12/19(日) 20:26:39
ちょっとしたListから絞込みとかちょー便利
105デフォルトの名無しさん:2010/12/19(日) 20:46:37
俺は30年以上プログラム組んでいるし、
プログラミングの専門書も書いている
しかし、SQLは知らん
106デフォルトの名無しさん:2010/12/19(日) 20:52:59
最近でこそHTML5.01でSQLiteが標準になったりしてるけど
ちょっとしたことなら一々DBなんて使わない、めんどくさい
SQL触らないヤツは触らない
107デフォルトの名無しさん:2010/12/19(日) 20:55:44
汎用リスト処理を"統一された方法"で簡潔に記述するのがLINQの役割。
操作対象がDBのテーブルだろうが、コレクションだろうが関係ない。
108デフォルトの名無しさん:2010/12/19(日) 21:00:27
SQLiteならiniファイル作る並に簡単じゃね
109デフォルトの名無しさん:2010/12/19(日) 21:00:41
HTML5のSQLは消えたよ
110デフォルトの名無しさん:2010/12/19(日) 21:05:27
>>108
めっちゃ簡単。サーバーいらんし。

>>109
そうなの?
111デフォルトの名無しさん:2010/12/19(日) 21:11:04
データベースを管理するということ自体しない
112デフォルトの名無しさん:2010/12/19(日) 21:43:09
DBを使えないことがステータス
113デフォルトの名無しさん:2010/12/19(日) 21:51:08
会社のシステム開発とかWEB開発とか
個人でDBが必要なことなんてないだろ
114デフォルトの名無しさん:2010/12/19(日) 22:24:05
インストールが必要な大がかりなやつが個人で必要になることは少ないけど
組み込みの軽量データベースは使うだろ。
115デフォルトの名無しさん:2010/12/19(日) 22:37:20
(DB使わないでトラブルが起きたときデータの解析とかどうやるんだろう・・・自前でコードかくのかな・・・詳細設計もレビューもしてない上に実績のないコードいきなり使うとか怖いよな・・・)
116デフォルトの名無しさん:2010/12/19(日) 23:26:13
WinFormについて質問です。
InitializeComponetで各コントロールのサイズを設定した後
this.ResumeLayout(false);this.PerformLayout();すると解像度に合わせてサイズが
変更されます。その時、ビルドした環境の解像度がどこかに記憶されているように
見えるのですが、一体どういう仕組みになっているんでしょうか?
117デフォルトの名無しさん:2010/12/19(日) 23:30:12
>>116
なんでそう思ったの
118デフォルトの名無しさん:2010/12/19(日) 23:31:30
this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;

これかえ?
119116:2010/12/19(日) 23:45:53
自己解決しました。FormのAutoScaleDimensionsでした。デザイン修正時に更新されるようです。
>>117
 140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
 96dpiでビルドした時、140dpi以外で実行するとスケーリングされるからです。
120116:2010/12/19(日) 23:46:52
すみません書き間違えました。
140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、96dpi以外で実行するとスケーリングされるからです。
121116:2010/12/20(月) 01:47:57
すみません書き間違えました。
140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、96dpi以外で実行するとスケーリングされるからです。
122デフォルトの名無しさん:2010/12/20(月) 09:35:59
デバッグ時に「InvalidOperationExceptionはハンドルされませんでした。」って警告が出ます。
EXEの実行時にエラーはは出ません。
いろいろ調べたのですが、「BackgroundWorker を使用してスレッド セーフな呼び出しを行うには」
というのを試したのですが、うまくいきませんでした。
いまいち警告の内容もわからないのですが、MSDNの表現が解りにくくて・・・
どこか解り易い解説かサンプル知りませんか?
警告の出るコントロールの処理をBackgroundWorkerのイベントハンドラで実行するようにするだけじゃ駄目なんですかね?
123デフォルトの名無しさん:2010/12/20(月) 09:37:39
コンボボックスを継承して、コンストラクタでアイテムを追加したところ、実行するとアイテムが重複して追加されました。
デザイン時と実行時にコンストラクタが動いているためだと思いますが、これを回避するにはどうしたら良いでしょうか?
現在は初期化用メソッドを用意して、外部から呼び出してもらうことで回避しています。
124デフォルトの名無しさん:2010/12/20(月) 10:00:39
Component.DesignModeでデザイン時か判断できる
フォーム.Designer.csに以前追加した際のデータが残っているのであわせて削除する
125123:2010/12/20(月) 10:22:11
>>124
ありがとうございます。
ただDesignModeは、コンストラクタでは常にfalseを返すようです。
とりあえず、コンストラクタでアイテムをクリアして追加するようにして対処します。ありがとうございました。
126デフォルトの名無しさん:2010/12/20(月) 10:30:52
127123:2010/12/20(月) 10:51:41
>>126
以下のようにして対処できました。ありがとうございます!

if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.Equals("VCSExpress")) {
//デバッグ時
} else {
//実行時
}
128デフォルトの名無しさん:2010/12/20(月) 12:57:18
>>122
まずは例外がどこから発生してるのか確かめる。
BackgroundWorkerのDoWorkのイベントハンドラは別のスレッドで実行されるからコントロールを触ってはいけない。
コントロールを触るにはControl.Invokeを使ってもいいけど、BackgroundWorkerならReportProgressメソッドを呼んで
ProgressChangedイベントでコントロールを触る方がいい。
ProgressChangedとRunWorkerCompletedイベントはUIスレッドで実行されるのでコントロールを直接触っていい。
129デフォルトの名無しさん:2010/12/20(月) 23:15:43
配列Aの各要素を2乗した新しい配列Bを作成」って1行で書けるのか?
130デフォルトの名無しさん:2010/12/20(月) 23:16:40
B = A.Select(a => a * a).ToArray();
131デフォルトの名無しさん:2010/12/20(月) 23:18:59
B = Array.ConvertAll(A, a => a * a);
132デフォルトの名無しさん:2010/12/20(月) 23:23:35
やるじゃん
133デフォルトの名無しさん:2010/12/20(月) 23:24:02
これがLinqってやつ?
はじめて便利そうに思えた
134デフォルトの名無しさん:2010/12/20(月) 23:29:09
何が何やらサッパリだけど凄いな
135デフォルトの名無しさん:2010/12/20(月) 23:36:59
こういう身近に使えそうな例が沢山ほしいよな
とあるサイトは学生名簿とか作るわけねーよってつっこみたくなる
136デフォルトの名無しさん:2010/12/20(月) 23:39:16
あれ理解するには
SQL構文、匿名メソッド、デリゲート、ラムダ式を知らないと理解はできないよな
でも、最初は丸暗記でいいんじゃね?
137デフォルトの名無しさん:2010/12/21(火) 00:08:21
各要素を2乗した新しい配列の方が作らんわw
138デフォルトの名無しさん:2010/12/21(火) 00:10:03
確かに
139デフォルトの名無しさん:2010/12/21(火) 00:13:35
でもこういう単純な例の方が応用が利くじゃない

実用的な例

B= A.Select(a => "[AV]"+a);
140デフォルトの名無しさん:2010/12/21(火) 00:15:19
LINQ使うとき、なぜか foreach を使わないことが多いのはおれだけだろうか。
141デフォルトの名無しさん:2010/12/21(火) 00:17:54
ToList().ForEach は痛い
142デフォルトの名無しさん:2010/12/21(火) 01:08:05
最後のToArray()で評価した段階で必要なコレクションが完成する。
その後でfor/foreach使うのって、副作用がある処理をしたいとか、LINQで書くには複雑になる場合。

foreachの使用頻度が減るのは当然じゃないか?
143デフォルトの名無しさん:2010/12/21(火) 01:21:45
>>140
最後が Aggregate系で終わる場合も多いしね。
ただ、結局最後が foreach なんなら、 .ForEach() とかは使わず普通に foreach したい。
144デフォルトの名無しさん:2010/12/21(火) 01:25:48
>>130を丁寧に解説しようとすると結構大変で、 Arrayは int[] だとして

定義済みデリゲート Func<T,TResult> で
Func<int,int> func = (int a) => { return a*a; }

ラムダ式ルール
・引数が1つなら()省略可
・引数の型の推論でint省略可
・単文なら式形式で戻り値おk
って感じで下のように書ける。
Func<int,int> func = a => a*a;

これをSelect()の引数に渡す。
var A2 = A.Select(func);

デリゲートを作らず、その場で匿名メソッドで書いたのが
var A2 = A.Select(a => a*a);

A2はIEnumerableなので、更にToArray()してArray化するとint[]のBになる。
(ちなみにvarにカーソル合わせるとちゃんと型が表示される。)


と、頑張って理解しながらMDSNや解説サイトをじっくり読めば目の前がパァっと輝くさ
http://msdn.microsoft.com/ja-jp/library/bb548891.aspx
http://msdn.microsoft.com/ja-jp/library/bb549151.aspx
145デフォルトの名無しさん:2010/12/21(火) 01:34:31
>>144
これはわかりやすい。感謝。
146デフォルトの名無しさん:2010/12/21(火) 01:42:23
間違えた。はずかちい (/ω\)

× MDSN
○ MSDN
147デフォルトの名無しさん:2010/12/21(火) 01:51:09
書かなきゃ気づかないのにw
148デフォルトの名無しさん:2010/12/21(火) 01:58:25
なんで=>なんだろ
比較と混ざるからアローでいいのに
149デフォルトの名無しさん:2010/12/21(火) 02:06:25
デリゲートを作らずに直接メソッドを入れられるのはなんで?
自動でデリゲートに入れてくれるの?
150デフォルトの名無しさん:2010/12/21(火) 02:06:36
>>127
仕様に合うか分かんないしあんま自信ないけど。。。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new ObjectCollection Items { get { return base.Items; }}
デザイナではItemsのコードが生成されないからコンストラクタで追加してても記録されない。
newはあまり使いたくないけど。
151デフォルトの名無しさん:2010/12/21(火) 02:10:08
他人が作ったプラグインを利用できる本体はどうやって作ればいいですか?
自分でdllは作ったことがあるけど
それはメソッド名を知っているから利用できるわけで
どんなメソッド名を作られるかもわからない他人のdllのメソッドを
既に完成した実行ファイルから呼び出すのがどうやってるのかわかりません

上手く説明できないので意味が伝わっているか心配です
152デフォルトの名無しさん:2010/12/21(火) 02:18:06
プラグインが
・どうやって作った本体を
・どう参照しているのか
によるので一概には言えない
153デフォルトの名無しさん:2010/12/21(火) 02:19:08
>>151
.NetのDLLなら参照設定に追加すれば使える。
開発時に手に入らないものであれば、
実行時にロードしてクラスやメソッドを呼ぶ。
154デフォルトの名無しさん:2010/12/21(火) 02:19:08
>>149
hoge(int n) で hoge(10+5); って書いたら n=10+5 じゃん。
hoge(Func<int,int> f) で hoge(a=>a*a); って書いたら f=a=>a*a だべさ。
155デフォルトの名無しさん:2010/12/21(火) 03:48:29
>>151
本体でインターフェース定義しといて
それを実装したプラグインを作ってもらえばいい

このへんが参考になるんじゃないかな
http://dobon.net/vb/dotnet/programing/plugin.html
156デフォルトの名無しさん:2010/12/21(火) 05:17:04
>>149
型推論の結果、自動で適切な型に入れてくれる。
157デフォルトの名無しさん:2010/12/21(火) 11:22:34
コードから参照設定を追加するにはどう書けば良いでしょうか

WMP.Libを参照設定
フォームを作成し、そのなかにWMPコントロールを配置します
158デフォルトの名無しさん:2010/12/21(火) 11:41:18
>>155
なるほど、インターフェースですか
C++のhファイルがインターフェースにあたるのかな?
あるソフトのプラグインsdkを見ても
hファイルが入っているだけなんです
C++はよくわからないですが、コードを見た感じインターフェースっぽいですね
足がかりが出来ました。ありがとう。
159デフォルトの名無しさん:2010/12/21(火) 11:43:18
LoadLibrary API
160デフォルトの名無しさん:2010/12/21(火) 12:47:21
今から作るならMEF(Managed Extensibility Framework)を使うのがいいよ
プラグイン側も本体の方もアホみたいに簡単
161デフォルトの名無しさん:2010/12/21(火) 13:06:41
どうもありがとうございます
C#製のプラグイン対応アプリてないですよね
C++の得意分野なのかなと思っていました
162123:2010/12/21(火) 13:36:33
>>150
その方法でも実現できました。ありがとうございます。
163デフォルトの名無しさん:2010/12/21(火) 13:51:33
>>161
VS2010
だいたいC#で書かれててプラグインにはMEF使ってる
164デフォルトの名無しさん:2010/12/21(火) 18:01:07
(´・ω・`)…
165デフォルトの名無しさん:2010/12/21(火) 18:50:10
ω・`)…
166デフォルトの名無しさん:2010/12/21(火) 18:56:14
・`)…
167デフォルトの名無しさん:2010/12/21(火) 20:06:44
ContextMenu(ContextMenuStripではありません)を使って「'〜' を検索」のようなメニューを作っています。
〜の文字列の長さによってメニューの幅が広がりますが、〜の文字列が短くなってもメニューの幅が
広がったままになってしまい、
│ '〜〜' を検索  (無駄なスペース)  │
のように右に無駄なスペースができてしまいます。
このスペースを消したいのですがどうしたらよいでしょうか?
ちなみにオーナードローはしていません。また、他のメニュー項目のTextはこの項目のTextより短いです。
168デフォルトの名無しさん:2010/12/21(火) 20:14:38
Width="Auto"
169デフォルトの名無しさん:2010/12/21(火) 20:17:15
>>168
すいません書き忘れました、WinFormsです。
170デフォルトの名無しさん:2010/12/22(水) 00:34:27
>>156
最初から自動変換あってもよかったのにね。
途中入りなのが、過去のコード資産が微妙に残念に見える。
171デフォルトの名無しさん:2010/12/22(水) 01:13:40
@参照設定したWMPコントロールをフォームに記述して再生するにはどうすればいいですか
AWindowsFormsApplication1とやらに作成したフォームを別のプロジェクトから表示するにはどうしたらいいですか

もーわけわかんねーです
172デフォルトの名無しさん:2010/12/22(水) 01:38:16
>>171
@参照設定ではなく、ツールボックスのアイテムの選択。
COMコンポーネント一番下のWMPコントロールをツールボックスに追加&フォームに貼り付け
再生は、
this.axWindowsMediaPlayer1.URL = @"C:\hoge.wmv";
"axWindowsMediaPlayer1"でググれば使い方はいくらでも出てくる。
A別のプロジェクトの参照設定から、プロジェクトタブのWindowsFormsApplication1を選択
173デフォルトの名無しさん:2010/12/22(水) 07:56:14
>>172
ありがとうございます
Aはそのとおり設定出来ました(動かないけどなんとなく解りました)

@訂正
(1)
フォームに対して、動的なコントロールを追加する場合に、WMPコントロールの記述はどのように行えば良いですか?

(2)
>>157
174デフォルトの名無しさん:2010/12/22(水) 08:17:28
参照設定を動的に追加は出来ないと思うというか、状況が分からないんだけど。
Form1.Designer.csにaxWindowsMediaPlayer1を追加するコードが生成されてるから、
好きなタイミングで呼べば動的な〜かと。
175デフォルトの名無しさん:2010/12/22(水) 11:27:38
RichTextBox を PlanText のみを扱う TextBox にすることは可能でしょうか?

ブラウザからコピーしてペーストすると、書式もペーストされるため、困ってます。
Paste() のオーバーライドが不可だったため、今はKeyDownでの独自ペースト処理を検討しています。
176デフォルトの名無しさん:2010/12/22(水) 12:15:20
>>174
状況としては別個で、次のそれぞれについて、必要なコードが知りたいのです

a.あらかじめ作成したフォームにWMPコントロールをコードから追加

b.フォームをコード上で作成し、コードからWMPコントロールを追加
c.コードから参照設定を行う

d.c.を行いb.を実装する(要手動ビルド)
177デフォルトの名無しさん:2010/12/22(水) 13:07:07
おい、おまえら、俺がすげえブラウザ作ってやったよ。

タブ型ブラウザじゃなくて、チェックボックス式ブラウザだ。

くくく、これはすげえ賜物だぞ・・ すげえ、気になるだろ?

でも、教えてやんねえ。
178デフォルトの名無しさん:2010/12/22(水) 13:09:30
>>175
普通のTextBoxをmultiLineにするのじゃあかんのけ?
179デフォルトの名無しさん:2010/12/22(水) 13:12:19
>>178
そういう意味じゃないと思いますw

それほど昔じゃないけどここか相談すれで似たようなのを見たな・・・

ブラウザが扱うのはhtmlという整形言語、リッチテキストもリッチテキストというフォーマット

この辺を吸収したければドロップ情報をそのままリッチテキストに渡すんじゃなく
書式を加工するとかしないとだめだと思うよ
180175:2010/12/22(水) 13:40:41
>>178
TextBox よりも RichTextBox の方が機能が多そうなので、RichTextBoxを使っています。
例えばUndoなどは、RichTextBox の方が良いので。

>>179
PlainTextにするプロパティはなさそうですね。
Ctrl+V を独自実装して回避してみます。
ありがとうございました。
181デフォルトの名無しさん:2010/12/22(水) 13:48:57
>>176
VSで参照設定すると、使いやすいようにラッパーが自動生成される。
それを使わずにということになると、COMを触る必要があって結構難しい。
VSで参照設定したときに生成されるDLLの中身をReflectorかなんかで読んでみたらいいと思う。
ずっと簡単な方法としては、WPFのMediaElementをElementHostで利用する手もあるよ。
182デフォルトの名無しさん:2010/12/22(水) 14:06:53
>>180
アプリ起動時にwebbrowserを内部的に用意して
D&Dで貰ったhtmlをwebbrowser入れて処理させた後
WebBrowser.Document.Body.InnerText
で貰ってきたらどうだろう?

ヘッダー部分はでてこないが、body以下は確か全部でてきたはず
183デフォルトの名無しさん:2010/12/22(水) 14:15:46
参考までに
http://ideone.com/Mtynz
184デフォルトの名無しさん:2010/12/22(水) 14:43:06
ふーん
185デフォルトの名無しさん:2010/12/22(水) 22:24:49
>>180
EM_SETTEXTMODEでTM_PLAINTEXTを設定するといいかも
http://ideone.com/zXwcT
186175:2010/12/22(水) 22:54:29
>>185
ありがとうございます。そのやり方で確認できました。
VBとかはプロパティであった気がしましたが、裏では持ってたんですね。

>>182
ありがとうございます。
今回は単純にリッチをプレーンにしたかっただけなので。。。
187デフォルトの名無しさん:2010/12/23(木) 00:07:11
>>186
よかったね
Ctrl+Vは他にコンテキストメニューとか
場合によってはShift+Insertもあったりして面倒
188デフォルトの名無しさん:2010/12/23(木) 02:16:06
>>186
お礼はいらないよ
189デフォルトの名無しさん:2010/12/23(木) 02:33:16
>>186
どういたしまして
190デフォルトの名無しさん:2010/12/23(木) 15:31:03
>>186
いえいえ
191デフォルトの名無しさん:2010/12/24(金) 14:48:21
XmlReader.ReadContentAsDateTime メソッドの
「現在の位置でテキストの内容を DateTime オブジェクトとして読み取ります」
という説明の"現在の位置で"とはどういう意味ですか?
現在の位置を取得または設定できるプロパティ、メソッドがあるのでしょうか?

またReadContentAsDateTimeメソッドを使って下記の<updated>〜</updated>の中の文字列を
"05時00分00秒"と"01時00分57秒"と置換する方法に適していますか?

<entry>
<title>タイトル1</title>
 <name>名前1</name>
<updated>2010-12-22T05:00:00Z</updated>
</entry>
<entry>
<title>タイトル2</title>
 <name>名前2</name>
<updated>2010-12-23T01:00:57Z</updated>
</entry>
192デフォルトの名無しさん:2010/12/24(金) 15:00:36
XmlReaderはテキストの前から後ろにカーソルが動いていって
その下の文字列を順に読んで、タグなどが見つかるたびに「なんか見つかった」と通知してくる感じ
そのカーソルの位置が現在の位置。取得しても特に意味はないよ
XmlReaderは扱いが難しいのでLINQ to XMLでも使った方がいいと思う
でもそれ置換するだけなら正規表現でよくないか
XMLとして扱う必要無いような
193デフォルトの名無しさん:2010/12/24(金) 15:24:06
string 結果 = Regex.Replace(元のXML文字列, "<updated>(.+)</updated>",
 m => "<updated>" + DateTime.Parse(m[1].ToString()).ToString("HH時mm分ss秒") + "</updated>");
合ってるかは知らん
もしDateTime.Parseが使えなかったらParseExactで
194デフォルトの名無しさん:2010/12/24(金) 15:41:03
すんません。

targetFiles.GroupBy( _ => i++ / 100 )

を見せられたのですが、"_"の意味がわからず頭を抱えております。

やりたいことを考えたら、ラムダ式の結果でグループわけ、
ラムダ式は、アイテムごとにi++して、/100で云々、だとは思うのですが…

よろしくお願いします(´・ω・`)
195191:2010/12/24(金) 15:46:31
レスありがとうございます
なんとなく分かりました

XMLはネットのRSSを
XmlReader reader = XmlReader.Create("http://www.***.com/index.rss");
で取得してそのままdatagridviewに表示してます
XMLであればタグの中身だけ抽出して変換で加工できるかな思いました
stringやStringBuilderに変換し加工しても問題ないのでそっちの方法でやってみます
>>192さん>>193さんありがとうございました
196デフォルトの名無しさん:2010/12/24(金) 15:51:15
>>194
意味はないだろ
>>193でいうならm=>でmという名前の引数を宣言する代わりに_という名前の引数を宣言してるだけ
使わないからいかにも無意味そうな名前にしてるんでしょ
197194:2010/12/24(金) 16:11:16
>>196

あー、なるほど…
ありがとうございます。

リファレンスとかで一生懸命演算子とか探してましたw
198デフォルトの名無しさん:2010/12/24(金) 20:52:22
コードを短く記述出来るのがC#の特徴ったって、やっぱ可読性は大事だよな…。
俺ならそういう時は、 ( dummy => i++ / 100 ) って書くかも。
199デフォルトの名無しさん:2010/12/24(金) 20:54:08
俺ならOrderByなんか使わないw
どうしてもLINQ使いたかったらSliceみたいな拡張メソッド作るわ
200デフォルトの名無しさん:2010/12/24(金) 21:52:53
HTMLタグで記述し作成したテーブルの表示、非表示の切り替えを
c#で習得した値を元に行いたいのですが、どのような方法がありますか?

c#のコード→javascriptへ値を渡す→値を元にcss(displayプロパティ)を書き換えるjavascriptを実行
というのは可能なんでしょうか?
201デフォルトの名無しさん:2010/12/24(金) 21:53:13
LINQで配列の平均と標準偏差求めるプログラム書いてみてください
202デフォルトの名無しさん:2010/12/24(金) 23:18:13
ひとりぼっちのクリスマスに気持ちが暖かくなるような
コードを書いてくれ・・・
203デフォルトの名無しさん:2010/12/24(金) 23:23:20
Message.Show("Hello World!");
204デフォルトの名無しさん:2010/12/25(土) 00:06:55
Message.Show("大丈夫だ、問題ない。");
205デフォルトの名無しさん:2010/12/25(土) 00:16:25
var ave = data.Average();
var dev = Math.Sqrt(data.Average(d => Math.Pow(d - ave, 2)));
クエリ式使ってないけどいいよね
206デフォルトの名無しさん:2010/12/25(土) 02:30:05
Message.Show("そんなクリスマスで大丈夫か?");
207デフォルトの名無しさん:2010/12/25(土) 04:42:39
>>200
たとえばjsに
function showmsg(msg) {
  alert(msg);
}
ってのがあったとしたらC#からは
webBrowser1.Document.InvokeScript("showmsg", new object[]{"hello!"});
で呼び出せる。
208デフォルトの名無しさん:2010/12/25(土) 07:35:37
なんで「≠」が!==じゃなくて!=なんだよ!
209デフォルトの名無しさん:2010/12/25(土) 09:06:17
>>208
長い
2文字で頼む
210デフォルトの名無しさん:2010/12/25(土) 09:09:28
>>198
ラムダ式で使わない変数を_で置くってのは割と定型句なので、慣れといたほうがいいよ
211デフォルトの名無しさん:2010/12/25(土) 09:27:27
>>208
!(a==b)
212デフォルトの名無しさん:2010/12/25(土) 09:38:59
のっと いこーる で != でいいやんけ。
213デフォルトの名無しさん:2010/12/25(土) 11:02:13
==はどうなるんだよ?いこーるいこーるか?
214デフォルトの名無しさん:2010/12/25(土) 11:27:24
むしろ代入記号の=を変えてくれ
215デフォルトの名無しさん:2010/12/25(土) 11:30:38
>>214
わかりやすく <- とかどうだろうか
不等号&マイナスと区別が付かないとかそんなことは知らない
216デフォルトの名無しさん:2010/12/25(土) 11:36:10
if(((a==b) == true) == false)
217デフォルトの名無しさん:2010/12/25(土) 11:38:01
>>215
その辺は使ってるしなあ・・・
218デフォルトの名無しさん:2010/12/25(土) 11:42:15
代入に<=や:=あたりを使ってる言語ならあるが
219デフォルトの名無しさん:2010/12/25(土) 11:53:28
よく使い記号の方を簡素にすべきで、
等号を =、代入の方がを他のに変えるためには
まず代入の少ない言語設計が必要。
220デフォルトの名無しさん:2010/12/25(土) 12:30:02
>>214
PASCAL流に:=がいいんじゃね

>>219
代入を少なくしてもなくすことはできない
221デフォルトの名無しさん:2010/12/25(土) 12:31:41
つ[Haskell]
222デフォルトの名無しさん:2010/12/25(土) 12:39:21
今日もどうでもいいことで盛り上がってますね
223デフォルトの名無しさん:2010/12/25(土) 12:47:17
Int32.SetValue(i, 10);

うわ、いやだ
224デフォルトの名無しさん:2010/12/25(土) 13:35:10
DataBindingsプロパティについて教えてください。

@
button1.DataBindings.Add(new Binding("Enabled",checkBox1,"Checked"));
このコードは一見うまい事連動できているように見えますが、
デザイナ上のDataBindingsプロパティからは指定できません。
なんでですか?やっちゃいけないのでしょうか?

A
button1.DataBindings.Add(new Binding("Text", this.dataSet11, "DataTable1.Col1", true));
こっちはデザイナ上で指定可能ですが、
常に1レコード目がバインドされ無意味に思えます。
DataTableにPositionプロパティのようなものがあり、制御可能なのでしょうか?
それともBindingSource前提という事ですか?
225デフォルトの名無しさん:2010/12/25(土) 14:37:52
>>224
1)
バインディングはデータとビューを分けましょうってのが根底にあるからじゃね

2)
うん、BindingSource前提
どうしても使いたくないってのならCurrencyManagerもあるけどめんどくさいだけ
226デフォルトの名無しさん:2010/12/25(土) 14:59:27
>>207
試してみます
ありがとうございました
227デフォルトの名無しさん:2010/12/25(土) 15:58:28
>>225
>1)
なるほど、@はビュー制御だから違うでしょ!って事ですか。
でもChangedイベントでの同期って初期処理で一度呼んでやらんといけないのが微妙。
(もはや書き慣れてしまいましたが)
>2)
CurrencyManager調べてみます。
>BindingSource前提
INotifyPropertyChangedを実装したクラスなども目的から外れてはいないですよね?
デザイナ上で指定できないだけで。
228デフォルトの名無しさん:2010/12/25(土) 16:01:45
あの〜(´・ω・`)
FormのPaintイベント発生時にDrawpath&FillPathでForm上に縁取り文字を描画して
描画した縁取り文字の形でフォームをくり抜きたいんですが「e.Graphics」に描画されてる縁取り文字のパスのとり方がよくわかりません
ご存知の方はどうかこの卑しい豚に助言というエサをお与えください。

【現状のそーす】
ttp://ideone.com/EqxNJ

これだとAddString時点のパスでくりぬかれるので、
FillPath後のパスでくりぬくようにしないといけないっぽいけれど
やり方が全然わからない(´・ω・`)ボスケテ
229デフォルトの名無しさん:2010/12/25(土) 16:34:32
>>228
塗ってから縁取りすりゃいいんじゃね?

//内側を塗る
Brush fillBrush = new SolidBrush(Color.White);
e.Graphics.FillPath(fillBrush, gp);

//縁を描画
Pen drawPen = new Pen(Color.Blue, 4);
e.Graphics.DrawPath(drawPen, gp);
230デフォルトの名無しさん:2010/12/25(土) 17:17:04
231デフォルトの名無しさん:2010/12/25(土) 18:03:49
>>229-230
グアアア、こんなことだったのか
ありがとう、できたよ(´;ω;`)
232デフォルトの名無しさん:2010/12/25(土) 18:59:15
縁を描画するときはSmoothingMode.Noneにしたほうがいいぞ
233デフォルトの名無しさん:2010/12/25(土) 19:41:55
縁を描画するときはSmoothingMode.Noneにしたほうがいいね
234デフォルトの名無しさん:2010/12/25(土) 20:12:45
今時WinForm使ってる人って、高解像度ディスプレイでの動作はどう考えてんの?
画面に画像貼り付けると他の部品とサイズがずれるのは時代遅れだと思うんだ。
235デフォルトの名無しさん:2010/12/25(土) 20:16:42
はぁ
236デフォルトの名無しさん:2010/12/25(土) 20:19:32
それは作り方がおかしい。デザイナーでサイズ決めてStretchモードにすればずれない。
プログラムからPictureBoxのサイズ変更してたりすると死ぬ。
237デフォルトの名無しさん:2010/12/25(土) 20:49:59
WinFormsと高解像度ってなんか関係あんの?
238デフォルトの名無しさん:2010/12/25(土) 21:25:59
画面部品のサイズはピクセル数指定だけどフォントはPt単位で環境によって比が違うし、
中途半端なDPI仮想化のせいでデザイン時に設定したサイズ(ピクセル)と実行時に
取得したサイズ(ピクセル)が一致しなかったりする。
いろんな画面部品のデフォルトサイズが小さくて詳細ディスプレイだと見づらくなることがある。

WinFomクラスも頑張っているけど、ときどき落とし穴があるんだよなあ。
WPFだとデザイン時も実行時も一貫してDPIが仮想化されているから気にする必要がない。
239デフォルトの名無しさん:2010/12/25(土) 21:33:35
割とどうでもいいw
240238:2010/12/25(土) 21:42:58
>>239
俺は結構気になるな。
http://msdn.microsoft.com/ja-jp/windows/dd630126
ここで例として貼り付けられている表示の崩れの幾つかはWinFormsでも起こるんだけど、
こういうのでイラっとしたことない?
WPFならこれらの問題とおさらばできます(←怪しい商法のようなセリフだ)
241デフォルトの名無しさん:2010/12/25(土) 21:44:45
ささいな問題持ち出されてWPFの優位性を主張されてもなw
まずはXPで字がにじむのをどうにかしてほしい
242デフォルトの名無しさん:2010/12/25(土) 21:47:32
客に怒られたら直すわ
243デフォルトの名無しさん:2010/12/25(土) 21:48:15
メイン機が120dpiの俺にとっては割と問題だ
244デフォルトの名無しさん:2010/12/25(土) 21:48:59
WPFはWPFがゆえに受け入れられない
WinForm完全互換のWPFが出たら流行るだろう
245デフォルトの名無しさん:2010/12/25(土) 21:49:56
>>241
もう直ってるよ
246デフォルトの名無しさん:2010/12/25(土) 22:16:00
こういうのがFormsのダサいところなんだよな
247デフォルトの名無しさん:2010/12/25(土) 22:19:34
WPFにしたいならすればいいだけだし、おかしなアピールはいらんよ
248デフォルトの名無しさん:2010/12/25(土) 22:19:38
フルHD液晶のPC(140dpi)使ってる俺にとってはかなり問題だ。
MFCとWinFormsアプリ以外は問題ないと思っていたが、ブラウザの
拡大表示使ってたらSilverlightのサイズ計算もおかしくなるので困っている。
IEのDPI対応を何とかしてくれ。
249デフォルトの名無しさん:2010/12/25(土) 22:24:11
分かった
250デフォルトの名無しさん:2010/12/25(土) 22:30:51
WinFormsのダサいのは、GDIの設計が糞なのと、
文化オリエントの臭いがついているところ。
251デフォルトの名無しさん:2010/12/25(土) 22:50:30
Vistaから導入されたDPI仮想化を使えば、高DPI環境でも(ボケや滲みを許容すれば)WinFormsでも戦える。

96DPIじゃない環境が一般的な時代になったんだし、
崩れて読めなくなったりしない程度には対応を進めるべきだとは思うけどね。
252デフォルトの名無しさん:2010/12/25(土) 22:55:52
>>251
それはForm.PerformLayoutによるニセ仮想化じゃなくてVistaの仮想化だよね?
WinFormのニセ仮想化をオフにする必要があるけど、どうやるの?
253デフォルトの名無しさん:2010/12/25(土) 23:04:01
触りだして3日目なんですけど
VSのフォームアプリケーションでテキストに入力後にボタンクリックで
処理を走らせて結果を別のウィンドウで出すのってどうすればできますか?
WebのPOSTを受け取って画面表示みたいなイメージです
254デフォルトの名無しさん:2010/12/25(土) 23:11:59
>>254
フォームの表示方法
Form2 frm = new Form2();
frm.Show();
と、プロパティの
Public string Shorikekka{set;get;}
組み合わせる。

Form2 frm = new Form2();
frm.Shorikekka = "成功";
frm.Show();
255デフォルトの名無しさん:2010/12/25(土) 23:18:07
>>253
難しいぞ。姉妹スレでもフォーム間の受け渡しができなくて困ってる奴がいる。
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
256デフォルトの名無しさん:2010/12/25(土) 23:47:26
クラス自体が分かってないんだろうな
まあそのうち慣れるさ
257デフォルトの名無しさん:2010/12/26(日) 00:35:53
シングルトンでおk
258デフォルトの名無しさん:2010/12/26(日) 02:07:43
"シングル"じゃ、一度しかShowできないよ
似た形にはなると思うけど
259デフォルトの名無しさん:2010/12/26(日) 02:19:02
>>258
>>255のスレ見ればなぜシングルトンなのかわかる
260デフォルトの名無しさん:2010/12/26(日) 02:20:30
おまえにはがっかりだ・・・
261デフォルトの名無しさん:2010/12/26(日) 02:35:29
一体何を期待していたのか
262デフォルトの名無しさん:2010/12/26(日) 04:42:06
>>254
最初の頃はこういうの書いてたけど
こういうものが必要な時点で設計がおかしいんだよな
263デフォルトの名無しさん:2010/12/26(日) 10:59:48
>>262
何かへんか? kwsk
264デフォルトの名無しさん:2010/12/26(日) 11:08:28
>>262
別に問題ないだろ
MSが提供するのは基本的なクラスであって必要とあれば継承して足せばいいだけ

実際Formアプリ作るときはFormクラスを継承したForm1とかにごりごりコード書くんだし
265デフォルトの名無しさん:2010/12/26(日) 11:30:21
>>263
推測を大いに含むが

class ExForm : Form
{

Model model;

ExForm(Model model){
this.model = model
}

void ok_ckick(object sender, EventArgs e){

model.HogeText = this.hogeBox.Text
DialogResult = DialogResult.OK
Close()
}

}

こういうことが言いたいんじゃないの
設計として正しいかは知らん
266デフォルトの名無しさん:2010/12/26(日) 11:35:53
余計な依存が増えてるだけじゃん
文字列渡すだけですむんだったら>>254の方が優れてる
267デフォルトの名無しさん:2010/12/26(日) 11:40:48
結果表示のためにダイアログを単発で表示するのはUI設計としておかしいってことじゃね
場合によるけど確かにウザいと思う
268デフォルトの名無しさん:2010/12/26(日) 11:41:30
Modelの結果をバリバリ使った高度なグラフ表示とかしたいなら
Modelを渡すようにした方がいいとは思うけど、簡単なメッセージだけなら
Form2はModelに依存させず文字列だけ受け取る方がいいと思う。
269デフォルトの名無しさん:2010/12/26(日) 11:45:59
あってるかどうかも分からない推測にマジ返し
これがプログラマの病んだ姿です
270デフォルトの名無しさん:2010/12/26(日) 12:31:44
たまに憶測で怒りだすやつがいるから困る。
そのくせ説明も聞かない。
怒りがおさまった頃に説明すると、「あ〜そう言うこと」って。。。
271デフォルトの名無しさん:2010/12/26(日) 13:12:14
溜まってるのね
272デフォルトの名無しさん:2010/12/26(日) 14:11:09
VBはまじ神だなぁどっかの糞#とは大違い
273デフォルトの名無しさん:2010/12/26(日) 14:17:00
F#の野郎・・・
274デフォルトの名無しさん:2010/12/26(日) 14:21:53
まあJ#はねえ
275デフォルトの名無しさん:2010/12/26(日) 14:29:59
故人のことを悪くいうなよ
276デフォルトの名無しさん:2010/12/26(日) 14:32:30
J#さんはアップデート版買う時にお世話になるんだから悪く言うなよ
277デフォルトの名無しさん:2010/12/26(日) 15:34:03
ivとkeyを設定した後にメモリを覗かれたりするとやはりバレバレになっちゃうのでしょうか?

DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.IV = ByteResize(iv);
des.Key = ByteResize(key);
278デフォルトの名無しさん:2010/12/26(日) 17:36:54
.net2.0です。ContextMenuStripをメインメニューの一部として使いながら
コンテキストメニューとしても使っているとメインメニューを表示するとき
勝手に閉じてしまうことがあるんですが、どうすればいいのでしょうか?
279デフォルトの名無しさん:2010/12/26(日) 18:00:27
>>277
うん
だから使い終わったら配列はゼロで埋める
パスワード用のStringはどうしようもないけどね
WPFではSecureStringで入力を受け取れるコントロールあるけど
280デフォルトの名無しさん:2010/12/26(日) 18:31:39
一つのGraphicsPathにAddStringで"□"を描いたのと、
Rectangleで箱の中に箱を描いた物を二つ並べて、
FillPath(Winding)で塗りつぶすとAddStringで描いた物だけ
中身が塗りつぶされないのはなんでなのん?
DrawPathで書いても見た目全く同じだし、パスポイント数も同じなのだけど。
違いが分からないれしゅ。
281デフォルトの名無しさん:2010/12/26(日) 18:55:50
うん
282デフォルトの名無しさん:2010/12/26(日) 19:03:44
>>280
コードくれ
283デフォルトの名無しさん:2010/12/26(日) 19:07:11
>>280
なんか考え方が80年代のMSベーシックのグラフィックだなw
たぶんなんでそんな風に考えるのか今の人には逆に理解できない気がする。
284デフォルトの名無しさん:2010/12/26(日) 19:09:28
>>283
WinFormも描画早すぎてあれだがベタな描画よ
WPFはしらんが
285280:2010/12/26(日) 19:22:33
//using System.Drawing.Drawing2D;

Graphics g = pictureBox1.CreateGraphics();
GraphicsPath GP = new GraphicsPath();

GP.AddString("□", new FontFamily("MS UI Gothic"), (int)FontStyle.Regular, 100.0f, new Point(100, 0), new StringFormat());
GP.AddRectangle(new Rectangle(20, 20, 60, 60));
GP.AddRectangle(new Rectangle(10, 10, 80, 80));
GP.FillMode = FillMode.Winding;
g.FillPath(Brushes.Black, GP);
//g.DrawPath(Pens.Black, GP);

こんな感じ。
パスで自由に図形描けるようにしていて、
Windingモードでも塗りつぶされない図形は何が違うのか知りたかったのです
286デフォルトの名無しさん:2010/12/26(日) 19:35:12
287デフォルトの名無しさん:2010/12/26(日) 19:35:53
■なら塗りつぶされるだろうけど・・・
何がしたいんだ?
288デフォルトの名無しさん:2010/12/26(日) 19:38:30
FillMode.Windingでぐぐるとここへいけて
http://dobon.net/vb/dotnet/graphics/fillrectangel.html

塗りつぶしモードを指定する ってところのリンクに
http://social.msdn.microsoft.com/Search/ja-jp/?Query=FillMode+%E5%88%97%E6%8C%99%E4%BD%93+System.Drawing.Drawing2D
289デフォルトの名無しさん:2010/12/26(日) 19:41:06
http://msdn.microsoft.com/ja-jp/library/system.drawing.drawing2d.fillmode%28VS.80%29.aspx
>Winding モードでは、交差部分ごとにパス セグメントの向きを考慮します。
>時計回りで交差部分ごとに 1 を加算し、反時計回りで交差部分ごとに 1 を減算します。
>結果が 0 でない場合、その点は塗りつぶし領域またはクリップ領域の内側と見なされます。
>0 の場合、その点は塗りつぶし領域またはクリップ領域の外側にあります。
>図形が時計回りか反時計回りかは、その図形のセグメントの描画順序で決まります。

ということだそうだ
290デフォルトの名無しさん:2010/12/26(日) 19:46:01
そんな難しいこと言わなくても、「文字は閉曲線ではない」ってだけの単純な話だから。
こんなん当たり前じゃん。
アホかといいたくなる。
291デフォルトの名無しさん:2010/12/26(日) 19:56:21
GP.AddRectangle(new Rectangle(20, 20, 60, 60));
GP.Reverse();
GP.AddRectangle(new Rectangle(10, 10, 80, 80));
これで口とおなじになる
292デフォルトの名無しさん:2010/12/26(日) 20:00:29
ロの中身て■にならないってことか
確かTrueTypeフォントってPathの塊じゃなかったっけ?
293デフォルトの名無しさん:2010/12/26(日) 20:06:08
TrueTypeフォントはこんな感じでPathで閉じた形になってるので
ロのようなのは中が塗りつぶされない
そもそも単純なRectangleを重ねたのとは違う
http://www.geocities.jp/y_hobby_2/blogimage/truetypefonteditor.png
294280:2010/12/26(日) 20:10:38
パスの特性ちゃんと理解してなかったです
>>289で謎が解けました
ありがとう!!
>>291確かにそれでもいけますね

パスをとじた形の、閉じ方が分かっていなかったのです。
解決しました、ありがとうございました!
295デフォルトの名無しさん:2010/12/26(日) 20:30:42
好みのような気もしますが質問です。
イベントを定期的に発生させるクラスAがあって
Aを複数管理しているクラスMGRがあります。
※Aは管理クラスMGRのインナークラスで、MGRのメソッド内部でインスタンスが作られる

Aのイベント発生を管理クラスMGRも別のクラスXでも受け取りたい場合
AのイベントにMGRもXもイベントハンドラーを登録できるようにした方がいいのか
MGRにもAと同じイベントを作って、Aイベントに登録はMGR、MGRのイベントに登録はXとして
Aイベント発生→BイベントハンドラーでBイベント発生→Xの流れにした方がいいのか
どちらの方が良いと思いますか??
296デフォルトの名無しさん:2010/12/26(日) 20:32:09
あ、最後のあたり間違ってる;

>Aイベント発生→BイベントハンドラーでBイベント発生→Xの流れにした方がいいのか
Aイベント発生→MGRイベントハンドラーでMGRイベント発生→Xの流れにした方がいいのか

です・・・。
297デフォルトの名無しさん:2010/12/26(日) 20:34:26
インナークラスと外側のクラスの間の通知にイベント使うのは無意味
AにMGRのインスタンスを渡してAの中から通知用のMGRのprivateメソッドを呼ぶだけでいい
Xについては、MGRがXの存在を知っているんだったらイベント使わなくても単にMGRがXのメソッドを呼ぶ
MGRとXを切り離したいならMGRのイベントにXのイベントハンドラを登録する
298295:2010/12/26(日) 20:51:16
>>297
なるほど!
ありがとうございます〜。
299デフォルトの名無しさん:2010/12/26(日) 20:52:31
イベントって、
・クラスaがクラスbに依存してる(aの中でbを明示的に使ってるという意味)
・bはaに依存させたくない
・bの状態変更をaに通知したい
ときに使うものなんだよね
そういうケースってそれほど多くない
bがaに依存していいなら、イベントなんて使わずに普通にbがaのメソッドを呼べばいい
300デフォルトの名無しさん:2010/12/26(日) 21:04:34
>>299
基本依存ないけど、
>そういうケースってそれほど多くない

これは言いすぎだと思う。
分野によってはイベント多用するよ。
301デフォルトの名無しさん:2010/12/26(日) 21:39:07
相互に参照を持ち合ってるってのはなんか気持ち悪い
302デフォルトの名無しさん:2010/12/26(日) 21:48:15
イベントってほぼ例外なく暗に相互に参照持ってるんだけど
303デフォルトの名無しさん:2010/12/26(日) 21:54:46
参照がないとメソッド呼べないし
304デフォルトの名無しさん:2010/12/26(日) 22:13:39
オブジェクトの参照握ってるってのと、
アセンブリとかクラスを参照してるってのは別の話。

イベント使ってる時点でオブジェクトは参照されるけども、
アセンブリやクラスの参照は切れる。
これが大事。
305デフォルトの名無しさん:2010/12/26(日) 22:48:22
また適当なこと言う子が来たなw
306デフォルトの名無しさん:2010/12/26(日) 23:03:13
クラスを参照ってなんだ?
Type t = typeof(Unko) のことか?
307デフォルトの名無しさん:2010/12/26(日) 23:24:17
変数の宣言で内容を自動で暗号化するものがあったと思うのですが、
どういう書き方をしたら良かったでしょうか?
308デフォルトの名無しさん:2010/12/26(日) 23:27:37
C# 4.0 specificationには見当たらないな。
309デフォルトの名無しさん:2010/12/26(日) 23:33:34
相互依存が多用されてたらユニットテストが糞めんどくさい。
慣れてくると自然に余計な依存を持たないような設計するようになる。
個人だったり小規模だったりするなら好きにやればいい。
310デフォルトの名無しさん:2010/12/26(日) 23:42:46
>>306
csc.exe /r:Xxx.dll とか、VS上での「参照の追加」の参照。

>>307
SecureString のこと?
宣言というか、型だけど。
311デフォルトの名無しさん:2010/12/26(日) 23:44:50
>>310
それです!
昔、HPで見た覚えがあったのですが書き方がわからなかったのです

ありがとうございます
312306:2010/12/26(日) 23:46:56
>>310
csc /rはコンパイル時の話だろ。「参照が切れる」ってなんだよ?
313デフォルトの名無しさん:2010/12/27(月) 00:09:23
参照設定を行わなくてもコンパイルできる(参照を切ることができる)
という意味ではないでしょうか
314デフォルトの名無しさん:2010/12/27(月) 00:28:54
>>312
あんたにはUnkoというコテハンを使う権利をやろう
315デフォルトの名無しさん:2010/12/27(月) 00:42:04
参照設定が必要な相手と相互に依存することなんてあるの?
316デフォルトの名無しさん:2010/12/27(月) 00:44:25
双方向依存なくさないとアセンブリ分割できないね。
それも含めて「参照を切る」でしょ。
317デフォルトの名無しさん:2010/12/27(月) 00:47:38
いや・・・そう言う場合、普通はインターフェースを使うかと
318デフォルトの名無しさん:2010/12/27(月) 00:52:57
イベントでできること、もちろんインターフェイスでできるよ。
(今はなしてるのは、なんでイベントなんて使うかって話よね?<参照切り)

Java が断固デリゲートを入れようとしなかったのも、インターフェイス至上主義だからだし。
そんな Java も最近、デリゲート入れようとしてるわけで、やっぱ欲しいのよ、デリゲート。

要は、
・インターフェイスだとマルチキャストがめんどくさい
・AddListner/RemoveListenr 書くの面倒
  → setter/getter の代わりにプロパティ作ったのと一緒で、イベント作った
319デフォルトの名無しさん:2010/12/27(月) 01:03:06
>>304あたりから参照の意味が変わってるなw
もう自分が語りたい事を勝手に語ればいいんじゃね
320デフォルトの名無しさん:2010/12/27(月) 01:05:52
>>315
DLLの粒度によるんだと思うよ。
DB関連のDLLとログ出力のDLLで、
DBの方はエラーログ出力とかしてて、
ログ出力先がDBだったら相互参照になるよね。
1DLLに収めちゃえば問題ないのに。
>>317の言う通りだと思うけどめんどくさい
321デフォルトの名無しさん:2010/12/27(月) 01:14:00
何の話をしているよかよく分からんけどw
とりあえず、少なくともVS使う限りではプロジェクトの循環参照はできないから、
そこは>>315-316が正しいんじゃないの?

どうも「依存関係の逆転の原則」とか言うときの依存って言葉と参照って言葉を混同した人がいたのが
話の始まりなのかなという印象。
322デフォルトの名無しさん:2010/12/27(月) 01:32:18
301だが
class A {
  B b;
...
class B {
  A a;
...
っていうのが嫌だと言いたかった。それだけなんだ
323デフォルトの名無しさん:2010/12/27(月) 01:39:31
大丈夫、おれは分かってたよwww
302からおかしくなったんだよな
324デフォルトの名無しさん:2010/12/27(月) 01:40:59
わかったようなこと言うなよ。
俺は何もかわっちゃいねえよ。
325デフォルトの名無しさん:2010/12/27(月) 01:43:37
何も変わらず何もわかってないw
326デフォルトの名無しさん:2010/12/27(月) 01:47:46
結論:イカ娘可愛い
327デフォルトの名無しさん:2010/12/27(月) 02:42:05
>>322みたいになりそうだったらどうすればいいの(´・ω・`)?
328デフォルトの名無しさん:2010/12/27(月) 02:57:08
つイカーフェイス
329デフォルトの名無しさん:2010/12/27(月) 03:08:09
interface IB {}
class A { IB b; }

依存

class B : IB {}

とか、

delegate void BEventHandler(object sender, BArg arg);
class A { event BEventHandler handler; }

依存

class B { void SomeMethod(object sender, BArg arg }

とか。
330デフォルトの名無しさん:2010/12/27(月) 03:11:11
さらに言うと、IBとかBEventHandlerの代わりに、
標準ライブラリに入ってるインターフェイス/デリゲートを使えば、
直接的な依存は完全に切れる。

あと残りの課題は
A a; a.b = new B();
とか
a.handler += new B().SomeMethod;
とかを誰がやるか。

この辺り解消するのが WPF のデータバインディングとか、MEF。
331デフォルトの名無しさん:2010/12/27(月) 03:20:42
イベントにしたりデリゲートで渡したりインターフェース使ってみたり、いっそ1つのクラスにしちゃったりpartialだったり
アセンブリ単位では循環参照してもいい。でもアセンブリ単位境界を越えて循環参照するのは設計ミスなので禁じられている。
332デフォルトの名無しさん:2010/12/27(月) 03:24:36
イカに一票
デリゲートはメソッドを抽象化したい時に使え
333デフォルトの名無しさん:2010/12/27(月) 03:30:46
>>329-330
それだとBがAのメソッド呼んでた部分がなくなっちゃうよ
>>328から
interface IA {}
class A : IA { B b = new B(this); }
class B {IA a;}
こんな感じのを想像したんだけど
そもそも依存しあう設計が間違ってるってこと?
334デフォルトの名無しさん:2010/12/27(月) 03:32:42
>>333
A側にメッセージ返すインターフェイスなりイベントもA側のアセンブリに書けばOK。
アセンブリの循環参照は避けれる。

あとは、双方向バインディングとかの出番。
335デフォルトの名無しさん:2010/12/27(月) 03:49:01
>>334
よく解らんが(´・ω・`)
例えばBがTCP通信しててデータ受け取ったよ的な通知とか
BがFormでボタン押されたよ的な通知とかはIBにイベント持たせればいいってことかね
336デフォルトの名無しさん:2010/12/27(月) 03:52:52
>>335
TCP通信ならイベントね。

Form なら、WPF のコマンドのバインディングがいいと思う。
337デフォルトの名無しさん:2010/12/27(月) 03:57:48
イベントならイカじゃなくて、デリゲート持てばいいよ
相互に依存って言ってたからお互いの複数のメソッドを利用しているように見えちゃった
338デフォルトの名無しさん:2010/12/27(月) 04:14:36
>Form なら、WPF のコマンドのバインディングがいいと思う。
WPFじゃない場合はIAみたいなのを作るってこと?

>相互に依存って言ってたからお互いの複数のメソッドを利用しているように見えちゃった
そのつもりですた
339デフォルトの名無しさん:2010/12/27(月) 08:04:47
非常にざっくりした質問で申し訳ないのですが・・・
自作のアプリが、他の市販のアプリと同時に使うと、
市販のアプリを誤動作させてしまうようです。
まだ自分は初心者で、自分のやりたいことを調べてやってるだけで、
安全対策も何もしてないので、原因はこっちにあるのでしょう。
こういう場合、原因の突き止め方とか、他に影響を与えない安全対策とか
参考になるサイトとかあれば教えてください。
340デフォルトの名無しさん:2010/12/27(月) 08:09:53
糞#ってww
選ぶのは言語使ってるができないのもあるww
まじワロタ、wwwひ
341デフォルトの名無しさん:2010/12/27(月) 08:29:51
>>340
大丈夫か?なんかへんだぞ
342デフォルトの名無しさん:2010/12/27(月) 10:24:28
>>339
何か特別な変なことをやっているんだろう。
一般的な対策とか原因なんかない。何も考えずに作っても普通はそんなことありえないんだから。
343デフォルトの名無しさん:2010/12/27(月) 10:29:34
WPFもやろうかなと思っているのですがおすすめですか??
習得が大変そうな感じがするので迷っています。

フォームでも結構満足していますがさらに
便利になったりするのでしょうか?(難しいのが楽に作れたり)
344デフォルトの名無しさん:2010/12/27(月) 10:42:05
別に難しくはないけどね

結局は慣れだよ
345デフォルトの名無しさん:2010/12/27(月) 10:43:14
WinFormsと同じ感覚で使う分にはWPFも使い方はほとんど変わらん。ぜんぜん難しくない。
WPFは外観の自由度が高い。コントロールの見た目を変えようとして
WinFormsで大量のコードを書いた経験があるなら、そういうことはWPFの方が圧倒的に楽。
それとデータバインディングが強力。コントロールとデータの紐付けは全部バインディングで作れる。
WPF特有の部分は必要に応じて追々覚えていけば大したことない。
346デフォルトの名無しさん:2010/12/27(月) 10:47:26
むしろそのバインド処理を今までのWinFormsで使ってなかったから戸惑う・・・
確かにデザインはすごく楽
モッサリさえなくなればいいんだが・・・
347デフォルトの名無しさん:2010/12/27(月) 11:03:59
348デフォルトの名無しさん:2010/12/27(月) 11:05:58
public class test
{
public string text = null;
}
test d = new test();
d.test = "test";
d = null;

こういう書き方でnullを入れる人をみた事があるけど、この場合のd.textはnullを入れた
時点で消滅するのかな?。

それとも
d.test = null;
d = null;
にしないとd.test の内容はすぐに消えない?
l
349デフォルトの名無しさん:2010/12/27(月) 11:07:26
どっちにしろGCが走るまで消えない
だからってGC.Collect入れると余計に遅くなるよ
気にしても無駄
350デフォルトの名無しさん:2010/12/27(月) 11:08:30
>>348
アクセスしてみればいいw
351デフォルトの名無しさん:2010/12/27(月) 11:09:56
よっぽど実行時間の長いスコープでない限りローカル変数へのnull代入は無意味
気にしない・放置が基本
352デフォルトの名無しさん:2010/12/27(月) 11:12:28
353348:2010/12/27(月) 11:15:36
みんな、ありがと
メモリ上からd=nullだけで全部消えるのかと少し期待したのですが残念
354デフォルトの名無しさん:2010/12/27(月) 11:19:49
>>353
あくまで参照を切り離しただけでGCはまだ持ってる可能性はあるよ
ただ、参照を切り離したので>>352を実行するとエラーになる
355デフォルトの名無しさん:2010/12/27(月) 11:23:27
>>348のケースに限って言えばGCが走ろうと"test"は永遠に消えないけどな
リテラルはCLRが参照保持してるので絶対に消えない
356デフォルトの名無しさん:2010/12/27(月) 13:26:27
C# で質問です。XMLでシリアライズする時に既にインスタンス化されたクラスはできないのでしょうか?
357デフォルトの名無しさん:2010/12/27(月) 13:28:34
>>356
できるでしょ
でもシリアライズ用のクラスってpublicでいろいろ開放してないと使えなかったような
358デフォルトの名無しさん:2010/12/27(月) 13:36:08
規定のコンストラクタがあって
かつ
読み書きのできるパブリックフィールドとプロパティだけだったと思うんだけど

嘘だったらごめん
359デフォルトの名無しさん:2010/12/27(月) 13:41:58
>>356
俺はインスタンス化しないとシリアライズできないと思ってるけど。

インスタンス化されたクラス?がよくわからん。
360デフォルトの名無しさん:2010/12/27(月) 13:51:25
したいこととしては
あるクラスをシリアライズする場合に、プロパティにインターフェイスを継承している
項目をシリアライズしたいのです。
(Ex)
public class TextClass
{
public stirng Ex1 { get; set }

public int Ex2 { get; set; }

public IInterface { get; set; }

}

のようなクラスをシリアライズしたいのです。。
361デフォルトの名無しさん:2010/12/27(月) 13:52:36
追伸:
public IInterfaceがとあるインターフェイスを継承したものを格納しています
362デフォルトの名無しさん:2010/12/27(月) 13:54:41
>>344 >>345 >>346
ありがとうございます。
複雑な外観・バインディング(データの同期?)
などをしたい時にWPFを勉強しようと思います
363デフォルトの名無しさん:2010/12/27(月) 14:25:36
>>360
インターフェースを格納したいって話?
364デフォルトの名無しさん:2010/12/27(月) 14:31:35
>360と>356が全然結びつかないけどまあいいや

XmlSerializerは構築されるときにシリアライズ・デシリアライズするすべての型を知ってる必要がある
interfaceとかabstract classがメンバに含まれるなら、そのメンバが取り得るすべての型を教えておかないといけない
普通はXmlElement属性でそういうメンバにこういう型こういう型があり得るってことをマークする

属性ベースで静的に設定できない場合、XmlSerializerのコンストラクタ引数で指定する

> public IInterfaceがとあるインターフェイスを継承したものを格納しています
IInterface以外(だけ)を継承してたらびっくりだ
365デフォルトの名無しさん:2010/12/27(月) 14:57:03
>>363インターフェイスを継承したインスタンスを格納します><

>>364ありがとうございます。XmlElementは3.0からのサポートなので
2.0で開発している現在は使えれませんね;w;

コンストラクタの引数の方法で試してみたいと思います。
366デフォルトの名無しさん:2010/12/27(月) 15:18:43
>>365
> >>364ありがとうございます。XmlElementは3.0からのサポートなので
> 2.0で開発している現在は使えれませんね;w;
んなことない
XmlElement属性(XmlElementAttributeクラス)は.NET 1.0から存在する
367デフォルトの名無しさん:2010/12/27(月) 15:22:43
存在するね
368デフォルトの名無しさん:2010/12/27(月) 16:11:20
C#は参照リークするからなぁ
369デフォルトの名無しさん:2010/12/27(月) 16:11:52
C++ってデリゲートってあるんけ?
370デフォルトの名無しさん:2010/12/27(月) 16:56:41
>>369
C/C++でいうところの関数ポインタだよ
371デフォルトの名無しさん:2010/12/27(月) 17:22:45
そう、関数ポインタだよ
372デフォルトの名無しさん:2010/12/27(月) 18:19:18
でも関数ポインタだよ?
373デフォルトの名無しさん:2010/12/27(月) 18:20:18
C#のデリゲートは関数ポインタのように直接ポインタを扱うわけじゃないし
+とか-で登録削除可能なので違うといえば違うんだけどねw
374デフォルトの名無しさん:2010/12/27(月) 18:27:01
全然違うよ
デリゲートは関数ポインタ+呼び出し先のインスタンスへのポインタ
375デフォルトの名無しさん:2010/12/27(月) 20:41:13
Windows SharePoint Services 3.0: ソフトウェア開発キット (SDK)
に含まれているSPUtility クラスを使ったプログラムをC#で作った場合、
Windows SharePoint Services 3.0をインストールしていないパソコンでも動きますか?
376デフォルトの名無しさん:2010/12/27(月) 20:55:22
>>253
チュートリアル : オブジェクトによるダイアログ ボックス情報の一括取得
ttp://msdn.microsoft.com/ja-jp/library/cakx2hdw.aspx
377デフォルトの名無しさん:2010/12/27(月) 20:59:21
>>375
SPUtilityクラスが含まれてるDLLはSharePoint Servicesに含まれてるんだろ?
動くわけないじゃん
当該DLLのローカルコピーを配布してしまえば動くかもしれないけど
おそらくライセンス違反(要確認)
378375:2010/12/27(月) 21:29:52
>>377
SPUtilityクラスの使用は諦めたいと思います
ありがとうございます
379デフォルトの名無しさん:2010/12/27(月) 22:03:28
糞#のせいでいまだにDTだ
380デフォルトの名無しさん:2010/12/27(月) 22:38:48
>>362です
調べてるうちにWPFの勉強したくなりました。
XAMLは意外と馴染みやすかったので大丈夫そうです。
機能面がいまいち分からないのですが、
これ便利・かなり使うからやっとけって機能ありませんか??
381デフォルトの名無しさん:2010/12/27(月) 23:06:17
まずはBindingをマスター。

というわけでWPFスレへどうぞ
382デフォルトの名無しさん:2010/12/27(月) 23:28:54
private void Substitute()
{
presskey(VK_SPACE, 20);

startcap((int)Math.Ceiling(power * 360 / 100) + 3);
presskey(VK_SPACE, 20);

if (power >= 80)
{
startcap(175);
}

startcap(hidoffset);
presskey(VK_SPACE, 20);
}

↑にGetAsyncKeyState()を使用してCtrlを押している時はスペースを押さないという構文を入れたいのですが

short sw;
sw = GetAsyncKeyState(17);
if (sw == 0)
{
presskey(VK_SPACE, 20);
}

GetAsyncKeyState()使用宣言をした上でこれを入れても上手く行きません。
どなたか入れ方等のアドバイスを頂けませんでしょうか?全くのド素人なのでメチャクチャな事を言っていたらすみません。
383デフォルトの名無しさん:2010/12/27(月) 23:37:28
VS入れたら、アプリがエラーが起きた時に
デバッグ確認が毎回出てうざいんだけど
無効に出来ませんか?
384デフォルトの名無しさん:2010/12/27(月) 23:41:12
出来ません
385デフォルトの名無しさん:2010/12/27(月) 23:42:17
まじかよ、何でこんな嫌がらせみたいな機能つけるんだよ・・・
386デフォルトの名無しさん:2010/12/27(月) 23:43:26
387デフォルトの名無しさん:2010/12/28(火) 01:13:50
ASP.NET2.0 C#で開発しています。

ページに入れたPanelオブジェクトをチェックボックスのONとOFFで表示/非表示を
JavaScriptで制御する作りを実装しました(仕様としてポストバックでのチェックはできません)

単にvisibleで制御しても出来ないため、Panelのstyle属性にdisplay:blockを埋め込み、とdisplay:noneと切り替えて
とりあえず表示と非表示の制御はできるようになったのですが、ボタンを押した時のイベントのコードビハインドで、
Panelオブジェクトが表示されているか、非表示かも取得したいのですが、どうにも上手くいきません

1.JavaScriptで処理実行時にsetAttributeも一緒に入れて、style属性のdisplayも切り替える→チェックできず
2.いっそPanelのvisibleプロパティを無理やり取ってみる→そもそも設定していないので全てtrueで返ってくる
3.style.valueを取得してチェックしてみる→aspx側で設定した値しか返ってこない(1と類似)

と、色々やってみたのですが…。
無知で申し訳ないのですが、どなたか上手い方法を知っていらっしゃる方いますでしょうか?
Panelを使っていることがそもそも間違っているのかもわかりません

スレ違いでしたら申し訳ありませんが、宜しくお願いします
388デフォルトの名無しさん:2010/12/28(火) 07:06:21
HiddenFieldとか用意しといて、onsubmitとかでJavaScriptで値を入れてやれば?
コントロールじゃないただのhiddenを置いても、Request.Paramsに反映されるはず

どのDOMイベント/JavaScript関数で処理するのがベストかは忘れたんで自分で調べてね
389デフォルトの名無しさん:2010/12/28(火) 12:06:01
正規表現を使う、使わない両方の置換を行いたいのです。
正規表現を使う場合は、最初にヒットしたものを置換というのは調べればできそうなのですが、
使わない場合はたとえば
string s = "ccc\naaa\nbbb\naaa\n";
s = s.Replace("aaa","ddd");
とやると両方のaaaが置換されてしまいます。
これを最初のaaaや2番目のaaaだけ置換するというのはできないでしょうか?
390デフォルトの名無しさん:2010/12/28(火) 12:07:42
>>389
いきなり置き換えじゃなく検索して列挙した後お好きなように調理すればいい
391デフォルトの名無しさん:2010/12/28(火) 12:10:44
>>390
あーーーーなるほど!
ReplaceじゃなくてIndexOfでやればいいんですね。
ありがとうございます。
392デフォルトの名無しさん:2010/12/28(火) 13:19:00
C#でつくった自分のプロジェクトを元に更に機能付加していって新バージョンをつくり
Ver1,2,3,4…としたいです。それぞれのバージョンは残していきたいです。

今のところ既存のフォルダをコピーしてフォルダ名とプロジェクト名を変更していきながら作っていこうかと思っているのですが、
このような場合のスマートな方法があるなら、教えてください。
393デフォルトの名無しさん:2010/12/28(火) 13:20:28
バージョン管理使いましょう
394392:2010/12/28(火) 13:28:54
>>393
どうもっす。バージョン管理ってのがあるんですね。ググッて調べてみます。
ありがとうございました。
395デフォルトの名無しさん:2010/12/28(火) 14:02:21
俺バックアップという意味であえて別HDにバージョン毎フォルダコピーして残してる
396デフォルトの名無しさん:2010/12/28(火) 14:34:19
C#にお詳しい方にお聞きします
{smartassembly} とういうソフトで、
難読化されたアセンブリをソースコードレベルに戻したいんですが
どうすればよいでしょうか?
また、解除できるなら、難読化解除を100パーセント防ぐにはどうしたらいいでしょうか?
397デフォルトの名無しさん:2010/12/28(火) 15:00:56
プログラム自体を暗号化してメモリ上でのみ複合化させる
398デフォルトの名無しさん:2010/12/28(火) 15:35:10
返信ありがとうございます。
しかし、マルチスレッドを用いるプログラムや、インポートしたアセンブリ、
プラグイン等でも簡単にデバッグが行える
VisualStudioでコンパイルできることを想定した場合、その方法だと
実現できるでしょうか?
Reflector等で、メソッドやフィールドの難読化された名前は
見られてしまうのは仕方ないかもしれません。
結局有効なのは、上記のsmartassembly他と同様に、
実行速度を犠牲にし
メソッドの開始時点に不要なジャンプ命令を組み込むしかないのかもしれません


399デフォルトの名無しさん:2010/12/28(火) 15:54:46
何を守りたいのか分からんが、名称を難読化するだけで流用する価値はなくなるだろ
重要な情報を隠すという意味ではローカルである限り、どんな暗号化でも完全にはならないし
400デフォルトの名無しさん:2010/12/28(火) 17:02:34
質問が漠然としてました、申し訳ないです。具体的には
Reflectorや、spices.NET等のツールを用いて
IL以外のC#やVB等の言語で
メソッドの中身を容易に見れなくしたいのです。
例えばrefleectorであれば
"// This item is obfuscated and can not be translated."
が表示されるか、または例外を発生させるようにしたかったのです。
401デフォルトの名無しさん:2010/12/28(火) 17:44:04
ネットワークアプリケーションにユーザ認証機能を乗せたいと考えています。
参考になるサイトや、参考書などありましたら教えていただけたら幸いです。
402デフォルトの名無しさん:2010/12/28(火) 17:45:13
C#にはAPIないのですか? C#ではWIN32 APIしかありませんか?
C#のAPI一覧とかのってるサイトあったら教えてください お願いします。
403デフォルトの名無しさん:2010/12/28(火) 17:46:54
嫌です
404デフォルトの名無しさん:2010/12/28(火) 17:47:43
>>402
C#とAPI(Win32API)との関係をよく分かってないだろ
405デフォルトの名無しさん:2010/12/28(火) 18:07:55
http://www.atmarkit.co.jp/fdotnet/dotnettips/676dragdrop/dragdrop.html
ここを参考にテキストボックス内へファイルのドラッグ&ドロップというのはできたのですが、
フォルダのドラッグ&ドロップで中身のファイル名を取得するというのがわかりません。
最終的にDragDropイベント・ハンドラ内の
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
この部分をフォルダがドロップされてもファイルがドロップされても取得できるようにしたいのですが
どうしたらいいでしょうか?
System.IO.Directory.Exists(d))で分岐させればいいのかなとは思うのですが、
e.Effect = DragDropEffects.Copy;
この部分にどうつなげるかわかりません。

406デフォルトの名無しさん:2010/12/28(火) 18:08:06
メニューストリップにショートカットを付けたいのですが、
MenuItemクラスの Shortcutプロパティの値は、
Shortcut列挙体のメンバー以外は指定できないのでしょうか?
407デフォルトの名無しさん:2010/12/28(火) 18:12:31
>>401
http://dobon.net/vb/dotnet/internet/usecredentials.html
.NETなら標準のコントロールやメソッドが用意されて簡単に作成できるかもしれませんが
開発期間に余裕があり、後々のことを考えると、
まずはHTTPの仕様などwebの基礎から勉強し、
.NETの基礎を@IT等のサイトで調べるのがいいかもしれません。
書籍なら"プログラミング.NET framework"や
"プログラミング Microsoft ASP.NET"が、私はまったく読んでませんがよく
お勧めとされているようです。
コードがそのままのっている本はその場限りで理解につながらないもしれません
その他、サンプルコード等は英語ですがcode project,source forge.net,koders.com,code plexが
あります。
http://www.pinvoke.net/等もwin32APIを使う上で参考になります
また、googleのコード検索もかなり使えます。
408デフォルトの名無しさん:2010/12/28(火) 18:24:18
>>402
C#でWin32APIを使うには、dllを定義をしないといけないんだよ。
PInvokeてサイトをググって、サンプルコード探すのが速いかな。
ほかにマーシャリングって知識も必要かもしれない。
おれもよく分からないんだけど、その辺調べたら使えるようになった。
409デフォルトの名無しさん:2010/12/28(火) 18:33:47
できるかどうか不明ですが
private void _DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}

private void _DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
string[] strs = e.Data.GetData(DataFormats.FileDrop, false) as string[];

if (strs == null || strs.Length == 0)
{
return;
}

for (int c = 0; c < strs.Length; c++)
{
if (Directory.Exists(strs[c]))
{
string[] fileNames = Directory.GetFiles(strs[c]);
}
else
{

}
}
}
410デフォルトの名無しさん:2010/12/28(火) 18:57:29
>>406 おそらく指定できません。
できるかどうか不明ですが
public Form1()
{
InitializeComponent();
this.KeyPreview = true;
shortCutkey = Keys.A;
menuitem.Text = "A";
menuitem.Shortcut = Shortcut.F1;
menuitem.Click += new EventHandler(menuitem_Click);
MainMenu ms = new MainMenu();
ms.MenuItems.Add(menuitem);
this.Menu = ms;
}
MenuItem menuitem = new MenuItem();
Keys shortCutkey = Keys.None;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (shortCutkey != Keys.None &&
shortCutkey == keyData)
{
menuitem_Click(menuitem, new EventArgs());
}
return base.ProcessCmdKey(ref msg, keyData);
}
411デフォルトの名無しさん:2010/12/28(火) 21:33:00
C#で,複数のアクセスポイントからの無線LANの強度から
位置を測定するプログラムを書いています.

現在接続中の無線の強度を獲得することは出来たのですが,
接続していない他の無線の強度の獲得の仕方がわかりません.
別のところに繋ぎ変えないでやるという制約がありますが,どうでしょうか.

よろしくお願いします.
412デフォルトの名無しさん:2010/12/28(火) 21:39:50
あの〜(´・ω・`)
byte配列に格納したwavデータをPlaySoundで再生してたんですが、
☆PlaySound(wavData.wavVolChange(bytes, vol), 0, SND_MEMORY | SND_SYNC);

PlaySoundだと再生と停止は出来ても、一時停止ができないことがわかりました。
しかし、一時停止可能な再生方法を調べてみても、やり方がさっぱりわかりません。
もしもbyte配列のwavデータを再生、停止、一時停止可能な再生方法をご存知の方がいましたら、
この卑しい豚に助言というエサをお与えください。
413デフォルトの名無しさん:2010/12/28(火) 21:48:04
>>409
できました!!ありがとうございます!!!
414デフォルトの名無しさん:2010/12/28(火) 21:50:27
どういたしまして
415デフォルトの名無しさん:2010/12/28(火) 21:51:39
あの〜(´・ω・`) ←これ失礼
416デフォルトの名無しさん:2010/12/28(火) 21:54:52
失礼といえば失礼だな
417デフォルトの名無しさん:2010/12/28(火) 21:57:16
失礼じゃないといえば失礼じゃないな
つまりどういうことだ?
418デフォルトの名無しさん:2010/12/28(火) 22:12:26
´・ω・`)
419デフォルトの名無しさん:2010/12/28(火) 22:15:03
>>412
DirectAudio
XAudio
ActiveXのWMP
WPFのMediaElement(一番簡単)
420デフォルトの名無しさん:2010/12/28(火) 22:16:50
´・ω・`) …
421デフォルトの名無しさん:2010/12/28(火) 22:28:40
>>419
ありがとうございます
下から試してみます
422デフォルトの名無しさん:2010/12/28(火) 23:38:07
うむ
423デフォルトの名無しさん:2010/12/29(水) 00:11:01
イベントについて教えてください。

イベントハンドラを複数登録した場合の実行順は未定義だと思います。
という事はカスタムコントロールではイベント拾っちゃダメですか?

例えば
TextBoxを継承し、Validatingイベントで大文字小文字、全角文字の有無、
文字数などの情報を自身のPublicプロパティにセットする
(利用者側がValidating時に判断材料として使う。)
という設計もダメですよね

OnValidating使えという話だとは思いますが、
グリッドの列やタブページ等、それが通用しないコントロールもあると思いまして。
424デフォルトの名無しさん:2010/12/29(水) 00:20:15
UserControlに貼り付けて包含して都合の悪いイベントは隠してしまえばおk
425デフォルトの名無しさん:2010/12/29(水) 00:27:04
>>423
別に継承後の設計なんだから自分の好きなように
426デフォルトの名無しさん:2010/12/29(水) 02:28:33
>>424
可能ならばそうしたいところです
>>425
悩みますね、もう少し調べてみます。
427デフォルトの名無しさん:2010/12/29(水) 02:39:45
〜は使うなっていうお約束で十分だろ
そういう約束が通じないような、不特定多数が使うちゃんとしたコントロールなら、
出来合いのコントロールの継承なんてやるべきじゃない
428デフォルトの名無しさん:2010/12/29(水) 03:07:23
429デフォルトの名無しさん:2010/12/29(水) 03:16:44
SOAPで処理している2つのサーバがあって、双方にWeb.configが存在している
サーバAのWeb.ConfigにはmaxRequestLengthの記載をしている(2MBの設定)
サーバBのWeb.ConfigにはmaxRequestLengthの記載をしていない(既定値4MBの設定だという認識)

サーバAでの処理でサーバBを通してCSVデータを出力する処理を実装
少量データでは問題ないが、数千件のデータを出力しようとするとエラーになる
試しにサーバBのWeb.ConfigにmaxRequestLengthの記載をすると正常終了する
正常終了した後でCSVデータのファイルサイズを見ると、2MBにも満たない


・何故サーバBにmaxRequestLengthを記載すると正常終了するのかわからない。既定値の4MBでは?
・何故出力したCSVデータサイズがサーバAで設定した2MB以下なのにエラーになるかわからない。ファイルサイズは関係ない?

処理はできたのですが理由がわからず悩んでいます・・・
どなたか馬鹿にでもわかるように教えていただけないでしょうか?



430デフォルトの名無しさん:2010/12/29(水) 03:42:00
「SOAPで処理している2つのサーバがあって」
「サーバAでの処理でサーバBを通してCSVデータを出力」
意味不明なので、日本語を見直してください。

web.configにmaxRequestLengthを設定しないときのMaxRequestLengthの
値を確認しましたか?
あなたの出力したCSVのサイズはどうでもよくて、maxRequestLengthは
Webサーバに対するHTTPリクエストのbodyサイズだと思いますが、
HTTPリクエストはどんな内容ですか?
431デフォルトの名無しさん:2010/12/29(水) 10:30:26
途中で制限越えるのに気がつくからでは?
432デフォルトの名無しさん:2010/12/29(水) 10:48:16
TextBox(MultiLine)を三つ使ってランダム振り分けを作りたいと思っています。
TextBox1に振り分けたいアイテムを改行ごとに入力していき、
ボタンひとつでTextBox2,TextBox3にランダムに振り分けていくのですが、
奇数のときの対処も含め教えてください。
433デフォルトの名無しさん:2010/12/29(水) 10:50:13
>>432
何を言いたいのか・・・
434デフォルトの名無しさん:2010/12/29(水) 10:57:07
>>432
余りを計算する
そういう話じゃないかと
435デフォルトの名無しさん:2010/12/29(水) 11:00:53
>>434
1.TextBox1から、改行で区切ってアイテムを取り出す方法
2.ボタンで、ランダムにアイテムをTextBox1,2へ振り分ける方法
3. 1で取り出したアイテムが奇数の時の対処法
以上の3点を教えて頂きたい。
436デフォルトの名無しさん:2010/12/29(水) 11:12:15
>>435
1 TextBoxは行数情報と各行単位の情報を簡単に取り出せる
行数はこれで取得 TextBox.Lines.Length
でこんな感じでアクセス
http://ideone.com/9JG7W

2 ランダム関連を調べろ

3 自分で設計しろ。ランダム振り分けなんで奇数行だろうが偶数行だろうが問題ないと思うが
コピー後のTextBoxに同じライン数ないといけないとかなると最後の行を処理しないか
偶数行になるように行を捏造するかしないとだめだろけど俺が決める仕様じゃないので知らないというか・・
437デフォルトの名無しさん:2010/12/29(水) 11:35:16
教えてほしいのですが、あるクラスからプロパティをリフレクションで取得し、
その対応するプロパティ名と同じスタティックなクラスを呼び出す場合どのようにしたらよいでしょうか?
実際にしたいことはテーブル情報とDataの入ったエンティティとを比較し、文字列制限チェックやヌルチェックなど
を行いたいです。

Type typeData = tyeof(typeData);
PropertyInfo[] pi = tyepInfo.GetProperties();
foreach(var p in pi)
{
ここにp.Nameで取得した名前とスタティックなクラス
  の名前を対応付けて処理をしたい。
}

//スタティックなクラス
public static class InfoTable
{
public static class Person//このPersonという名前とプロパティ名を緋付けたいです。
{
public static string ColName { get { return "列名"; } }
public static int MaxSize { get { return 100; } }
public static bool NotNull { get { return false; } }
}
}

438デフォルトの名無しさん:2010/12/29(水) 11:38:57
GetNestedTypesとか使えばいいんじゃねーの
439デフォルトの名無しさん:2010/12/29(水) 11:45:29
そういうのはT4Templateとか使って簡易DSLっぽいものから検証コード自動生成したほうが早いよ
440437:2010/12/29(水) 14:23:14
>>438
そのメソッドを使って取得できたのですが・・・今度はEntity側の取得方法で詰まってしまいました;w;
どのようにして該当プロパティの値を取得すればよいでしょうか?よろしくおねがいいたします。

public void ToCheck(SomethingEntity typeData)
{
Type typeInfoEnt = typeData.GetType();//エンティティの型情報取得
Type typeInfoTable = typeof(SomethingEntityTable table);//エンティティのテーブル型情報取得
PropertyInfo[] pi = typeInfoEnt.GetProperties();//エンティティのプロパティのArray取得
foreach (var p in pi)
{
var t=typeInfoTable.GetNestedType(p.Name);//エンティティのプロパティの名前と同じ名前のクラスを取得
int? maxSize = t.InvokeMember("MaxSize",BindingFlags.GetProperty,null,0,null) as int?;
bool? notNull = t.InvokeMember("NotNull", BindingFlags.GetProperty, null, 0, null) as bool?;
    //ToDo:ここにテーブルの値(maxSizeとnotNull)を条件としたチェックを行う
//現在選択されているpのプロパティのtypeDataの情報が欲しいです・・・ 
}
}
441デフォルトの名無しさん:2010/12/29(水) 14:40:39
とりあえずPropertyInfoのメンバ一覧見ろ
442デフォルトの名無しさん:2010/12/29(水) 14:52:59
foreach(var p in pi)
{
var testValue = p.GetValue(typeData , null );
 //var testValue = p.GetValue(typeData , null ) as string ; 

で試したけどうまく行かず@w@
443デフォルトの名無しさん:2010/12/29(水) 15:08:39
プロパティの使い方教えろ
444デフォルトの名無しさん:2010/12/29(水) 15:49:26
.
445デフォルトの名無しさん:2010/12/29(水) 15:52:55
演算子のオーバーロードの使い方教えろ
446デフォルトの名無しさん:2010/12/29(水) 16:25:48
断わる
447デフォルトの名無しさん:2010/12/29(水) 16:46:12
上手な断り方教えろ
448デフォルトの名無しさん:2010/12/29(水) 17:30:16
                      クルッ
.                     ハ,,ハ    ミ  _ ドスッ
.                    ( ゚ω゚ )彡―─┴┴─―
    *  *  *  \       /   つ  お断りし /      ハ,,ハ
  *          *   \   〜′ /´ └―─┬/       ( ゚ω゚ ) お断りします       
 *    ハ,,ハ     *   \   ∪ ∪      /        /    \         
 *   ( ゚ω゚ )    *     .\         /       ((⊂  )   ノ\つ))         
 * お断りします  *.     . \∧∧∧∧/             (_⌒ヽ         
  *           *       <         >            ヽ ヘ }         
    *  *  *        < の し お >       ε≡Ξ ノノ `J               
────────────< 予 ま 断 >────────────
.        オコトワリ      < 感 す り >
  ハ,,ハ    ハ,,ハ     .ハ,,ハ  <. !!      >     ハ,,ハ
. .( ゚ω゚ ) . ( ゚ω゚ )  ( ゚ω゚ )  /∨∨∨∨\   ( ゚ω゚ )<お断り    .ハ,,ハ
   │      │      │   /          .\         します>( ゚ω゚ )
,(\│/)(\│/)(\│ /.              \
               /   ♪お断りします♪  \
              / ハ,,ハ   ハ,,ハ   .ハ,,ハ   ハ,,ハ\
.              ( ゚ω゚ ) ( ゚ω゚ ) ( ゚ω゚ ) ( ゚ω゚ )
449デフォルトの名無しさん:2010/12/29(水) 17:59:36
マンガ脳の恐怖、まで読んだ。
450432:2010/12/29(水) 20:47:43
>>436
ありがとうございます。
http://ideone.com/o6QU0
@ITや、436さんのコードほぼ丸コピでなんとかここまで出来ましたが、
ATxtBxとBTxtBxのアイテム数を同じにする方法が分かりません。
何度も書きましたが、奇数時の処理(どちらかに+1)も教えて頂きたい!
451デフォルトの名無しさん:2010/12/29(水) 20:51:30
いやだから、それはお前がどうしたいか、だろ。
奇数時に何がどうなれば満足なのよ。
その通りに作れ。
452432:2010/12/29(水) 20:53:33
>>451
奇数時にどちらかにアイテム数が一つ増えれば満足です
453デフォルトの名無しさん:2010/12/29(水) 20:57:19
>>452
難しく考えすぎだろw
>>436のコード書いた際にライン数を強調したのは
ライン数の範囲でランダム振り分けを繰り返せば
いいからだと思ったからだよ

奇数ラインの場合振り分け後のアイテム数を同じには
質問されてる方はわからないw

その辺はそういう仕様を自分で決めるかそのプログラムを
出題した?人とかと話して調整するしかないよw
454デフォルトの名無しさん:2010/12/29(水) 23:54:17
トランプのシャッフルをするときの動作を考えてみればいいんじゃないの

ItemTxtBxから取り出した文字列を一旦、配列にしまいこんで、その配列をランダムに並び変えてから、
その配列から一列ずつ取り出してATxtBxとBTxtBxに交互に入れていく。
奇数だったら一列残るから、そのときはATxtBxとBTxtBxのどちらかにランダムで入れるみたいな感じで
455デフォルトの名無しさん:2010/12/30(木) 09:35:49
クラスって何の為にインスタンス化するの?
スタティックメソッドじゃダメなの?
456デフォルトの名無しさん:2010/12/30(木) 09:56:00
いいよ
457デフォルトの名無しさん:2010/12/30(木) 10:46:25
キャー
ミナガワケンジサーン
458432:2010/12/30(木) 11:25:19
>>453
理解に及ばず申し訳ない…
>>454
ピンときました!
ありがとうございます。
試してみます!
459デフォルトの名無しさん:2010/12/30(木) 11:51:02
再度質問させてください。
StringのContainsは"xxを含む名前の物"ですが、
"xxという名前の物"を調べるには何を使えばいいのでしょうか。
460デフォルトの名無しさん:2010/12/30(木) 11:55:33
str == xx
str.Equals(xx)
上の方が普通
461デフォルトの名無しさん:2010/12/30(木) 12:00:22
test
462デフォルトの名無しさん:2010/12/30(木) 12:09:18
>>460
ありがとうございます!
463デフォルトの名無しさん:2010/12/30(木) 12:13:43
すげーな。
俺、459の質問の意味が全くわからなかったぞw
464デフォルトの名無しさん:2010/12/30(木) 12:28:48
struct Person
{
public string name;
public uint age;
public string address;
}

class Person
{
public string name;
public uint age;
public string address;
}

これって根本的に同じですよね?
コンストラクタで値の改変とかのメソッドを実行しない場合って、
複数の変数の保持にクラス使う意味無いですよね。

保守性の為に部品として使うならスタティックメソッドで良いし、
何の為に実体化するのかわからなくなってきた・・・
クラスを実体化するメリットを教えてください
465デフォルトの名無しさん:2010/12/30(木) 12:33:06
>>464
> これって根本的に同じですよね?
どんな根本を想定してるのか知らんが
おいらの感覚では根本的に別物だな

> コンストラクタで値の改変とかのメソッドを実行しない場合って、
> 複数の変数の保持にクラス使う意味無いですよね。
意味が分からん
構造体があれば十分って意味?

> 保守性の為に部品として使うならスタティックメソッドで良いし、
なんでメソッドが出てくるのか…?

> 何の為に実体化するのかわからなくなってきた・・・
> クラスを実体化するメリットを教えてください
人が二人いたら二つインスタンスが必要だろ?
466デフォルトの名無しさん:2010/12/30(木) 12:39:05
>>465
保持してる変数だけでみたら扱い同じですよね?
クラスと構造体の違いがわからなくて
メソッドの事は忘れてください
467デフォルトの名無しさん:2010/12/30(木) 12:42:47
まず値型と参照型の違いを理解しているかどうかだ
468デフォルトの名無しさん:2010/12/30(木) 12:43:31
Personみたいな単語が出てくる時点で基本的に常にクラスだけでおk。
構造体を使うのは特殊な場合に限られる。違いが分からないなら使う意味無し。
たとえばインスタンスAがインスタンスBを参照してて、Bが編集フォームで変更された場合
BがクラスならAが参照してるBも更新されるけど、構造体だと変わらない。
469デフォルトの名無しさん:2010/12/30(木) 12:52:13
>>466
似てるように見えるが扱いが違う
http://ufcpp.net/study/csharp/oo_reference.html#classification
470デフォルトの名無しさん:2010/12/30(木) 12:55:48
>>467-468
classが参照型で、structが値型だというのは覚えてるんですが、それだと
クラスの
Person a = new Person();
Person b = new Person();

構造体の
Person a = new Person();
Person b = a;
は同じことになるんですかね
471デフォルトの名無しさん:2010/12/30(木) 12:58:43
ならない
クラスはCloneしないと複製できない
構造体はコピーになる
472デフォルトの名無しさん:2010/12/30(木) 13:05:21
464じゃ無いけど、使い分け俺も良く分からん。
根本的には別物だと思う、使用するメモリがスタックかヒープかって結構大きい違い。
構造体
・スタックなのでアクセスが早い。(生成も?)
・(メンバは別として)シャローコピーされない分イミュータブルオブジェクトに向く?
・GCの対象外なので破棄も早い
クラス
・変数の実態は参照(4or8バイト)なので、受け渡しが早い。
・参照により複数の変数から同一インスタンスにアクセスできる。

以上が俺の認識。
スタックって何MB使えるの?
Color構造体の例とか見ると、Enumをベースに拡張したい場合に使えばいいかな?
473デフォルトの名無しさん:2010/12/30(木) 13:13:19
>>470
これを実行するとわかるよ
http://ideone.com/bbtBH

>>472
基本的にクラスでいいと思うよ
474デフォルトの名無しさん:2010/12/30(木) 13:15:38
なるほど、よくわかりました
ありがとうございます

それだと、値型のように別のオブジェクトで変数を持ちたいけど、
いずれ継承で拡張したい場合なんかは、いったいどうしたら
475デフォルトの名無しさん:2010/12/30(木) 13:16:02
public class A
{
public int hoge { get; set; }
}

public struct B
{
public int hoge { get; set; }
}

public void Test(A a, B b)
{
a.hoge++;
b.hoge++;
}

ここら辺の違いさえわかってれば
大概は「どっち使おうが気にすることは無い」んじゃないかな。
476デフォルトの名無しさん:2010/12/30(木) 13:18:29
継承じゃなくてインターフェイスにする
477デフォルトの名無しさん:2010/12/30(木) 13:21:11
まず引数に値を返す構造が嫌い
478デフォルトの名無しさん:2010/12/30(木) 13:24:30
outも使えない、そんな世の中じゃ
479デフォルトの名無しさん:2010/12/30(木) 13:25:43
嫌いだったとしても、ちゃんとわかって使わないと
返らないと思って使ってたら返ってた、なんてことになるって話だろう
480デフォルトの名無しさん:2010/12/30(木) 13:27:14
>>477
Fillなんちゃらとか、適切な名前ならいいでしょ
481デフォルトの名無しさん:2010/12/30(木) 14:45:16
回転が出来ません!

Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
A.Rotate(xz);

回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。
482デフォルトの名無しさん:2010/12/30(木) 14:46:46
マルチなのでスルーで
483デフォルトの名無しさん:2010/12/30(木) 14:50:48
間違えてXAMLのとこに書いちゃったからこっちに書きなおしたんだけど、
マルチだからスルー、とかよくわkんないんだけど、なんか答えちゃいけない規則でもあるの?
484デフォルトの名無しさん:2010/12/30(木) 14:51:45
削除依頼が出ていませんのでスルーで
485デフォルトの名無しさん:2010/12/30(木) 14:59:28
マルチ?だと答えちゃいけない規則とかあるの?テンプレに書いてないけど。
486デフォルトの名無しさん:2010/12/30(木) 15:03:35
2ちゃんねるの使い方がわかってないのでスルーで
487デフォルトの名無しさん:2010/12/30(木) 15:18:34
質問が意味不明
何のライブラリのQuartanionやVector3Dなのかわからない。
C#から使えるMS製ライブラリのうちQuartanionやVector3Dを含むものは複数存在する。WPFならそう書け。
何を回転させたいのか具体的に書け。
488デフォルトの名無しさん:2010/12/30(木) 16:55:52
string Aの中に、List<string>にはいっている文字列がいくつ入っているか数えたいのですが、
どうやればいいかわかりません。
LINQを使えばできたと思うのですが、どう書けばいいものやら…
どなたか教えていただけませんでしょうか?よろしくお願いいたします
489デフォルトの名無しさん:2010/12/30(木) 17:13:44
list.Count(A.Contains)?
490デフォルトの名無しさん:2010/12/30(木) 17:22:07
var count = Regex.Matches(A, list.Aggregate((x, y) => x + "|(" + Regex.Escape(y) + ")")).Count;
とか
491デフォルトの名無しさん:2010/12/30(木) 17:49:51
クラスか構造体か迷ったらここを参考にするといい
http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
492デフォルトの名無しさん:2010/12/30(木) 17:50:44
>>491
MSDNにしてはわかりやすい。
493デフォルトの名無しさん:2010/12/30(木) 18:04:50
>>491
>インスタンスのサイズが 16 バイト未満である。
っていうとintだと3つまでか?
494デフォルトの名無しさん:2010/12/30(木) 18:12:18
Rectangleディスってんのか?
495デフォルトの名無しさん:2010/12/30(木) 18:52:48
>インスタンスのサイズが 16 バイト未満である。
また随分と簡潔な基準だな。
これだと、構造体にするべきケースって殆ど無さそう。
496デフォルトの名無しさん:2010/12/30(木) 19:07:54
元の文章読みなおせ。
497デフォルトの名無しさん:2010/12/30(木) 19:08:58
C#で録音機能をつけたいのですが、方法はありますか?
自分が製作しているプログラムは複数音の再生なので、それを録音したいのです。
録音の方法はPCから鳴っている音を録音する方法が良いのかなと考えています。
サウンドレコーダー程度のものでいいので、つけることは出来ますか?
サウンドレコーダーがC#のプログラム上で自動で録音を始めることさえ出来れば良いのですが…

長文大変申し訳ありません。
よろしくお願いします。
498デフォルトの名無しさん:2010/12/30(木) 19:11:11
ありがとうございます。
試してみます!
499デフォルトの名無しさん:2010/12/30(木) 21:34:03
チャーリー浜か
500デフォルトの名無しさん:2010/12/31(金) 14:36:03
録音ソフトの録音スタートのボタンを
ウィンドウメッセージで押すとかすればいいんじゃないの
501デフォルトの名無しさん:2010/12/31(金) 15:43:18
異なるウェブフォーム間で効率的に値を受け渡す方法が分かりません
WebForm1.aspx内のclass Aで計算した値をWebForm2.aspx内のclass Bへ受け渡したいです

始めにclass A内の計算を実行して、Labelに結果を表示してからWebForm2.aspxへ移り
WebForm2.aspxのclass Bでclass Aの計算結果を使用したいので
class Bでclass Aをインスタンス化しclass A内の計算を実行させると
2度同じ計算をさせることになるので一度で済ませる方法がないか探しています
502デフォルトの名無しさん:2010/12/31(金) 16:24:15
セッション使えば?
503デフォルトの名無しさん:2010/12/31(金) 19:32:03
C#スレのみなさん、今年もありがとうございました。大変お世話になりました。

来年はどうもQtスレに行くことになりそうです。
504デフォルトの名無しさん:2010/12/31(金) 21:35:20
そうですか。初心者さんに丁寧に教えてあげてくださいね。
505デフォルトの名無しさん:2010/12/31(金) 22:35:05
>>502
ありがとうございます
506デフォルトの名無しさん:2010/12/31(金) 22:54:49
何度も聞いたが答えないようなのでもう一度言う
インデクサの使い方教えろ
507デフォルトの名無しさん:2010/12/31(金) 23:22:11
クラスを配列と同じような感覚で使いたいとき
508デフォルトの名無しさん:2010/12/31(金) 23:37:03
public class A
{
public int this[int a, int b, int c]
{
get
{
return a*b*c;
}
}
}



A test = new A();
Console.Writeline("{0}", test[1,2,3]);



6
509デフォルトの名無しさん:2010/12/31(金) 23:40:38
普通は Collection クラスに使用する
3 次元ベクトル を表す Vector3D クラスのコレクションクラス Vector3DCollection を作ったとしたら、
それを配列のように扱いたいことがあるはず。

んじゃあ、配列使えよって言うかもしれないが、配列にはメソッド作ったり出来ないし、
その他ゴニョゴニョできないからね。(拡張メソッドレベルなら作れるけど。)

まあ、string とかも添字に使えるから色々な使い方があるだろうが。
510デフォルトの名無しさん:2011/01/01(土) 00:18:40
便乗だけど、VB製クラスのPropertyInfoがインデクサかどうか確実に見分ける手段ってある?
511デフォルトの名無しさん:2011/01/01(土) 08:38:48
>>497です。
>>500さんありがとうございました。

ウィンドウメッセージとは具体的にどのような命令(コード)なのでしょうか?
初心者の質問で申し訳ないです。
512デフォルトの名無しさん:2011/01/01(土) 10:56:07
>>510
型に付いてるDefaultMemberAttributeを調べる
PropertyInfoだけじゃ分からん
513デフォルトの名無しさん:2011/01/01(土) 11:43:31
TextBox内でのSortの方法を教えてください。
514デフォルトの名無しさん:2011/01/01(土) 12:07:00
それだけじゃ誰も答えられません。
515デフォルトの名無しさん:2011/01/01(土) 13:08:48
>>512
Reflectorで見てもDefaultMemberAttributeが使われてないから不思議だったんだけど、C#だと出ないのね
ありがと
516デフォルトの名無しさん:2011/01/01(土) 15:24:03
>>419
何もかもが終わった
byte[]のwavデータを一時停止するなんて高度(笑)なことができるわけがなかったんだ


・DirectAudio
Direct〜は嫌いだから使わない

・XAudio
wav再生できない

・WPFのMediaElement(一番簡単)
ファイルからしか再生できない
silverlight使えばsetsourceでいけるけど勉強する気がない

・ActiveXのWMP
ファイルからしか再生できない
517デフォルトの名無しさん:2011/01/01(土) 15:28:29

> Direct〜は嫌いだから使わない
> Direct〜は嫌いだから使わない
> Direct〜は嫌いだから使わない
518デフォルトの名無しさん:2011/01/01(土) 15:55:49
>>517
文句は言わせないぜ
へへへ
519デフォルトの名無しさん:2011/01/01(土) 16:28:05
>・XAudio
>wav再生できない

え?
520デフォルトの名無しさん:2011/01/01(土) 16:35:03
>>519
やる気がないってことだよ
言わせんな恥ずかしい
521デフォルトの名無しさん:2011/01/01(土) 18:47:54
XAudioでwavはやったことあるけど
wavはヘッダだけ飛ばせばあとはデータをそのままバッファに直接書き込むだけ
522デフォルトの名無しさん:2011/01/01(土) 23:20:36
>>516
言い訳が酷すぎるだろw
523デフォルトの名無しさん:2011/01/01(土) 23:59:28
楽しんでいただけたのなら光栄でございます
一時停止なくてもボタン1つ消えて使用者が少し不便になるだけだし
まぁなくてもいいかなって気分になってきたのだ(・´ω`・)
524デフォルトの名無しさん:2011/01/02(日) 04:51:35
525デフォルトの名無しさん:2011/01/02(日) 04:55:09
できるかどうか不明ですが
526デフォルトの名無しさん:2011/01/02(日) 07:29:52
FormのClickにハンドラを書くときに
Form.Click +=まで入力すると 「new EventHandler(Form_Click); 挿入するにはTabを押してください」と表示され
Tabを押すと、Form.Click +=new EventHandler(Form_Click); 「このクラスにハンドラー'Form_Click'を生成するにはTabを押してください」となり
またTabを押すと自動で
void Form_Click(object sender, EventArgs e) {
  throw new NotImplementedException();
}
まで挿入されますが、これをTab押したときにラムダで挿入するやり方はありますか?

こんな感じで挿入してくれるとうれしいのですが。
Form.Click += (sender, e) => {
};
527デフォルトの名無しさん:2011/01/02(日) 10:16:50
無理
(以下のコードスニペット作れば
528デフォルトの名無しさん:2011/01/02(日) 12:25:52
VS2008Proを使ってます。
ListViewで列、項目を入力して試しにデバッグさせてみたらアイテム名が表示されません。
デザイナでは視覚的に確認できるのですが、書き出すと真っ白になってしまいます。
どういった原因が考えられるでしょうか?
529デフォルトの名無しさん:2011/01/02(日) 14:39:06
>書き出すと
???
ビルドして実行すると、ってこと?
530デフォルトの名無しさん:2011/01/02(日) 15:18:40
>>529
はい。ビルドして実行すると、です。
531デフォルトの名無しさん:2011/01/02(日) 16:07:06
ちょいとくだらない質問するけど
ListBoxって選択されてる項目のTextしか取得できないの?
Items.Countでループさせて、全項目のText取得したいんだけど
もしかして、ループ時に順次select状態にしてText取得していかなきゃだめなの?
そんでループ処理後にselect状態の項目をループ前の状態に戻すしかないの?
うーん・・・
532デフォルトの名無しさん:2011/01/02(日) 16:10:35
Items[i].SubItems[j].Text
533デフォルトの名無しさん:2011/01/02(日) 16:12:24
ごめんListViewと間違えた。
534デフォルトの名無しさん:2011/01/02(日) 16:15:02
>>531
本当にくだらない質問だな....
こんなところにうだうだ書いてる時間に試してみればいいのに
535528:2011/01/02(日) 16:34:47
ListViewのプロパティでOwnerDrowをFalseにしたらビルド後も正常に表示されました。
お騒がせしました。
536デフォルトの名無しさん:2011/01/02(日) 16:44:23
>>534
試したからいってるんだけど
「それしかないの?」って
フフン
537デフォルトの名無しさん:2011/01/02(日) 17:00:50
>>531
ListBoxに与えるテキストって利用者が勝手に変えたりするの?

固定なら最初からstring配列で持っておいて・・・とかすればいいんじゃないの?
538デフォルトの名無しさん:2011/01/02(日) 17:23:11
ここで答えてくれる人ってどんなライブラリ使えばいいか即答するけど、
もしかして全部覚えてるの?
539デフォルトの名無しさん:2011/01/02(日) 17:25:37
>>538
ライブラリを数個しかしらなくてもその時々でたまたま知ってる人が覗いてれば問題ない

540デフォルトの名無しさん:2011/01/02(日) 18:23:44
>>537
ありがとう
それしかないか
541バルサン(´・ω・`) ◆E.J7ujd3Xbu. :2011/01/02(日) 18:34:31
(´・ω・`)
542バルサン(´・ω・`) ◆E.J7ujd3Xbu. :2011/01/02(日) 18:47:17
(´・ω・`)あ
543バルサン(´・ω・`) ◆E.J7ujd3Xbu. :2011/01/02(日) 18:55:12
なんや(´・ω・`)
544デフォルトの名無しさん:2011/01/02(日) 18:57:09
ListBox..DisplayMember = "Name";
ListBox..ValueMember = "Code";
ListBox.DataSource = (DataTable)xxx;

でforeachやforでxxxのDataRowを参照すればいいんじゃないの?

545デフォルトの名無しさん:2011/01/02(日) 19:22:55
>>524
ありがとう
wavデータサイズを固定指定してるところを可変にして、ループ再生用のwhileを消して、再生中ステータス取れるようにして
もろもろ修正したらうまく動いたよ
ありがとう
546デフォルトの名無しさん:2011/01/03(月) 03:08:49
>>544
ありがとう
でもこれでいけたYo
(string)listbox1.Items[0]
547デフォルトの名無しさん:2011/01/03(月) 17:40:04
public interface interfaceA {
 int a;
}
public interface interfaceB : interfaceA {
 int b;
}
public class classC : interfaceB { 
}

の時、classC.aは使えないんですか?
548デフォルトの名無しさん:2011/01/03(月) 17:40:24
c#からサウンドプレイヤーをコマンドから起動し、録音をします。
そのとき録音時間を変数などに入れて時間を指定して起動させたいのですが方法はありますか?
コードはこれです。

Process roku = new Process();
roku.StartInfo.FileName = Environment.GetEnvironmentVariable("ComSpec"); // cmd.exe
roku.StartInfo.CreateNoWindow = true; // 起動に ウィンドウ を使用しない
roku.StartInfo.UseShellExecute = false; // 起動に OS のシェルを使用しない
roku.StartInfo.RedirectStandardInput = false; // 標準リダイレクト入力を不許可
roku.StartInfo.RedirectStandardOutput = true; // 標準リダイレクト出力を許可
roku.StartInfo.Arguments = @"/C SoundRecorder /FILE rec1.wma /DURATION 0000:00:00 /ON"; // コマンド設定(/C = 実行後 終了)
roku.Start(); // 起動

下から2行目の@"/C SoundRecorder /FILE rec1.wma /DURATION 0000:00:00 /ON"の
DURATION 0000:00:00に数値を入れるといいのですが、それを変数を使って代入したいのですが
どう書けば時間を指定できますか?

549デフォルトの名無しさん:2011/01/03(月) 17:45:58
>>548
マルチメディア系のAPIとか機能使って録音した方がよくねえ?
550デフォルトの名無しさん:2011/01/03(月) 17:46:39
>>548
string time = "0000:00:00";
roku.StartInfo.Arguments = @"/C SoundRecorder /FILE rec1.wma /DURATION " + time + @" /ON"
551デフォルトの名無しさん:2011/01/03(月) 17:55:21
>>547
そもそもinterfaceにフィールドは定義できない
552デフォルトの名無しさん:2011/01/03(月) 18:08:45
>>549
使い方がよくわからなかったので諦めました。

>>550
ありがとうございます。

指定する時間が複数の場合、あらかじめ代入してた変数を使って行いたい場合はどうすればよいですか?
秒の部分しか使わないのですが…。
553550:2011/01/03(月) 18:36:44
>>552
string time = "0000:00:00";
の秒の部分を変える。
554デフォルトの名無しさん:2011/01/03(月) 18:42:04
やりたいことがよくわからんが

string sec = "00";
string time = "0000:00:" + sec;

こんな感じでいいんじゃね?
555デフォルトの名無しさん:2011/01/03(月) 18:51:24
>>553
>>554
ありがとうございました。
>>554の方法で出来ました。
556デフォルトの名無しさん:2011/01/03(月) 19:38:11
>>548 >>552の者です。

録音が終わったときに(サウンドレコーダーが閉じられたときに)いろいろな設定をしたいのですがうまくいきません。
どのようにしたらいきますか?
コードです。

roku.Exited += new EventHandler(p_Exited);
roku.EnableRaisingEvents = true;
roku.Start();

private void p_Exited(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "";
toolStripButton26.Enabled = true;
toolStripButton27.Enabled = true;
toolStripButton23.Enabled = true;
toolStripButton24.Enabled = true;
numericUpDown1.Enabled = true;
}

行いたいのは{}の中です。
557デフォルトの名無しさん:2011/01/03(月) 19:42:43
>>556
>うまくいきません。
イベントが発生しなくて目的の設定がうごかないってこと?
558デフォルトの名無しさん:2011/01/03(月) 19:44:12
実行すると
「有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'toolStrip2' がアクセスされました。」
と表示されます。
559デフォルトの名無しさん:2011/01/03(月) 19:54:16
じゃあデリゲートで処理しないと
560デフォルトの名無しさん:2011/01/03(月) 20:04:26
>>559
具体的にどのような操作をすればよいのですか?
調べたのですがよくわかりません…。
561デフォルトの名無しさん:2011/01/03(月) 20:49:36
>>560
まず録音関連を担当する自作クラスを用意
(途中経過はよくわからないのでスレの情報をそのままいれた)
http://ideone.com/V2Xq4

上記クラスを使う側のコード
http://ideone.com/5aWiF

562デフォルトの名無しさん:2011/01/03(月) 21:24:36
>>561
コピペしたところエラーが表示されました。

・「using System.Linq;」は無いようなのですが大丈夫ですか?

・MyRoku roku = new MyRoku();
 roku.Exited(p_Exited);
 roku.Start();
 部分は、Form1_Loadからボタンを押したときに移しましたが大丈夫ですか?

・エラーが表示されます。
「エラー1'form.MyRoku.Exited(form.MyExited)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。」
「エラー2引数 '1': 'メソッド グループ' から 'fomr.MyExited' に変換できません。」
「エラー3デリゲート 'form.MyExited' に一致する 'p_Exited' のオーバーロードはありません。」

解決方法はありますか?

563デフォルトの名無しさん:2011/01/03(月) 21:25:33
四角だけの透明なリサイズ可能なフォームを作りたいんだけど
リサイズ中に枠をぐりぐりするとリサイズできなくなってしまう
自分で見ても原因がまるでわからないので、誰か神眼でバグを指摘しておくれ
■ソース
ttp://ideone.com/qGhgB

■ぷろじぇくと
ttp://www.rupan.net/uploader/download/1294057460.zip
564デフォルトの名無しさん:2011/01/03(月) 21:31:48
>>562
>・「using System.Linq;」は無いようなのですが大丈夫ですか?
必要かどうかは自分のコード全体から判断してくれw

>解決方法はありますか?
もしかしてかなりの初心者?

>>1のコード貼るサイトを利用してコード張ってくれ・・・・
途中経過がさっぱりわからんのに説明めんどくさい
565デフォルトの名無しさん:2011/01/03(月) 21:32:23
>>563
とりあずOnXXXでベースクラスのオーバーライドしたメソッドを呼ばないのは如何なものか
566デフォルトの名無しさん:2011/01/03(月) 21:42:04
ん?よく見るとOnXXXオーバーライドじゃなくて、自分のイベントに自分のメソッドを
紐付けしてるのか失礼。
567デフォルトの名無しさん:2011/01/03(月) 21:47:14
>>563
>g.Dispose();
これ要らない。
なんで要らないのかは理解しておいた方がいいよ
568デフォルトの名無しさん:2011/01/03(月) 21:47:32
>>564
少しいじっていたらなんとかなりました。
申し訳ないです。

皆様ありがとうございました。
569デフォルトの名無しさん:2011/01/03(月) 21:50:12
>>563
中は透明かよwめんどくせー
かぎりなく透明に近いけど0じゃない色で描画すればクリック判定あるよw
570デフォルトの名無しさん:2011/01/03(月) 22:10:10
部分的に透明なFormを作る際のサンプルコード以前ここかもう一つのスレでみたが見つからない・・・
確かFormそのままではだめだったということだったんだが・・
571デフォルトの名無しさん:2011/01/03(月) 22:12:40
>>569
>>570
高度なことはできないと自信を持って言える
572デフォルトの名無しさん:2011/01/03(月) 22:18:31
>>571
確か>>570のやつだとOpacityのように全部が半透明とかじゃなく
部分的にアルファ適応とかできたはず
ただしウインドウの枠の部分も自前で・・・みたなちょっと面倒なやつだったけど

なので>>563のようなコードの場合は枠必要ないので向いてるかなあと・・・
573デフォルトの名無しさん:2011/01/03(月) 22:31:16
>>565
>>567
変えてみたよ
ttp://ideone.com/NiPsL

>>569-569
>>571
このやり方じゃあ絶対にできないのか
部分アルファにするしかないのか
574デフォルトの名無しさん:2011/01/03(月) 22:37:54
>>573
c#のFormのデフォだと透明か色付きしかできなくて
半透明で塗りつぶすとかできないのよね

その代わりForm含む配下のコントロール全部を半透明とかできるけど

部分的にアルファ値を有効にするにはいろいろやらないとだめだったね
そのコードが手に入れば枠の中を完全な透明に近い色付きで塗れば
中もクリック判定が生きてくるんだけどね〜
575デフォルトの名無しさん:2011/01/03(月) 23:48:07
自力で見つけて一応アルファ付きウインドウの表示に成功したけど
C#のFormクラスのイベントは別途拾いなおす必要があるのか?
http://youryella.wankuma.com/Library/Extensions/Form/LayeredWindow.aspx
参考にしたのはここ

>>573を参考に改造したのがこれ
http://ideone.com/7rfrI
メインのフォームのコードだけ張り替えてくれ
576デフォルトの名無しさん:2011/01/04(火) 09:00:24
>>526
http://www.mediafire.com/?rmwmk77pr6w5llf
+=直後 tab2回でラムダ式 一方、+=後スペースを入力しtab2回でデフォルト
C#オンリー
Express版はおそらく動かない
577デフォルトの名無しさん:2011/01/04(火) 14:00:43
あるひとつのクラスの中に複数のインスタンスがある場合に格インスタンスの値を取得する方法(リフレクション?)
はどのようにすればよいでしょうか?ひとつのクラスにあるプロパティやフィールドなどは取得できるのですが。。。

public class Child : IDataErrorInfo
{
public string Value{ get ; set ; }
public Error{ get ; }
public string this[string columnName] { get ; }
}

public class Parent{
public Parent() { _child = new Child() ; }
public Child _child ;
//複数の子が存在する
}

static void Main()
{
Parent _parent = new Parent();
}

の_parentからIDataErrorInfoのErrorを一括で取得したいです。
578デフォルトの名無しさん:2011/01/04(火) 14:24:58
つ配列
579デフォルトの名無しさん:2011/01/04(火) 14:35:16
GetMembersで配列を取得してそこからForeachでまわして
GetInterFace("IDataErrorInfo" , true )で取得しようとしてもさっぱりうまくいきません;w;
やり方が違うのでしょうか?そもそもGetInterfaceで取得するのではないのでしょうか?
580デフォルトの名無しさん:2011/01/04(火) 14:44:44
いやIDataErrorInfoって自分で実装するんだよ
get;じゃなくて、現在の値を調べてエラーを返さないといけない
581デフォルトの名無しさん:2011/01/04(火) 14:47:53
あ、すいません、IDataErrorInfoのerrorのget内は省略しています。

あるひとつのクラスの中に内包されているインスタンス化されたクラスで
IDataErrorInfoを継承したインスタンスを取得したいのです><
582デフォルトの名無しさん:2011/01/04(火) 14:57:35
まずは設計を見直して
public class Parent{
public Parent() { _child = new Child() ; }
public IList<Child> Children { get; private set; }
}
のようにできないか検討する。できない理由があるのであれば、
var errors = from p in _parent.GetType().GetProperties()
 where typeof(IDataErrorInfo).IsAssignableFrom(p.PropertyType)
 let val = (IDataErrorInfo)p.GetValue(_parent, null)
 where val != null
 select val.Error;
ただし_childはプロパティにしてね
583デフォルトの名無しさん:2011/01/04(火) 15:45:18
>>582さんありがとうございます。
今回の仕様ではChildは実はStringと<T>(整数系)から派生したパターンがあり
一律にListに入れることが出来ません;w;あと、Linqも.net2.0指定のためこれまた
使えないのです ( ; w ; )
584デフォルトの名無しさん:2011/01/04(火) 17:06:05
( ; w ; )
585デフォルトの名無しさん:2011/01/04(火) 17:15:37
仮想メソッドの使い方教えろ
586デフォルトの名無しさん:2011/01/04(火) 17:17:19
C++のころと使われ方が同じだとすれば設計時決めたメソッドじゃなく
実行時に別に用意したメッソドに処理させるってことじゃないの?
587デフォルトの名無しさん:2011/01/04(火) 17:35:46
早速あさっての方向に走り出したな、メッソド
588デフォルトの名無しさん:2011/01/04(火) 17:36:54
質問です
すべてのクラスで使えるようにpublicで宣言した変数があるのですが、
Form1からモーダルで開いたForm2からだと、
Ownerプロパティを付けないと参照できないのは、そういうもんですか?
何か宣言する場所とか間違ってるんですかね?
Formも一応クラスですよね?
589デフォルトの名無しさん:2011/01/04(火) 18:28:03
別に色々方法はあるけれど
インスタンスの概念をもう一度考えてみたほうがいい

仮に皆が財布持ってるとして、中身はそれぞれでしょ?
590デフォルトの名無しさん:2011/01/04(火) 18:31:31
わかんないなら
public static class GlobalVariables {
591590:2011/01/04(火) 18:34:21
ミス
public static class GlobalVariables {
public static int Hoge;
}
これでグローバル変数。GlobalVariables.Hogeでどこからでもアクセスできる。
Formにpublic staticで宣言するよりは後で探して修正しやすいのでマシだと思う。
592デフォルトの名無しさん:2011/01/04(火) 18:35:37
ふーんインスタンスかあ・・・
ずっとFormひとつでしか勉強してないから、よくわかんね。
Formが財布ってわけ?
ひとつのプロジェクトでも同じクラスではないってこと?
593デフォルトの名無しさん:2011/01/04(火) 19:57:16
>>575
リサイズの仕方がよくわからない
これはもう完全につんだな
594デフォルトの名無しさん:2011/01/04(火) 20:01:42
>>593
おお来たか
すでに解決したか何かでこないかと思った

対策としてだけどFormをもう一枚作ってそっちをOpacityを限りなく0に近い数値にして
>>575の上に重ねてイベントをそっちで拾わせてウインドウサイズを変えればいいんじゃないかと・・・
595デフォルトの名無しさん:2011/01/04(火) 20:04:42
常に上に来るようにするにはイベント取るFormをダイアログで表示すればいいのかね?
596デフォルトの名無しさん:2011/01/04(火) 20:17:38
>>595
俺.AddOwnedForm(>>595);

こんな風に誰が主人かを新しく開くフォームに教えてやればいいのさ
597デフォルトの名無しさん:2011/01/04(火) 20:27:19
>>594
ありがとう
その手があったか、フォーム2枚作って、イベント取得用フォームから枠用フォームいじくってみる
598デフォルトの名無しさん:2011/01/04(火) 22:01:46
599デフォルトの名無しさん:2011/01/04(火) 22:19:16
質問があります
私はプログラム初経験でC#を学んでいるのですがC#は前提としてCやC++が出来ないと学ぶのは難しいでしょうか。
もう一つC#は何を作るのに向いていて何に向いていないのでしょうか。
皆さんコード関連の質問をしている所に突然馬鹿な質問ですがよろしくお願いします。
600デフォルトの名無しさん:2011/01/04(火) 22:24:44
>>599
>前提としてCやC++が出来ないと学ぶのは難しいでしょうか
noでありyesかなあ・・・まあ難しく考えないでやってみれば?
開発環境もタダだし、ネットで探せばある程度のことはできるから

>何を作るのに向いていて
乱暴な言い方をすればwindows関連のアプリ

>何に向いていないのでしょうか。
組み込み

601デフォルトの名無しさん:2011/01/04(火) 22:32:10
自分はデータベースしかやったことない状態でC#始めたけど
十分何とかなる。

いろんなプロジェクトで人のソース読む機会がたくさんあったってのも大きいから
独学だとわからんけど
602デフォルトの名無しさん:2011/01/04(火) 22:34:23
C# やって詰まったら C。んでもういっかい C# がいいと思う。
603デフォルトの名無しさん:2011/01/04(火) 22:35:48
>>598
あれ・・・その程度の変更で動いた?
604デフォルトの名無しさん:2011/01/04(火) 22:43:40
>>598
こいつぁすげぇ、リサイズしまくっても固まらない
Form2枚作って連動させたら、なぜか途中でリサイズ不能になってつんでたところだ

でも、リサイズしまくるとスカウターがメモリ不足でぶっ壊れる
ttp://picopico2.dip.jp/app/data/1294147670782.jpg
 ↓
ttp://picopico2.dip.jp/app/data/1294147679836.jpg

原因と対策方法を考えるか



ところで、なんでこれでリサイズがめちゃくちゃになるのかわからないんだ
リサイズ用フォームと枠表示用フォームのサイズを連動させてるんだが
誰か理由を教えてくれ
■そーす
・リサイズ用フォーム
ttp://ideone.com/eSRba
・枠表示用フォーム
ttp://ideone.com/YFjLQ

■ぷろじぇくと
ttp://www.rupan.net/uploader/download/1294148467.zip
605デフォルトの名無しさん:2011/01/04(火) 23:07:31
>>601〜603
回答ありがとございます。
皆さんが仰るとおり取り合えずC#を勉強してみようと思います。
606デフォルトの名無しさん:2011/01/04(火) 23:09:24
>>599
>C#は前提としてCやC++が出来ないと学ぶのは難しいでしょうか
そんな事は無い…と、思う。
文法が似てるだけで、かなりの別物になってるし。

けど、C#を学ぶ上での有利不利は抜きにして
C言語自体は、やっといて損は無いと思うよ。(C++にまでは手を出さなくてもいいけど)
Windowsアプリを造りたいなら、Win32APIの基礎も。(C#の開発で使う事が無くても、概念の理解に役立つ)

>何を作るのに向いていて
上で言われてるWindowsアプリに加えて、WebアプリのフロントエンドもC#で作れる。
(Silverlight想定)
607aaaaaaaaaaa:2011/01/05(水) 00:48:40
//**- マウスアップ -**//
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
moving = onResize = false;
GC.Collect();
}

608デフォルトの名無しさん:2011/01/05(水) 01:05:21
>>599
CもC++もやったことない人よりも、
半端にCとかC++触ってる人の方が C# わけわからないって言ってる気もするなぁ。
もちろん、C++使いこなしてる人は別ね。
609デフォルトの名無しさん:2011/01/05(水) 01:43:35
デバッガーさえ使えれば何とでもなると思う
610デフォルトの名無しさん:2011/01/05(水) 05:03:30
自作アプリの設定を保存するのにApplicationSettingsBaseが簡単そうだったので、
使ってみたいと思ったのですが、VS2010Expressにはテンプレートはないのですか?
またこのApplicationSettingsBaseの評判ってどうですか?
user設定をを保存する場所が固定とかいう話ですが、配布を考えた場合、
勝手にフォルダを作られると嫌がるユーザーは多いのでしょうか?
配布のときはフォルダが作られることをしっかり断っておくのがよいのでしょうか?
611デフォルトの名無しさん:2011/01/05(水) 09:09:27
マウスアップのたびに回収なのか・・・・
612デフォルトの名無しさん:2011/01/05(水) 10:12:30
継承を前提としたクラスがあって(abstract)、そのベースのメンバーが継承先のtypeを調べることができるのでしょうか?

public abstract class SomethingBase
{

  public string Something
  {
    get
    {
      var field = typeof(ここに派生先のクラス).GetFields();
      //処理
    }
  }
}
613612:2011/01/05(水) 11:04:27
半分自己解決しました

var field = this.GetType().GetFields();
で取得できました・・・でもこれだとpublicのみしか見つけないのでGetFields()の引数に
BindingFlags.NonPublicを指定したのですが、これでもprivateなフィールドは発見できず・・・
しかもpublicなフィールドまで発見できなくなります(BindingFlags.NonPublic | BindingFlags.Public)
にしても駄目でした・・・
614デフォルトの名無しさん:2011/01/05(水) 13:27:26
>>604
解決してると思うが

取りあえずの解決策

frm.Size = this.Size;
の後ろにでも
frm.Location = this.Location;
いれてみたら?
615デフォルトの名無しさん:2011/01/05(水) 17:19:09
.NET Frameworkのインストールで質問なんですが、
.NET Framework 3.5は.NET Framework 2.0を内包しているんでしょうか?

3.5を入れたら2.0アプリも動くのかということなんですが・・・
616デフォルトの名無しさん:2011/01/05(水) 17:27:23
ほぼ動くよ
617デフォルトの名無しさん:2011/01/05(水) 17:29:36
ほぼというより完全に動くよ
618デフォルトの名無しさん:2011/01/05(水) 17:30:28
619デフォルトの名無しさん:2011/01/05(水) 17:57:42
>>616-618
ありがとうございます!!
620デフォルトの名無しさん:2011/01/05(水) 19:43:01
いえいえ(´・ω・`)
621デフォルトの名無しさん:2011/01/05(水) 20:07:52
>>613
http://msdn.microsoft.com/ja-jp/library/system.reflection.bindingflags.aspx
>Public または NonPublic と共に、Instance または Static を指定する必要があります。指定しない場合、メンバが返されません。
622デフォルトの名無しさん:2011/01/05(水) 20:36:37
1. XmlReader reader = XmlReader.Create("http://test.rss");//test.rssはXML文書
2. dataSet1.ReadXml(reader, XmlReadMode.InferTypedSchema);
3. dataGridView1.DataMember = "entry";
4. dataGridView1.DataSource = dataSet1;

上を実行するとdataGridView1にカラムとデータがきちんと表示されます
でもtest.rssを加工する為に1.の所を
WebClient wc = new WebClient();
string str=wc.DownloadString("http://test.rss");
としてstrの文字列を操作します

そしてstrをXmlReaderの型のreaderに戻したいのですがどうすればいいですか
XmlReaderのインスタンスを作ってCreateメソッドやStreamReaderのインスタンスを作るときの
コンストラクタにstrを指定したりと色々やってみましたがうまくいきません
strをローカルファイルに保存すればXmlReader.CreateメソッドでXmlReaderの型のreaderを作れると思うのですが
文字列であるstrからXmlReaderの型のreaderを直接作るにはどうしたらよいでしょうか
623デフォルトの名無しさん:2011/01/05(水) 20:47:12
var strreader = new StringReader(str);
var xmlreader = XmlReader.Create(strreader);
624622:2011/01/05(水) 21:29:52
>>623
ありがとうございます 無事動きました
>>var strreader = new StringReader(str);
このたった1行が思い浮かばず延べ10時間以上悩みました・・・

MSDNのXmlReader クラスを読んでもString クラスを読んでもStringReaderの文字
すら見つからない中でどうすれば「StringReaderの型」を使えばいいと思い浮かぶのでしょうか
考えつく秘訣とかあったら教えて欲しいのですが
625デフォルトの名無しさん:2011/01/05(水) 21:33:01
>>624
C#(というか.net)にはこういう読み方できるといいな〜ってのは大体実装されてるから
分からないときはC# Reader stringとかでぐぐるといいよ
626デフォルトの名無しさん:2011/01/05(水) 23:43:56
>>598
定期的に真っ白になるや

>>614
もうあきらめ始めてる
枠だけの透明なフォーム作るだけなのに、簡単そうに見えてまるでできない
明日までがんばって駄目だったらもう何もかもあきらめる
627デフォルトの名無しさん:2011/01/05(水) 23:52:21
>>626
ならないぞw
628デフォルトの名無しさん:2011/01/05(水) 23:59:33
>>627
スマン、paintイベント死んでただけだった
629デフォルトの名無しさん:2011/01/06(木) 01:14:08
TransparentやOpacityってリサイズ時に動かなくなることがあるみたいだね
だから透明や半透明にした状態でリサイズすると固まったんだ・・・
死にたい・・・
630デフォルトの名無しさん:2011/01/06(木) 01:16:58
どういう事?
.NET Framework自体にバグあるの?
631デフォルトの名無しさん:2011/01/06(木) 01:29:44
OSと使ってるIDEのバージョン書けよ

windowsXP+2008expressだと問題ねーぞ
632デフォルトの名無しさん:2011/01/06(木) 09:04:24
win7+2008 ProのIDEからデバッグ実行してるけど起きない
633デフォルトの名無しさん:2011/01/06(木) 19:35:29
WebBrowserでマウス座標が指してあるソースコードを
取得したいのですがどうしたら良いでしょうか?
634デフォルトの名無しさん:2011/01/06(木) 19:42:50
スレチかもしれないけど・・・
XNAでゲーム作りたいんだけどお勧めの参考書とかある?
もうまったくの初心者なんだけど
635デフォルトの名無しさん:2011/01/06(木) 19:44:01
あるよ
俺が持ってる奴すげーいい
636デフォルトの名無しさん:2011/01/06(木) 19:49:35
>>635
それを教えてよwお願いだよー
637デフォルトの名無しさん:2011/01/06(木) 19:52:14
xaA game studioで始めるゲームプログラミングだよ
638デフォルトの名無しさん:2011/01/06(木) 19:55:23
>>635
貸してやれよ
639デフォルトの名無しさん:2011/01/06(木) 20:00:26
甘えはゲームプログラミングの敵だお
640デフォルトの名無しさん:2011/01/06(木) 20:02:55
>>637
ありがとう、オフィス加減ってとこが出してるやつだな
641デフォルトの名無しさん:2011/01/06(木) 20:04:08
>>640
それ!
642デフォルトの名無しさん:2011/01/06(木) 20:07:00
XNAも本いらねーだろ
ぐぐれば基本はでてくる
643デフォルトの名無しさん:2011/01/06(木) 20:08:57
基本はここで十分
http://sorceryforce.com/xna/tips.html

というかXNAよりSLでゲーム作った方がいいんじゃね?
644デフォルトの名無しさん:2011/01/06(木) 20:11:16
やっぱ本の方がよくまとまってていいよね。
あと紙ゆえの読みやすさってのもある。お金があるなら本買えばいいよ。
効率よくやろうぜ。
645デフォルトの名無しさん:2011/01/06(木) 20:11:59
>>644
その通り
646デフォルトの名無しさん:2011/01/06(木) 20:12:11
>>643
おお、こんなサイトもあるのか助かるー
xbox用にゲーム作りたいんだよだからXNAの方が入りやすいと思って
647デフォルトの名無しさん:2011/01/06(木) 20:13:25
XNAは下位互換性ないのが勉強しにくくしてる
648デフォルトの名無しさん:2011/01/06(木) 20:15:32
>>647
というかゲームループ部分が見えない仕様なのでゲーム製作初心者にはちとなれるまで面倒かもね
649デフォルトの名無しさん:2011/01/06(木) 20:24:22
>>643
What is SL?
650デフォルトの名無しさん:2011/01/06(木) 20:28:23
651デフォルトの名無しさん:2011/01/06(木) 21:35:55
SLと聞いて蒸気機関車が思い浮かんだ俺は60歳
セカンドライフを思い浮かべた人は30代
652デフォルトの名無しさん:2011/01/06(木) 21:39:44
80486SL
653デフォルトの名無しさん:2011/01/06(木) 22:16:24
visualC#とSQLserverについて質問があります><
visualC#上でSQLserverで作成したデータベースに接続したいのですがうまくいきません。
まず、SQLserverでデータベースを作り、C#上で接続する際そのデータベースを指定してもエラーが出ます。
また、C#上で新しくデータベースを作成しても、SQLserverからファイルを開くことができません。
拡張子やファイルの場所を変えてもうまくいきません。
どうしたらいいでしょうか?教えてください><
654デフォルトの名無しさん:2011/01/06(木) 22:21:15
わかりません><
655デフォルトの名無しさん:2011/01/06(木) 22:22:41
unk
656デフォルトの名無しさん:2011/01/06(木) 22:54:03
お前ら世話になったな、ありがとうよ(´・ω・`)
>>629を知ってからというもの、OpacityやTranseparentを使わないやり方に切り替えた
そしたらうまくいったよ
CreateParamsでタイトルバーだけ消したSizbleのフォームに、枠だけ描画したbitmapデータを使ってUpdateLayeredWindowでレイヤードフォーム作ったら
リサイズ可能で透明なフォームができちまった
UpdateLayeredWindowのソースはもちろんコピペだ
全部お前らのおかげだYo

■ソース
・Form1
ttp://ideone.com/8p6um
・レイヤード化クラス
ttp://ideone.com/DNZZ8

■ぷろじぇくと
ttp://www.rupan.net/uploader/download/1294321891.zip
657デフォルトの名無しさん:2011/01/06(木) 23:09:20
>>653
開発端末のManagement Studio等では繋がってるのに、サーバーエクスプローラーorSqlConnectionでは繋がらないってことか?
接続設定か接続文字列が間違ってるんじゃないの?
658デフォルトの名無しさん:2011/01/06(木) 23:14:58
(´・ω・`) …
659デフォルトの名無しさん:2011/01/07(金) 00:23:00
・ω・`) …
660デフォルトの名無しさん:2011/01/07(金) 01:13:43
・`) …
661デフォルトの名無しさん:2011/01/07(金) 02:26:06
ListViewでTile表示にするとアイコンが右方向に整列しちゃうんだけど、下に向かって並べる方法教えてください
なぜかAlignmentプロパティはTile時には使えないらしい・・・
662デフォルトの名無しさん:2011/01/07(金) 09:56:51
class Myclass : IComparable : ICloneable
{
}
みたいにいくつかのインターフェースを継承したいんですが、どう書けばいいんでしょうか
663デフォルトの名無しさん:2011/01/07(金) 09:59:06
できません
664デフォルトの名無しさん:2011/01/07(金) 10:07:01
かんま
665デフォルトの名無しさん:2011/01/07(金) 10:07:51
>>662
class Myclass: IComparable, ICloneable
666デフォルトの名無しさん:2011/01/07(金) 10:10:10
できました。ありがとうございます
667デフォルトの名無しさん:2011/01/07(金) 13:01:49
郵便はがきの宛名・文面を印刷したいんだけどC#からWORDの挿し込み使ってやるか
PrintDocumentでシコシコやるか
どっちがいいんだろ
668デフォルトの名無しさん:2011/01/07(金) 13:04:28
サードのコンポーネントを購入
669デフォルトの名無しさん:2011/01/07(金) 13:06:02
>>668
active reportはあるけど6.0ではないので縦書きができないという罠
まぁ、改行とか駆使してやればいいんだろうけど・・・・
もちっと楽に縦書きをやってみたかった
670デフォルトの名無しさん:2011/01/07(金) 13:20:40
WORD本体の差し込みで十分だろ
671デフォルトの名無しさん:2011/01/07(金) 13:37:14
>>670
まぁどちらにしろある程度の自動化はさせたい
ちょっと挿し込みやる方法調べてみるかな
672妖犬 ◆youkenkF9Y :2011/01/07(金) 15:52:30
例外処理の使い方が正しいか教えろ
try
{
int a = Int32.Parse(Console.ReadLine());
int b = Int32.Parse(Console.ReadLine());
Console.WriteLine(a + b);
}
catch (Exception)
{
Console.WriteLine("例外");
}
finally
{
Console.WriteLine("終了");
}
673デフォルトの名無しさん:2011/01/07(金) 15:57:41
okotowarisimasu
674デフォルトの名無しさん:2011/01/07(金) 16:01:09
PropertyGridの扱いについての質問です

class Test
{
  object obj { set; get }
}
上記クラスをPropertyGridにセットし、objにセットされている型に応じた操作を行いたいのですが読み取り専用となってしまいます
当たり前と言えば当たり前なのですが、現在の型に応じてセット出来るようにするにはどうしたらいいのでしょうか

TypeConverterあたりで出来そうな気がしますがなかなかうまくいきません
675デフォルトの名無しさん:2011/01/07(金) 16:16:08
objの型に応じて何に何をセットするのさ
676デフォルトの名無しさん:2011/01/07(金) 16:56:49
age
677デフォルトの名無しさん:2011/01/07(金) 17:12:01
省略してすみません
PropertyGridにTestをセットすると、PropertyGridのプロパティリストにobjが現れるのですが読み取り専用になってしまいます。

このときたとえばobjにstringが代入されていればPropertyGrid上で文字列操作を
objにboolが代入されていればtrue、falseの選択を
列挙型が代入されていれば対応する各値の選択を行いたいのです

現状はProeprtyGrid上で読み取り専用となってしまい、変更が出来ないんです
678デフォルトの名無しさん:2011/01/07(金) 17:28:12
無理
そんなもん何に使うの? PropertyGridって開発者向けのツール作るためのもんだよ?
679デフォルトの名無しさん:2011/01/07(金) 19:09:23
プロセスAからプロセスBを起動し、プロセスBはプロセスCを起動するのですが
このプロセスCのPIDをプロセスAは直接的な方法で取得することは可能でしょうか?
プロセスCは複数起動されることがあるため、プロセス名だけでは判断できなくて困っています
680デフォルトの名無しさん:2011/01/07(金) 19:11:45
>>679
AがCを直接しるのは無理じゃないの?

BがCを管理してAからの要求に答えるかCを起動の度に
デリゲートでAの通知用メソッドを呼び出すようにするとか
681デフォルトの名無しさん:2011/01/07(金) 19:43:39
プロセス超えてデリゲートは無理
リモーティングかパイプで通信
682デフォルトの名無しさん:2011/01/07(金) 20:27:02
API CodePackのShellObjectWatcherなんですが、うちの環境(Win7 64)だと
起動したらプログラム終了しなくなるけど他はどうですか?

もし使える物ならFileSystemWatcherの代わりに使いたいんですが
683デフォルトの名無しさん:2011/01/07(金) 22:36:36
Janeのポップアップみたいに、親フォームをアクティブにしたまま新しいウィンドウを操作する(または子ウィンドウを非アクティブのまま操作?)方法を知りたいんですが
どなたかご存知ありませんか?

ShowWithoutActivationでtrueを返したり
CreateParamsでcp.ExStyle |= (int)(WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW)したりしましたが
クリックするとアクティブってしまいました
どなたかこの卑しい豚に助言という名のえさをお与えください

684デフォルトの名無しさん:2011/01/07(金) 22:42:01
>どなたかこの卑しい豚に助言という名のえさをお与えください
  ∧_∧
  (´・ω・) いやどす
  ハ∨/~丶
  ノ[三ノ |
 (L|く_ノ
  |* |
  ハ、__|
""~""""""~""~""~""
685デフォルトの名無しさん:2011/01/07(金) 23:03:08
>>680-681
ありがとうございました
やはりBやCに何らかの手を加えない限り無理みたいですね

とりあえずは最新に起動された物がどれか判別できればいいのでProcess.StartTimeを比較することで実現できました
686デフォルトの名無しさん:2011/01/08(土) 00:42:13
>>683
単純に「親フォーム」とやらをオーナーにするだけじゃダメなの?
687デフォルトの名無しさん:2011/01/08(土) 01:46:01
>>686
常に手前に表示されるようになるだけで、触れるとアクティブになってしまう
688デフォルトの名無しさん:2011/01/08(土) 02:00:18
ToolTipクラスみたいなものを作りたいの?
689デフォルトの名無しさん:2011/01/08(土) 02:05:02
>どなたかこの卑しい豚に助言という名のえさをお与えください
こういういかにも下手にでましたので教えろや!!って本音が見えるような書き込みがなければ教えたんだが・・・
690デフォルトの名無しさん:2011/01/08(土) 02:08:46
あとあのご教授・・・のパターンも気持ち悪い
そこまで気を使う場所じゃないし、かえって不気味
691デフォルトの名無しさん:2011/01/08(土) 02:11:34
じゃあ何ならいいんだよ
692デフォルトの名無しさん:2011/01/08(土) 02:11:46
気を使わずに済む場所だってんならそういうのも気にせず教えてやれよw
693デフォルトの名無しさん:2011/01/08(土) 02:13:15
普通に聞けばいいだろ

アクティブにしたくないFormとそのFormに貼り付けるコントロールにもコードを追加しないとだめだよ
サンプル
http://cs2ch.blog123.fc2.com/blog-entry-85.html
694デフォルトの名無しさん:2011/01/08(土) 02:16:55
いまいちやりたい事がわからん
どなたかこの貴い豚に追加情報という名のえさをお与えください
695デフォルトの名無しさん:2011/01/08(土) 02:20:02
それは聞き方の問題じゃなく無能すぎだろ
696デフォルトの名無しさん:2011/01/08(土) 02:29:44
このスレはネタすら許されないスレなんですね
怖い

>>693
それはすでに試したけど動かなかったよ
後これもなぜかアクティブになってしまった
ttp://d.hatena.ne.jp/ku__ra__ge/20080612/p1
本当に動くのかな


>>694
大元のウィンドウをアクティブにしたままFormにwebbrowserはっつけて作ったポップアップウィンドウにhtml表示したいだけ
697デフォルトの名無しさん:2011/01/08(土) 02:39:50
>>696
ホントにやったのか?

アクティブにしたくないFormに対策するのと
そのFormに貼るコントロールにも対策するだぞ
698デフォルトの名無しさん:2011/01/08(土) 02:44:09
>>697
昨日の時点で既になんだ
そして挫折し、放浪し、ここに至る
699デフォルトの名無しさん:2011/01/08(土) 02:45:11
問題なく動くじゃないか
どうせコピペした際にFormのイベントとかちゃんと動くようにしてないんだろ
700デフォルトの名無しさん:2011/01/08(土) 02:52:46
>>699
イベントまでコピーしてどうすんだ
701デフォルトの名無しさん:2011/01/08(土) 02:58:07
よくわかってないのであれば人のプログラムをとりあえず全部移植して動かしてみて動くことを確認するのが普通だろ

関連するポイント無視してコピーして動きませんってそりゃあまりにもボケナスすぎだろ
702デフォルトの名無しさん:2011/01/08(土) 03:08:31
>>701
勝手に解釈して当たり前の話ばかりするんじゃない
鬱陶しいからもういい
703デフォルトの名無しさん:2011/01/08(土) 03:30:03
よくわからんが動かんとかいうコードを晒せよ
どうせミスってるんだろうし
704デフォルトの名無しさん:2011/01/08(土) 04:21:33
705デフォルトの名無しさん:2011/01/08(土) 04:31:50
AxWebBrowserで表示したページのタイトルを取得するにはどうしたらいいのでしょうか?
706デフォルトの名無しさん:2011/01/08(土) 04:38:21
>>705
ドキュメントからタイトルタグ探せばいいんじゃね?
707デフォルトの名無しさん:2011/01/08(土) 05:09:55
解決しました
ありがとです
708デフォルトの名無しさん:2011/01/08(土) 08:38:35
質問です。
整数の範囲をチェックするには、
0 < a && a < 100
とか書けば良いと思いますが、これをビット演算等でやる方法はあるでしょうか?
709デフォルトの名無しさん:2011/01/08(土) 10:04:32
宿題なら他でやれ
710デフォルトの名無しさん:2011/01/08(土) 10:11:48
宿題ではないです
711デフォルトの名無しさん:2011/01/08(土) 10:13:25
宿題です
私が断定しました
お引取りください
712デフォルトの名無しさん:2011/01/08(土) 10:23:00
ビット演算等でやる方法はありません
713デフォルトの名無しさん:2011/01/08(土) 10:59:17
マジで!?
714デフォルトの名無しさん:2011/01/08(土) 11:02:25
マジかも
715デフォルトの名無しさん:2011/01/08(土) 11:03:38
あるだろw

だが、なんでビット演算なんだよ>宿題以外考えられないな。
716デフォルトの名無しさん:2011/01/08(土) 11:08:13
100って2進数で1100100だろ?
こんな歯抜けをビット演算だけでやるくらいならifで大小比較した方が速いわ
717デフォルトの名無しさん:2011/01/08(土) 11:09:28
宿題なんだろ
718デフォルトの名無しさん:2011/01/08(土) 11:10:40
>>716
特定のビットがあるかどうかのチェックならビット演算する意味あるけど
そのくらいなら普通に計算した方がいいよね

というかいまどきビット演算を使うことなんてそうそうねーだろ
719デフォルトの名無しさん:2011/01/08(土) 11:11:38
>>717
宿題にしても無駄すぎる
出題する教師がバカなのか教師ゆえに時代遅れで化石なのか
720デフォルトの名無しさん:2011/01/08(土) 11:52:54
宿題なら考えることに意義があると思うが
721デフォルトの名無しさん:2011/01/08(土) 11:54:38
この問題を宿題で出すなら俺は値の範囲を0〜127って出題するな
無駄ってそのことだろ
722デフォルトの名無しさん:2011/01/08(土) 11:58:47
[Flags]のせいで結構ビット演算使う気がする
723デフォルトの名無しさん:2011/01/08(土) 12:13:27
しかし良く使う演算は拡張メソッドにしてしまうし
724デフォルトの名無しさん:2011/01/08(土) 12:14:27
722を書き込んでから気づいたわ
725デフォルトの名無しさん:2011/01/08(土) 12:56:59
型制約にEnum入れられるようにして欲しいなー
public static bool Contains<T,V>(this T e, V flag) where T : Enum {
}

これ書けりゃ汎用化できて最高なのに
726デフォルトの名無しさん:2011/01/08(土) 12:59:57
.NET4にはEnum.HasFlagがある
リフレクションなので糞遅いけど、ジェネリック使ったからといってもリフレクション使って実装するしかないはず
727デフォルトの名無しさん:2011/01/08(土) 13:05:08
WeakRefでしばらく取っとけよ
728デフォルトの名無しさん:2011/01/08(土) 13:17:25
WeakReferenceって参照先が不要になったときにGCを邪魔したくない場合に使うもんで
後でまた使うかもしれないからとりあえずキャッシュをしばらく置いときたいようなときには
WeakReferenceではすぐ消えてしまってあんまり役に立たないよ
型ごとにキャッシュを持つなら際限なくリークするようなことはないはずだから
普通にstatic Dictionary<Type, キャッシュ>とかでいいと思う
729デフォルトの名無しさん:2011/01/08(土) 13:33:45
>>726
ExpressionTreeで式作る
730デフォルトの名無しさん:2011/01/08(土) 14:12:34
ダウンロードサイトなどでよく使われる画像認証を解析するようなライブラリってありませんか?
731デフォルトの名無しさん:2011/01/08(土) 14:41:24
BinaryReaderで読み取ったByte[]って、
floatとかstring型にそのままぶち込むことが可能ですか?
732デフォルトの名無しさん:2011/01/08(土) 14:44:45
>>731
BitConverterとかEncodingとか使うと良いよ。
733デフォルトの名無しさん:2011/01/08(土) 14:45:34
BitConverterってのがあるけどfloatはねーな
あるのはToDoubleだ

stringはBitConverter.ToStringでいけると思う
734デフォルトの名無しさん:2011/01/08(土) 14:50:38
>>733
floatはToSingle
735デフォルトの名無しさん:2011/01/08(土) 14:51:06
>>734
ほうw
サンクスw
736デフォルトの名無しさん:2011/01/08(土) 15:01:05
>>734
一瞬ToStringleかと思った
737デフォルトの名無しさん:2011/01/08(土) 15:03:36
BinaryReader使ってるんだったらBinaryReader.ReadSingleとかすればいいんじゃ…
Stringはどういう形式をどういう形式にしたいのか分からんとなんとも言えんけど
738デフォルトの名無しさん:2011/01/08(土) 15:28:16
くは〜w
739デフォルトの名無しさん:2011/01/08(土) 18:34:09
くこ:ミ w
740デフォルトの名無しさん:2011/01/08(土) 20:51:35
if ((○ && □) || △)
のような条件式のとき、○がfalseだと□を飛ばして△が評価されるという動作であってます?
741デフォルトの名無しさん:2011/01/08(土) 20:59:15
string x = null;
string y = string.Empty;

if ((x != null && x.Length > 0) || (y.Length > 0))
{
//
}

でも試してみたら
例外が出たら□は評価される
742デフォルトの名無しさん:2011/01/08(土) 21:31:24
>>704
いや、こういうこと
ポッパーイ4の動きを実装したかったんだ
大元がアクティブなままなところが重要なんだ
ttp://kineko.dyndns.org/~touhou/up/source/up7513.zip


違うアプリがアクティブになったことを検知する方法調べなきゃ
自分が非アクティブな状態でできるのかそんなこと
あるいは自分のプロセスが非アクティブになる瞬間を検知できるのか
めんこくせ(´・ω・`)
743デフォルトの名無しさん:2011/01/08(土) 21:35:19
>>742
リンクできないや
アゲナオシタ
ttp://aryarya.net/up/img/5007.zip
744デフォルトの名無しさん:2011/01/08(土) 21:35:33
>>742
いい加減なアドレスはるな
745デフォルトの名無しさん:2011/01/08(土) 21:38:04
>>683と要求してることが違うじゃん
746デフォルトの名無しさん:2011/01/08(土) 21:54:15
(´・ω・`)…
747デフォルトの名無しさん:2011/01/08(土) 22:02:11
アドバイスくれた人をごちゃごちゃ・・・とか書いちゃうやつなんでこういうテストはしてないだろうな・・・

確かに親Formから呼び出したFormとしてはダメだけど
Program.csをこんな感じで書き換えて直接3を実行すると上で紹介されてる動きするけど・・・

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace DoraemonPopup
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            Application.Run(new Form_Popup3());
        }
    }
}
748デフォルトの名無しさん:2011/01/08(土) 22:15:10
>>747の話を考慮にいれると別exeにして起動すればいけそうだな
749デフォルトの名無しさん:2011/01/08(土) 22:16:23
>>745
え、一緒だよ

>>747
それはわかってるよ
その動き方じゃ駄目だったから質問したんだ
750デフォルトの名無しさん:2011/01/08(土) 22:22:52
>>748
同じプロセスなのが駄目なら、違うプロセスで動かせばいいんだと思ったが
やり方を全く知らないし、調べるのがめんどくさそうなので放置した
いま、「一応」動いてるし、一応・・・
751デフォルトの名無しさん:2011/01/08(土) 22:24:49
うーん求めるものがよくわからんが
Form_Popup3にActivatedイベントを追加してそこへ

this.Owner.Activate();

と追加すれば>>747に近い動きしたよ
>>747と違ってウインドウの移動もスムーズだし
752デフォルトの名無しさん:2011/01/08(土) 22:39:31
>>751
ありがとう
Janeのポップアップと同じもの作ろうとしてるようなものなんだ
それだと常にオーナーがアクティブになるのでポップアップが操作を受け付けなくなってしまう
あと一瞬フォーカスが移るからタイトルバーが微妙に点滅してる
ありがとう、後は自分で何とかするよ
俺は煽られると煽り返すタイプだからいないほうがいいし
753デフォルトの名無しさん:2011/01/08(土) 22:45:15
http://ideone.com/m3QBZ

隣接するマスに地雷が置かれていないとき自動で開ける方法を教えろ
754デフォルトの名無しさん:2011/01/08(土) 22:48:01
そもそもJaneのポップアップってどれのこと言ってるんだ?
755デフォルトの名無しさん:2011/01/08(土) 23:02:08
>>741
なるほどそうやって確かめるのか。
結果はちゃんと□を飛ばしてくれました。
756デフォルトの名無しさん:2011/01/08(土) 23:04:18
>>753
詳しくはないけど迷路探索のあたりの考えが使えるんじゃないかな?
757デフォルトの名無しさん:2011/01/08(土) 23:11:45
>>753
aとbだけじゃマスが開いてるかどうかわからないからboolの配列を増やす
そうするとaはbが決まれば変わらないので、ループの外で計算する
c,d入力後にaが0で開いているマスの隣接マスを開く、これを開けなくなるまで繰り返す
758デフォルトの名無しさん:2011/01/08(土) 23:12:23
void 自動で開ける(int x, int y) {
if (範囲外(x, y) || もう開いてる(x, y) || チェック済み(x, y)) { return; }
if (!隣接するマスに地雷がある(x, y)) { 開ける(x, y); }
自動で開ける(x - 1, y);自動で開ける(x + 1, y);自動で開ける(x, y - 1);自動で開ける(x, y + 1);
チェック済みにする(x, y);
}
こん感じじゃないの
759デフォルトの名無しさん:2011/01/08(土) 23:13:18
>>753
つ足し算、引き算
760作本:2011/01/09(日) 05:39:01
Windows Form アプリケーションを作成しています。

@ 複数の端末でその日の記録を入力する。
A シャットダウン時に、ネットワークの共有フォルダにその内容をテキスト出力
B 起動時には、その共有フォルダ内のテキスト全件を読み込み、他端末の入力情報も取り込む

以上の仕組みを作っていますが、
どの端末も毎日起動しているので、当然の結果として、
共有フォルダにテキストデータが1000件近く溜まってきました。
なので起動時に重たくなってきています。

共有サーバにデータベースを置けないのでそうしたのですが、

(1)
このようなテキストデータがある程度の件数蓄積されてきたら、
自動でフォルダを生成し、一定の過去データを移動し自動で圧縮をかける

ことはC#でできますでしょうか。

また、
(2)圧縮フォルダを解凍する

ことも可能でしょうか。

お手数ですがよろしくお願いいたします。
761デフォルトの名無しさん:2011/01/09(日) 05:55:16
>(1)
>このようなテキストデータがある程度の件数蓄積されてきたら、
>自動でフォルダを生成し、一定の過去データを移動し自動で圧縮をかける
できない

>(2)圧縮フォルダを解凍する
できない

両方とも自動でなんてのは無理

それより各端末のファイルをたとえば

yyyymmdd_hhmmss_ID.txt

とかファイルでわければいいんじゃないの?

で読み込む範囲を日付で絞るとかすればいいだけだろうし
762デフォルトの名無しさん:2011/01/09(日) 06:57:01
両方出来るだろw
ファイルのみで扱えるデータベースもある
(SQLSever CompactやSQLiteとか、MDBはやめとけよ)
763作本:2011/01/09(日) 08:36:40
>>761さん
>>762さん
ご返信くださりありがとうございます。

>>761さん
日付で読み込むファイルを絞る方法、大変参考になりました。
かなり所要時間が短縮されると思います。
あとは、30,000件ほどにファイルが増大した場合に、日付判定を含めてどれくらいの負荷があるか、
試験したいと思います。

>>762さん
圧縮・解凍方法は、dobonさんのページにあるF#の機能を使用する方法でしょうか。
また、ファイルのみで扱えるデータベースとはどういうものでしょうか。

よろしくお願いいたします。
764デフォルトの名無しさん:2011/01/09(日) 08:48:28
2ch ヘッドラインニュースBBY(一覧性が秀逸)http://headline.2ch.net/bbynews/

どんな難解ニュースでも掲示板の書き込みを読んで簡単に理解。
ニュースを勢い順にカテゴリー別で表示する"2NN"(2ちゃんねるニュース速報+ナビゲーター)もどうぞ。
765デフォルトの名無しさん:2011/01/09(日) 08:57:24
>>763
ネットなんだからリンクを貼れよ
これでいいんじゃね?
DotNetZip(Ionic Zip Library)を使ってZIP書庫を作成する - DoboWiki
http://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F93
766デフォルトの名無しさん:2011/01/09(日) 10:15:49
>>763
SQLite等は、DBMSのプログラム一式がクライアントソフト内に取り込めるタイプのデータベースです
だから共有サーバーには一切プログラムインストールしなくてもデータファイルを置いておくだけで使えます
C#ならhttp://sqlite.phxsoftware.com/をインストールするだけで使えます

ただし一度に書き込めるのは一人だけなので、それをケアできるようにプログラムしないといけません
767デフォルトの名無しさん:2011/01/09(日) 10:35:40
>ただし一度に書き込めるのは一人だけなので、それをケアできるようにプログラムしないといけません
管理とか面倒だから>>761を提案してるのに・・・・
他の端末と排他制御したりとデータの整合性を取らないといけないとかあほらしい

>>763
まあ日付跨ぐようなブラックな企業かどうかわからんけど
日付跨がないのであればその日の年月日(yyyymmdd)でフォルダを作ってそこへ出力すればいいのとちゃう?
768作本:2011/01/09(日) 10:42:55
>>765さん
ありがとうございます。

dobonさんの紹介サイトは
http://dobon.net/vb/dotnet/links/createzipfile.html
です。
ただ、難易度や長所短所などは分かりません。

教えていただいた内容を踏まえ、

規定期間内のデータを取り込み、一定期間をさかのぼる過去のものは圧縮していき、
月日が経つごとに、過去のものになったデータも圧縮ファイルに納めていく…
という方法も効率てきかなと思っています。
769デフォルトの名無しさん:2011/01/09(日) 10:50:36
VS 2010 C#で既存のTESTフォームに
06:00:00からの経過時刻を表示したいのですが
コード教えてください。
770デフォルトの名無しさん:2011/01/09(日) 10:51:27
VS2010のスレへどうぞ
771デフォルトの名無しさん:2011/01/09(日) 10:51:45
Timerセットして6時のDateTimeと現在のDateTimeで引き算してToStringすりゃいいだけです
772デフォルトの名無しさん:2011/01/09(日) 10:59:08
>>769
確認はしてない。
var now = DateTime.Now;
var from = new DateTime(now.Year, now.Month, now.Day, 6, 0, 0);
Console.WriteLine("{0}", (now - from).TotalSeconds);
773デフォルトの名無しさん:2011/01/09(日) 11:01:16
>>771
引き算するならTimerは何に使うのかと・・・
774デフォルトの名無しさん:2011/01/09(日) 11:09:20
経過時刻を毎秒更新するためじゃないの?
775デフォルトの名無しさん:2011/01/09(日) 11:12:31
773はTimerを1000ミリ秒に設定すれば現在時刻いらねーじゃんって考えたんかな
776デフォルトの名無しさん:2011/01/09(日) 11:14:38
ところで、それは経過時間ではなかろうか
777デフォルトの名無しさん:2011/01/09(日) 11:18:51
もともと「経過時刻」って日本語がおかしい
778デフォルトの名無しさん:2011/01/09(日) 11:43:08
そもそもマルチだから答える必要はない
779デフォルトの名無しさん:2011/01/09(日) 11:47:11
>>769
昼の11時なら05:00:00、朝の5時なら23:00:00っていう感じにしたいなら

var t = DateTime.Now.TimeOfDay;
if (t.Hours < 6) {
  t = t.Add(TimeSpan.FromDays(1));
}
t = t.Subtract(TimeSpan.FromHours(6));
Console.WriteLine(t.ToString());
780デフォルトの名無しさん:2011/01/09(日) 12:17:30
float?ってfloatと何が違うんでしょうか
781デフォルトの名無しさん:2011/01/09(日) 12:19:13
nullableで調べる
782デフォルトの名無しさん:2011/01/09(日) 12:35:47
null 許容型というのか
ありがとん
783デフォルトの名無しさん:2011/01/09(日) 17:17:42
すみません。教えてください。
初めて作ったプログラムを、初めて「発行」という操作をしたのですが、
発行場所というのがよく分からず、とりあえずデスクトップにしてみたのですが、
そこにできたSetupをクリックしたら、とりあえずインストールされたのですが・・・
本体のExeは何処にあるのでしょうか?Progrum Filesの中にはそれらしいのは見つからなかったのですが・・・
デスクトップ上に出来たマニフェストファイルはちがいますよね?
プロジェクトの中のbinのリリースフォルダでしょうか?
とすると、発行場所にできたファイル郡は何でしょうか?
784デフォルトの名無しさん:2011/01/09(日) 17:26:06
Visual Studioスレで聞いた方がいいような気がする
さもなくば

ClickOnce インストール先

などでググる
785デフォルトの名無しさん:2011/01/09(日) 18:45:33
Program Files に入れるためには管理者権限いるから、ユーザーの AppFolder とかに入る。
786デフォルトの名無しさん:2011/01/09(日) 18:51:19
ありがとうございます。ちょっとググって見ました。
発行ウイザードでできるプログラムは少し特殊なんですね。
いやー、自作アプリ作るのは敷居が高いなあ(^^;;;
787デフォルトの名無しさん:2011/01/09(日) 18:54:19
ClickOnce で発行できるようになってずいぶん楽になったけどもね。
788デフォルトの名無しさん:2011/01/09(日) 19:11:18
そもそもスタートメニュー内にショートカットができるし
アンインストールもコントロールパネルから行うことができるので
ユーザーは本体の場所を知る必要がないはず
789デフォルトの名無しさん:2011/01/09(日) 20:14:57
ユーザーはね。プログラマーは一応知っといたほうがいいんじゃない?
790デフォルトの名無しさん:2011/01/09(日) 20:23:17
不特定多数に配るフリーソフトとかだったら
ClickOnceみたいなのはユーザーにとってすごく抵抗感が強いので避けたほうがいいと思う
普通にインストーラ配るほうがマシ
791デフォルトの名無しさん:2011/01/09(日) 20:23:56
知って何ができるかなぁ。
792デフォルトの名無しさん:2011/01/09(日) 20:25:05
>>790
ClickOnce、ただのインストーラーとしても使えるよ。
ZIP で固めたインストーラーとしても配れる。
793デフォルトの名無しさん:2011/01/09(日) 20:59:15
794デフォルトの名無しさん:2011/01/09(日) 21:31:58
ClickOnceとか作るぐらいならWindowsインストーラというかsetupプロジェクトを
もっと実用に耐えるものにして欲しいよな。
795デフォルトの名無しさん:2011/01/09(日) 21:49:13
ユーザーにとってすごく抵抗感が強いClickOnceデプロイメントを
どうしてGoogle Chromeは採用したんだろうね。

すごく抵抗感が強い?何それ妄想?
796デフォルトの名無しさん:2011/01/09(日) 21:53:25
従来のインストーラーだと権限の問題があったり
zipパッケージだと馬鹿にはインストールできなかったりで
落とし所としてはこんなもんじゃねえかなあと思う
797デフォルトの名無しさん:2011/01/09(日) 22:13:37
>>795
Googleがリリースしたのをインストールするのと
そこらのサイトから誰とも知らん人が作ったアプリをインストールするのでは
前提を一にすることはできないのではないか
798デフォルトの名無しさん:2011/01/09(日) 22:21:23
そこらの名も知らぬ馬の骨が作ったアプリでも
ClickOnceではなくインストーラーなら信用できますッ!ってのも大概に頭おかしいだろw
799デフォルトの名無しさん:2011/01/09(日) 22:24:05
つか発行するときにCD-DVDからインストールに指定すればsetup.exeになるだろ
インストーラと何が違うってんだよ
800デフォルトの名無しさん:2011/01/09(日) 22:26:52
ソフトウェア板にインストーラはレジストリが汚れるから嫌ですって言う奴まだ沢山いるからなー。
いつまで9x系の頭してるんだろう。
801デフォルトの名無しさん:2011/01/09(日) 22:33:21
レジストリ汚すのは事実だろ
.NETアプリはレジストリ使わなくなりつつあるけど
802デフォルトの名無しさん:2011/01/09(日) 22:34:03
で、C直下とかにフォルダ掘りまくってディスク汚すんでしょ。
803デフォルトの名無しさん:2011/01/09(日) 22:35:01
なんか、ClickOnceだってインストーラーの一種なのに、
なんでClickOnce VS インストーラーみたいな口調でしゃべってる人いるの?
804デフォルトの名無しさん:2011/01/09(日) 23:34:21
アホの797本人に聞いてください
805デフォルトの名無しさん:2011/01/10(月) 00:41:15
今はなんでもユーザーフォルダに入れるのが流行りだよね
806デフォルトの名無しさん:2011/01/10(月) 01:11:32
e:\Program Files\に入れたいのにcドライブのユーザーフォルダにしか入れられないのはいやん。
OS再インスコしたときにインストールし直すのめんどいしなー。小物アプリはzipで固めてくれたほうが助かる。
807デフォルトの名無しさん:2011/01/10(月) 01:31:28
2行のレスで破綻するとは凄い才能だw
808デフォルトの名無しさん:2011/01/10(月) 01:35:15
システムドライブ以外のところに置きたいって話だろ。破綻してないじゃん。
809デフォルトの名無しさん:2011/01/10(月) 01:37:01
何のスレだか分からない流れだけど、バイナリを[ユーザー名]以下のディレクトリに
ブチ込むインストーラーはないでしょw

>>805の言ってることは(本人が意図しているかどうかは分からないけど)正しいけど、
それって設定ファイルのことでしょ。
810デフォルトの名無しさん:2011/01/10(月) 01:40:02
>>809
ClickOnceがまさしくそうだが
811デフォルトの名無しさん:2011/01/10(月) 01:55:31
>>810
しかしUACみたいな仕組みを作ってまで、不正なプログラムが入らないようにセキュリティー上げているのに
それがウザいからってユーザーディレクトリーにインストールする仕組みを本家が出すってどうなんだろうな
812デフォルトの名無しさん:2011/01/10(月) 01:59:41
>>811
1人のユーザーしか使わないならそのユーザーの許可だけ得られれば問題ないという考え方だろう。
結局UACだってユーザーに判断を委ねてるにすぎないし。
813デフォルトの名無しさん:2011/01/10(月) 02:40:22
>>811
セキュリティ的に問題ないからユーザーディレクトリにインストールできるようにしたんだろ
814anonymous:2011/01/10(月) 02:47:41
ユーザーディレクトリに入れたプログラムが昇格したらえらいことだけどな
815デフォルトの名無しさん:2011/01/10(月) 02:58:07
なんで?
816デフォルトの名無しさん:2011/01/10(月) 03:09:06
管理者権限を要求するインストーラーとClickOnceを並べて
ClickOnceはユーザーディレクトリにインストールするから危険だ って凄い違和感あるんだが
817デフォルトの名無しさん:2011/01/10(月) 08:49:15
全然違和感ないな。
ユーザーフォルダってことは子供がPC触って簡単に
プログラム入っちゃうってことだろ。
818デフォルトの名無しさん:2011/01/10(月) 09:01:17
結局、手間が増えただけで全くセキュリティは上がってないってことだな。
819デフォルトの名無しさん:2011/01/10(月) 09:02:20
入っちゃって何か問題が?
あるとすれば子供よりむしろ管理がめんどくさくなる企業とかの方だろう
820デフォルトの名無しさん:2011/01/10(月) 10:23:03
PCに対するセキュリティとユーザ自信による操作ミスをごっちゃにしてるんだろう

そういやChromeのインストールもユーザーディレクトリだったな
821デフォルトの名無しさん:2011/01/10(月) 11:02:31
他プロセスがHDDにガリガリアクセスしていたら
ループ内でスリープをはさもうかと思ってるんですが
どうやって調査すればいいんでしょうか。
PerformanceCounterでCPU消費率は取れるっぽいんですが
単位時間あたりのHDDへのアクセス量の取り方がよくわかりません。
822デフォルトの名無しさん:2011/01/10(月) 11:16:48
パフォーマンスモニタ使えばPerformanceCounterでどんなのが使えるか簡単に見られるよ
823デフォルトの名無しさん:2011/01/10(月) 12:06:54
ユーザーディレクトリ云々言い出したら有象無象のzipが一番危ないだろw
824デフォルトの名無しさん:2011/01/10(月) 12:37:06
>>822
Disk Read Bytes/secとかを指定すればいいんですかね。。
ちょっと試してみます。
ありがとうございました。
825デフォルトの名無しさん:2011/01/10(月) 12:49:11
>>823
どこにインストールするかは本質的な問題じゃなくて、恐らく>>811が言おうとしたことだと思うが、
OSは「問題の有無を判断すべき(できる)ユーザ」にだけ判断をさせる思想で
作ってあるのに、それと矛盾することをやっていいのかよって話。
826デフォルトの名無しさん:2011/01/10(月) 12:50:42
だったら管理者がポリシーでも設定して置けよボケ
827デフォルトの名無しさん:2011/01/10(月) 12:52:04
828デフォルトの名無しさん:2011/01/10(月) 13:00:12
パソコンも免許制にして欲しいもんだ。
問題の有無を判断すべき(できる)ユーザがパソコン買えよ。
829デフォルトの名無しさん:2011/01/10(月) 13:05:57
>>825
OSはユーザーの権限内であれば何やってもいいように作ってあるだろ
頭おかしいの?
830デフォルトの名無しさん:2011/01/10(月) 13:06:43
Linuxだって自分のhomeには自由にインストールできるしね
これって特殊か?
自分が物をしらねえだけじゃねーの
831デフォルトの名無しさん:2011/01/10(月) 13:12:39
>>811だってUACが必要な部分までアクセスするようなプログラムじゃなきゃ問題にならねえだろ
何でUACが出るとセキュリティが上がると思ってんの?気分的な問題?
832デフォルトの名無しさん:2011/01/10(月) 13:19:10
>>829
判断力のないユーザーがインストールしたソフトが、そのユーザーが権限もってる
ディスクのデータを全て破壊する物だとしてもか。

頭がオカシイのはどっちだよ。
833デフォルトの名無しさん:2011/01/10(月) 13:20:06
>>832
そんなのどこのOSでも同じだろ
誰の思想なんだよ?お前個人の?
834デフォルトの名無しさん:2011/01/10(月) 13:20:55
>>832
そんなのバッチだって作れるだろwww
835デフォルトの名無しさん:2011/01/10(月) 13:21:57
ディスクのデータを全て破壊する物だとしてもか(苦笑)
836デフォルトの名無しさん:2011/01/10(月) 13:22:47
しかしすげーな
ここまでの馬鹿がClixkOnceに過剰反応していたんだと思うと笑える
837デフォルトの名無しさん:2011/01/10(月) 13:24:04
いつものことだが馬鹿はまだ許せるけど人間的に幼稚な奴は本当嫌だな。

ぞんざいな口調でいきなり人をお前呼ばわりとか、
よくそういうガキ臭い自分自身に耐えられるな。
少しは自尊心ってものがないのかよ。
838デフォルトの名無しさん:2011/01/10(月) 13:25:41
お前こそ、反論できなくなったらいつもそれな。
自尊心に従って失せろカス。
839デフォルトの名無しさん:2011/01/10(月) 13:27:32
噛み付いてるのが例外を握りつぶすちゃんだって今気づいた

281 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/02(木) 00:33:08
馬鹿ばかりで話にならん。

「よく使われる」ことと「意味が明確」なことは全く別の事柄で、
俺は後者について怪しいと言ってるんだけど。

「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。

「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を
言わんとしてるんだろうと想像するが。例外に関して重要なことはプログラマがそれをちゃんと
想定しているか否かであって、「握り潰す」かどうかではない。

単にキャッチして伝達も処理もしないことが正常、という場合だってあるのに
「握りつぶす」なんて言い回しを平気で使えるガサツさは俺には理解できない。
840デフォルトの名無しさん:2011/01/10(月) 13:30:27
こういう人です

937 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/17(金) 00:03:51
http://hibari.2ch.net/test/read.cgi/tech/1281236906/123

123 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/29(日) 22:34:35
>>122
頭オカシイのはお前さん。

フリーソフト(だからフリーソフトだ、と言ってるのに「別会社」ってw)なんか
作ったことがない俺でも、文字列リソースをプレーンテキストにしておけば、
プログラマじゃない人にもローカライズ作業を丸投げできることは想像に難くない。

なんでその程度の想像力もない馬鹿なのにそんな偉そうなのか。
それは自分の馬鹿が自覚できないほど頭が悪いからなんだろうな

http://hibari.2ch.net/test/read.cgi/tech/1281236906/180

180 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/30(月) 21:36:49
現実世界の対面のコミュニケーションだと「モジモジ君」なコミュニケーション弱者に限って、
掲示板では面識もない相手をいきなり「お前」呼ばわり。

そういう自分に何も戦慄を感じないなら、立派な廃人だと思うがな。
841デフォルトの名無しさん:2011/01/10(月) 13:31:50
そうか冬休みか
842デフォルトの名無しさん:2011/01/10(月) 13:33:50
http://hibari.2ch.net/test/read.cgi/tech/1281236906/192

192 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/30(月) 21:50:58
そういう発想って「推定有罪」みたいだね。

普通は(その方が便利なものを)禁止する場合に理由が必要だと考えるのじゃないの?
なんで「手を縛るな」というのり理由が必要なの?
よくわからん発想だ。

http://hibari.2ch.net/test/read.cgi/tech/1281236906/289

289 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/02(木) 00:51:22
頑固というのは自分の意見に固執することを言うんだろうが、
自分の「愚見」に固執している奴が相手を指して「お前は頑固だ....」

そういうことばのセンスをしているから「例外を握りつぶす」なんて言い回しに
何も疑問を感じないのだろう。

まあ言葉に対する感受性以前に、自分を棚に上げる自己中心性という要素もある(そちらの方が大きい?)がw

※このスレと相談室に常駐です
※鍵括弧を多用します
※句読点は打つ派です
※○○性という言葉を好みます
※返す言葉がなくなると人格批判を始めます
※普段はいい子ですが、みながわけんじさんみたいに自分を過信する頑固さがあります
843デフォルトの名無しさん:2011/01/10(月) 13:41:43
>>832
パソコンは判断力の無いユーザーが

rd /S /Q %APPDATA%

なんてバッチを実行したら止めてあげないといけないんですかね
正直そこまで面倒見切れないような気がしますが
844デフォルトの名無しさん:2011/01/10(月) 13:45:33
↑みたいなのって「お前あのときの○○だろう」と特定されるとうろたえる
ひ弱な自分自身を語るに落ちてるだけだと思うんだが、頭が悪いから気付かないのなきっと。

ついでに言えば、こんなコピペを何時でも貼れるように用意してる動機って
他人から見ればあまりに見え透いてる(それはまともに反論できないから、
こんなことでしか悔しさを晴らせない)ことも分からないらしい。
845デフォルトの名無しさん:2011/01/10(月) 13:46:31
書き込む前に慌てず騒がずリロードしましょうね
846デフォルトの名無しさん:2011/01/10(月) 13:47:14
>>844
そこまでパターンだよね
847デフォルトの名無しさん:2011/01/10(月) 13:51:01
>OSはユーザーの権限内であれば何やってもいいように作ってある

これはホントどこのOSだろうがその通りだと思うんだけど。
例外さんの見解は違うの?教えてクレクレ。
848デフォルトの名無しさん:2011/01/10(月) 13:52:11
>ディスクのデータを全て破壊する物だとしてもか。
騒いでるやつ馬鹿すぎワロタ
849デフォルトの名無しさん:2011/01/10(月) 13:55:24
喧嘩なら他所でやってくれ
850デフォルトの名無しさん:2011/01/10(月) 13:55:56
セキュリティのどこまでがOSの責任で
どこからがユーザーの責任か区別が付いていないから
こういうトンチンカンなことを言い出す
851デフォルトの名無しさん:2011/01/10(月) 13:56:42
嗤ってるだけです
852デフォルトの名無しさん:2011/01/10(月) 13:57:57
インストールを選択した時点でユーザーの責任なんだから好きな場所にインストールさせろよ
853デフォルトの名無しさん:2011/01/10(月) 14:00:09
今度は「ClickOnceでは好きなところにインストールできないからクソだ」にシフトしたようですね
哀れ過ぎてゾクゾクしますね
854デフォルトの名無しさん:2011/01/10(月) 14:06:45
薬飲んで寝てろ。
855デフォルトの名無しさん:2011/01/10(月) 14:18:18
妄想馬鹿が何でもかんでも噛み付くから運営は全ID表示にしろw
856デフォルトの名無しさん:2011/01/10(月) 15:05:51
運営も凄いアホさを露呈したばかりで、それどころじゃありません。
857デフォルトの名無しさん:2011/01/10(月) 15:52:02
コードが合計何千行とかになって、ホイール回してるだけで指吊りそうになるんですが、
どうしたら良いんですかね
858デフォルトの名無しさん:2011/01/10(月) 15:54:33
指立て伏せ1万回
859デフォルトの名無しさん:2011/01/10(月) 15:55:20
#region使う
ブックマーク使う
アウトライン使う
ファイル分割する

お好きなのでどうぞ
860デフォルトの名無しさん:2011/01/10(月) 15:55:39
つ↓
861デフォルトの名無しさん:2011/01/10(月) 19:52:20
つ↓
862デフォルトの名無しさん:2011/01/10(月) 19:55:45
つPage
 Down
863デフォルトの名無しさん:2011/01/10(月) 21:46:55
>>857
何もしない。諦める
864デフォルトの名無しさん:2011/01/10(月) 21:51:52
>>859
ブックマークか
初めて知った
865デフォルトの名無しさん:2011/01/10(月) 23:08:49
public struct Hoge { public int A;}

class Program{
 static void Main(string[] args)
 {
  Hoge foo = new Hoge();
  Hoge bar = new Hoge();
  foo.A = 0;
  bar = Piyo(foo);
  Console.WriteLine("{0}", bar.A);
 }

 Hoge Piyo(Hoge hoge){
  return hoge.A = 1;
 }
}

とするとエラー型 'int' を型 'ConsoleApplication1.Hoge' に暗黙的に変換できません。
と言われてしまいます
どうしたら良いのでしょうか
866デフォルトの名無しさん:2011/01/10(月) 23:17:13
Hoge Piyo(Hoge hoge){
  hoge.A = 1;
  return hoge;
}

にする
867デフォルトの名無しさん:2011/01/10(月) 23:22:31
外野だがそれで対策してもこんなエラーでるな

>エラー 1
>静的でないフィールド、メソッド、またはプロパティ
> 'ConsoleApplication1.Program.Piyo(ConsoleApplication1.Hoge)'
>で、オブジェクト参照が必要です
クラスで慣れてるのですぐに対策が浮かばねえ

というかなんで値渡しの構造体なんて使うんだろう
868デフォルトの名無しさん:2011/01/10(月) 23:31:05
refでも使えば?
869デフォルトの名無しさん:2011/01/10(月) 23:38:06
OK
分かった
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public struct Hoge { public int A;}
    class Program
    {
        static void Main(string[] args)
        {
            Hoge foo = new Hoge();
            Hoge bar = new Hoge();
            foo.A = 0;
            bar = Piyo(foo);
            Console.WriteLine("{0}", bar.A);
        }
        //
        //staticが必要
        //
        static Hoge Piyo(Hoge hoge)
        {
            hoge.A = 1;
            return hoge;
            //return hoge.A = 1;
        }
    }
}
870デフォルトの名無しさん:2011/01/10(月) 23:50:30
分かってねー
871デフォルトの名無しさん:2011/01/10(月) 23:55:07
>>870
これだろ
http://msdn.microsoft.com/ja-jp/library/s35hcfh7.aspx

あってるんじゃね?

クラスといってもコンソールアプリだからなあ・・・
Piyoメソッドをstaticにすればいいだけじゃないの?
>>867のエラーは

>>865の方は対策してあるし
872デフォルトの名無しさん:2011/01/11(火) 00:35:14
値渡しとか関係ねーw
873デフォルトの名無しさん:2011/01/11(火) 00:36:31
たしか、なんとかを実装すると、ForEachとかで回す事ができるようになるっていうのが
あったんですが、なにでググレばいいっすかね?
874デフォルトの名無しさん:2011/01/11(火) 00:37:59
IEnumerableかもね
875デフォルトの名無しさん:2011/01/11(火) 00:38:47
>>867
class Hoge{
 public string x;
}

class Sample{
static void Main(){
Hoge read = new Hoge();
Hoge write1 = new Hoge();
Hoge write2 = new Hoge();

read.x = Console.ReadLine();
write1 = read;
Console.WriteLine("write1.x:{0}", write1.x);

read.x = Console.ReadLine();
write2 = read;

Console.WriteLine("write1.x:{0}", write1.x);
Console.WriteLine("write2.x:{0}", write2.x);

Console.Read();
}
}
こんな感じで、値が一緒に変化されると困るんです
876デフォルトの名無しさん:2011/01/11(火) 00:38:53
877873:2011/01/11(火) 00:40:58
>>874
thxっす。ぐぐったらでてきました。それっす。

ありがとうございます。
878873:2011/01/11(火) 00:42:19
>>876
どうもっす。IEnumなんとかでいけました。

回答どうもっす。
879デフォルトの名無しさん:2011/01/11(火) 00:43:17
880デフォルトの名無しさん:2011/01/11(火) 00:43:50
>>875 古いグラマーなのかな?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Hoge
    {
        public string x;
    }

    class Sample
    {
        static void Main()
        {
            Hoge write1 = new Hoge();
            Hoge write2 = new Hoge();

            write1.x = Console.ReadLine();
            Console.WriteLine("write1.x:{0}", write1.x);

            write2.x = Console.ReadLine();

            Console.WriteLine("write1.x:{0}", write1.x);
            Console.WriteLine("write2.x:{0}", write2.x);

            Console.Read();
        }
    }
}
881デフォルトの名無しさん:2011/01/11(火) 01:02:32
>>868-869,880
いや、なんというかそれだと考えてる動作を満たせなくて・・・
うまく説明できないので整理して出直してきます

答えてくれてありがとう
882デフォルトの名無しさん:2011/01/11(火) 01:44:37
875の何が問題で
880で何が解決するのか
誰か解説してくれるとありがたい
883デフォルトの名無しさん:2011/01/11(火) 06:15:33
てst
884デフォルトの名無しさん:2011/01/11(火) 14:35:07
>>882
>>875実行してみろ
885デフォルトの名無しさん:2011/01/11(火) 15:19:40
おれもさっぱりわからない。
同じものを参照しといて、同じになるなとはこれいかに。
886デフォルトの名無しさん:2011/01/11(火) 15:24:46
参照型の代入が同じものを参照することになると認識してなかったって話だろ
887デフォルトの名無しさん:2011/01/11(火) 15:27:43
>>885
文章読めよ
>>875は避けたいコードの例だよ

質問主が構造体を利用してreadというワークエリアぽい物を使う意図が
さっぱりわからないので無難な回答として>>880のようなことになってるだけでしょ
.net開発はそれほどやってない人が変なことやってる場合もあるし
開発はそれなりになやってるけど質問する際に全部を明かすわけにもいかないので
こういう歯切れの悪い状態なのかもしれないし
888デフォルトの名無しさん:2011/01/11(火) 15:29:11
エスパーすると、
write1 = read; を write1.x = read.x; と書くか、ICloneableを実装しろ。
889デフォルトの名無しさん:2011/01/11(火) 15:30:18
実装しろ。
890デフォルトの名無しさん:2011/01/11(火) 15:31:32
・・・(´・ω・`)
891デフォルトの名無しさん:2011/01/11(火) 15:51:09
何を勉強すればいいか教えろ

とりあえず薄い入門書を一冊読んだ
892デフォルトの名無しさん:2011/01/11(火) 15:55:26
>>891
どんな本かによる 名前教えて
893デフォルトの名無しさん:2011/01/11(火) 15:56:44
>>892ゼロからはじめるプログラミング 第2版
894デフォルトの名無しさん:2011/01/11(火) 15:58:51
>>893
専ブラでも作ったらどうだ?
C#をそこそこ使うから勉強になるぞ
895デフォルトの名無しさん:2011/01/11(火) 16:14:23
>>886-888
ありがとう。やっとわかったようなきがする。
896デフォルトの名無しさん:2011/01/11(火) 16:31:51
>>893
最終的に何作りたいかによるけど・・・

業務的に使いたいならデータ保存にDBとかXML使った名簿管理とかどう?
データの取り出し、追加更新削除や入力チェックとか
最低限業務で使用する機能が入ってる。

897デフォルトの名無しさん:2011/01/11(火) 17:18:18
C#, C♯, C#相談室 Part64
のスレ立てれんかった

テンプレのリンクとか全部書きなおしたのに・・・
立てれる人いるならテンプレどっかにアップするよ。
898デフォルトの名無しさん:2011/01/11(火) 17:24:37
>>897
じゃあ立てたんでテンプレよろしく
http://hibari.2ch.net/test/read.cgi/tech/1294734221/
899デフォルトの名無しさん:2011/01/11(火) 17:30:08
>>898
ありがとう任務完了しました(`・ω・´)ゞ
900デフォルトの名無しさん:2011/01/11(火) 17:58:51
901デフォルトの名無しさん:2011/01/11(火) 19:20:00
ドボンのTips見ながら、2つのForm間の値の受け渡しでつまづいてます。
Form1のpublicな変数の値を、モーダルで開いたForm2のコンボボックスのTextプロパティに渡したいのですが、
コンボボックスのDropDownStyleをDropDownListにしてると出来ません。
コンボボックスの上部をユーザーがエディットできない状態にしつつ、
Form1の変数を渡すことは出来ませんか?
よくある、コンボボックスを開いてデバイスを選択して、環境変数を変更するダイアログが作りたいのですが。
902デフォルトの名無しさん:2011/01/11(火) 19:24:51
まずはリファレンスを読むんだ
903デフォルトの名無しさん:2011/01/11(火) 19:34:59
MSDNは見てるんですけどね。
コンボボックスのプロパティの問題なのか、
フォームの開き方なのか、インスタンスの作り方なのか・・・
何処が原因なのか、まだよく分からないので、ヒント教えてください。
904デフォルトの名無しさん:2011/01/11(火) 19:36:30
一気に大ジャンプしてMVVMでも
905デフォルトの名無しさん:2011/01/11(火) 19:38:07
できません、じゃなくコード書け
906デフォルトの名無しさん:2011/01/11(火) 19:38:15
items.add
items.index
この二つを使うだけじゃね?
907デフォルトの名無しさん:2011/01/11(火) 19:59:13
コードってこんなんでいいですか?Form1が、
public string x = "name";
private void 環境設定ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog(this);
if (f2.DialogResult == DialogResult.OK)
処理;
f2.Dispose();
}
Form2が
private void Form2_Load(object sender, EventArgs e)
{
comboBox1.Text = ((Form1)this.Owner).x;
}

comboBox1のitemsを作るところはもう出来てるんです。
ただ、環境設定ですからまず現状を表示しないといけないので、
Form1の現状をForm2コンボボックスの上部に表示させたいのですが、(以下>>901
908デフォルトの名無しさん:2011/01/11(火) 20:18:46
>>907
それForm2とか関係ないじゃん
DropDownListスタイルだったらTextになにを設定しても表示されない
909デフォルトの名無しさん:2011/01/11(火) 20:22:55
そうなんですか?
Listからせ託したものは表示されるけど、外部からプロパティでは触れないと?
うーん、じゃあ単に表示じゃなくて、Listの中から検索して表示にしないと駄目なのかな。
910デフォルトの名無しさん:2011/01/11(火) 20:24:44
せ託 → 選択
911デフォルトの名無しさん:2011/01/11(火) 21:06:30
>>907
そのコードをコピペしてやってみたら俺のは表示された
俺も初心者だから何が原因か分からないけど俺のソース貼ってみる。

↓↓↓form1
public string x = "ヤッホー";

private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog(this);
if (f2.DialogResult == DialogResult.OK)
{
}
f2.Dispose();
}

↓↓↓form2
private void Form2_Load(object sender, EventArgs e)
{
comboBox1.Text = ((Form1)this.Owner).x;
}

Form2のドロップダウンする前のコンボボックス「ヤッホー」と表示される
912デフォルトの名無しさん:2011/01/11(火) 21:25:54
だから
>コンボボックスのDropDownStyleをDropDownListにしてると出来ません。
って書いてあるじゃん
913デフォルトの名無しさん:2011/01/11(火) 21:41:16
その通りだった
DropDownListにしてなかった すいません
914デフォルトの名無しさん:2011/01/11(火) 22:32:00
>>913
うむ。許してやる。
915デフォルトの名無しさん:2011/01/11(火) 22:37:38
何お前?ありがとうございます
916デフォルトの名無しさん:2011/01/11(火) 22:46:47
どういたしまして。カス
917デフォルトの名無しさん:2011/01/12(水) 00:07:35
ゴミ同士なかよくしろよ
918デフォルトの名無しさん:2011/01/12(水) 09:28:59
ヘルプにヘルプが必要な時もあるけど
最低限読んどけよなカス
919デフォルトの名無しさん:2011/01/12(水) 09:40:42
>>1
920デフォルトの名無しさん:2011/01/12(水) 10:18:54
C#から携帯電話の電話番号をプッシュするようなソフト
(サードパーティツールは使用不可能)て作成できませんか?
要は、プログラム内のボタンをクリックしたタイミングで接続している携帯で電話をかけられればいいのですが

今のところドコモのFOMA限定で考えています(ガラケーのほう)
WindowsPhoneならいけそうですが、そうもいかないっぽいので

PCとFOMAの接続は純正のUSB→FOMAの充電部接続するケーブルを考えています。

絶対に無理とか何らかの情報で構わないのでお願いします。


921デフォルトの名無しさん:2011/01/12(水) 10:33:27
>>920
たぶん無理だと思います。
922デフォルトの名無しさん:2011/01/12(水) 10:36:17
>>920
物理的にボタンを押す装置を作ればok
923デフォルトの名無しさん:2011/01/12(水) 10:50:36
携帯電話をモデムとしてダイヤルするとどーなるんだろ?
924デフォルトの名無しさん:2011/01/12(水) 10:51:35
レスありがとうございます。

>携帯電話をモデムとして
これが出来ればATコマンドでいけるんですが・・・

>>922
それは難しいです
925デフォルトの名無しさん:2011/01/12(水) 11:10:22
926デフォルトの名無しさん:2011/01/12(水) 12:06:25
>>925
ありがとうございます!!
こんな資料があるとは・・・・

USBハンズフリーあたりの情報からいけそうな気がしてきました。

レスくださった皆様ありがとうございました!
927デフォルトの名無しさん:2011/01/12(水) 12:09:49
>>922のいう装置はやねうらお氏が自作してたな
ボタン部分をひっぺがしてショートさせるやつだけど

>>925のような資料を元に一昔前はPCで携帯電話の
メモリー管理をするケーブルとかソフト売ってた記憶があるけど
ああいうのってもうないのかね?

あれだと確かドライバー入れればソフトは自分でも作れたような記憶が・・・
というかケーブルとドライバーさえなんとかなればFOMAだろうが単なるモデムにみえるよね?
928デフォルトの名無しさん:2011/01/12(水) 12:53:01
>>927
ショートさせるのは強引すぎますねぇ(^^;
とりあえずモデムに見えるのを期待してドライバとか入れてみます。
929デフォルトの名無しさん:2011/01/12(水) 12:59:10
今でも一応作ってるんだな
http://www.reudo.co.jp/crystal/index.html
930920:2011/01/12(水) 13:04:51
おかげさまでモデムとして認識してくれました。

これでリファレンスにのっとってATコマンドで制御できそうな感じです。

ttp://www.uproda.net/down/uproda192356.png.html

931デフォルトの名無しさん:2011/01/12(水) 13:06:30
あるプロセスがネットワークに接続しているかどうかを確認する関数ってありますか?
ググってもPC自体がが接続しているかどうかのチェック方法しかでてこなくて・・・
932デフォルトの名無しさん:2011/01/12(水) 13:18:58
NetStatの結果を取得してきたりとか駄目?
933デフォルトの名無しさん:2011/01/12(水) 13:26:19
ネットワークにアクセスするときもあるけど確認したときはたまたまコネクション張ってなかった
って場合は接続していないで良いの?
934デフォルトの名無しさん:2011/01/12(水) 18:52:14
ぶひひ
935デフォルトの名無しさん:2011/01/12(水) 21:15:05
c# 初心者です。
アプリケーションを実行中にもう一つウィンドウを出したいのですが、


namespace FromTestAppli
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form1 f = new Form1();
f.Show();
System.Threading.Thread.Sleep(5000);
f.Close();
}
}
}

というコードでウィンドウを作ったところ、作ったウィンドウが真っ白で応答なしになってしまいます。
f.Show()ではなくてf.ShowDialog()を使えば真っ白にならないのですが、1枚目のウィンドウも同時に使いたいです。
どういうコードを書けば期待した動作をしてくれますか。
936デフォルトの名無しさん:2011/01/12(水) 21:16:44
GUIスレッドでSleepは厳禁
待つならSystem.Windows.Forms.Timerでも使えばいい
937デフォルトの名無しさん:2011/01/12(水) 21:17:15
>>935
自分の複製をもう一枚表示するの?
938デフォルトの名無しさん:2011/01/12(水) 21:26:31
>>936
的確なアドバイスありがとうございました。

>>937
実際に作りたいものは少し違うのですが、大筋ではこのようなことがやりたかったのです。。

939デフォルトの名無しさん:2011/01/12(水) 21:30:12
もしかしてスプラッシュウインドウをやりたいとか・・・?
940デフォルトの名無しさん:2011/01/12(水) 22:03:33
こちらで質問していいものか分からなかったのですがこちらで2点質問させてください。

現在、ASP.NETで開発をおこなっておりそこにlog4netを導入しました。
設置環境としてはWindowsserver20008R2で
社内環境や客先で基本的には上手く動いているのですが
級ににログが出力されなくなったりすることがあります。

何かIISの設定やWebConfig等に気をつけることとかありますでしょうか?

続いて2点目なのですが、WebからClickOnceを起動するときに
401エラーが発生してしまいます。IISの設定はWindows統合認証に
設定しており、これは自社では動き、客先でエラーになっている
状態です。

分かりにくいかと思いますが、どうぞよろしくお願い致します。
941デフォルトの名無しさん:2011/01/12(水) 22:53:17
前半
ログが出力されなくなる直前のログを確認しろよ

後半
ログ見ろよ
942931:2011/01/12(水) 23:21:29
>>932
netstatで確認出来ることは知っていたのですが、それをどうやって持ってくるのかが分かりませんでした
調べたところAPIのGetExtendedTcpTableなどで出来るみたいですね
ありがとうございました
943デフォルトの名無しさん:2011/01/13(木) 09:07:09
>>942
んナめんどくさいことしなくても
こんなんじゃだめ?


using System.Text;
using System.Diagnostics;
using System.IO;

Process p = new Process();
StreamReader sr;
ProcessStartInfo startInfo = new ProcessStartInfo("netstat");
startInfo.Arguments = "-a";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
p.StartInfo = startInfo;
p.Start();
sr = p.StandardOutput;

あとはsrをお好きに
usingかいてねぇやw
944デフォルトの名無しさん:2011/01/13(木) 10:20:32
StreamReaderのReadLine()を何回か呼び出したあとに読みこんだバイト数を調べる方法を教えてください
945デフォルトの名無しさん:2011/01/13(木) 10:44:57
StreamReaderを初期化するときに使ったStreamのPositionの差分を調べる
ただし、StreamがCanSeekを支援している必要がある
946デフォルトの名無しさん:2011/01/13(木) 10:56:42
テキスト形式のファイルを読むパーサー作ったんですが
入れ子構造になった構造体をtreeviewに展開するのにすごく時間がかかります、

全部のノードで2万程なんですが、どうしたら素早く表示できるでしょうか
現状Core2 Duo 1.4GHzで30秒くらいかかります
947デフォルトの名無しさん:2011/01/13(木) 10:58:59
treeviewをなんとかモードにするとか?
948デフォルトの名無しさん:2011/01/13(木) 11:51:32
俺の作ったのはフォルダーツリーだが、最初のノードMouseEnterが来て、初めて子ノードを生成するようにした
949デフォルトの名無しさん:2011/01/13(木) 11:55:45
マルチスレッドにするといいよ
950デフォルトの名無しさん:2011/01/13(木) 12:04:45
普通に親だけ作っといて(子があるかどうかだけ判定しておく)
子ノードのクリックはしったら別スレッドで取得する

Windowsのエクスプローラのツリーがそんな感じでしょ?
951デフォルトの名無しさん:2011/01/13(木) 12:14:44
TreeViewにVirtualModeはないのか
じゃあ>>948のようなトップノードを最初に追加して必要に応じて部分的にノードを追加するしかないな

この辺が参考になるかと
http://www.atmarkit.co.jp/fdotnet/dotnettips/260createtreeview/createtreeview.html
952デフォルトの名無しさん:2011/01/13(木) 12:16:51
保持できるんなら取りあえずメモリに保持って
>>951でやれば結構楽と思うよ

メモリの容量によると思うけど
953デフォルトの名無しさん:2011/01/13(木) 12:48:00
ツリーに表示する時が遅いだけだから一度に全部展開しなければ済む話。
954デフォルトの名無しさん:2011/01/13(木) 13:56:16
どういう風に質問したらいいのかわかりませんが、
回転中心の座標を移動させることは出来るのでしょうか?
955デフォルトの名無しさん:2011/01/13(木) 13:59:47
XNAのことかー
956デフォルトの名無しさん:2011/01/13(木) 14:00:37
wpfです。
957デフォルトの名無しさん:2011/01/13(木) 14:00:54
>>954
なにを言っているか判りませんが
何とかすれば可能でしょうね
958954:2011/01/13(木) 14:08:49
うーん
回転する物体を平行移動しているのですが、
どうも平行移動する際に、回転の角度がおかしくなってしまうので、
回転中心が移動されてなく、固定されているんじゃないかなと思ったのです。

ですので、物体の平行移動と同じように回転中心を移動できれば改善されるかなと思ったのです。
959デフォルトの名無しさん:2011/01/13(木) 14:11:00
最近だとクォータニオンがあれば回転軸がどこにあろうがちゃんとまわせなかったっけ?
960デフォルトの名無しさん:2011/01/13(木) 14:11:17
だからまず回転する物体とはなんなのか説明してよ
Managed DirectXの話?
961デフォルトの名無しさん:2011/01/13(木) 14:14:31
エスパーすると、回転と平行移動の順番の問題だと思う
962954:2011/01/13(木) 14:15:54
>>959
クォータニオンで回転させているのですが、物体を移動させないときはきちんと回転させれるのですが、
移動すると平行移動しかしてないにも関わらず、変な方向にぶっ飛んでいきます

>>960
>だからまず回転する物体とはなんなのか説明してよ
すみません、何を聞かれているのかがわかりません。
WPF,C#,Direct3Dでしょうか
963デフォルトの名無しさん:2011/01/13(木) 14:16:05
数学は得意じゃないけど矩形などで中心以外の場所に回転軸を設けて回すのであれば
一旦ポリゴンを分割して回せばいいだけなんだけどな
964デフォルトの名無しさん:2011/01/13(木) 14:17:29
>>962
与え方が悪いだけのような
その場所付近のコードは晒せる?
965954:2011/01/13(木) 14:17:47
>>961
今は平行移動->回転の順番で記述してます。
966デフォルトの名無しさん:2011/01/13(木) 14:18:33
>>965
逆にしてみ
967954:2011/01/13(木) 14:22:43
>>963 >>960
理解しました。物体は振り子のようなものです。

>>964
  degree = parameter[2]

Quaternion xz = new Quaternion(new Vector3D(0, 0, 1), degree);

 Aa.OffsetX = parameter.z[0];
Aa.Rotate(xz);
968デフォルトの名無しさん:2011/01/13(木) 14:25:24
アフィン変換で拡大縮小平行移動回転するときは
拡大縮小回転の中心が原点にくるように平行移動 -> 拡大縮小 -> 回転 -> 目的の位置へ平行移動
の順で変換する
969954:2011/01/13(木) 14:26:03
>>966

やってみましたが、変わりませんでした・・・
970954:2011/01/13(木) 14:37:40
>>968
>拡大縮小回転の中心が原点にくるように平行移動
これがよくわかりませんでした。
971デフォルトの名無しさん:2011/01/13(木) 14:40:46
どっかやり方がおかしいんだろ
WPFはクォータニオンなんか直接触らなくても回転できる。わかんないなら難しいことしなくていい。
var rotation = new RotateTransform3D(new AxisAngleRotation3D(0,0,1), degree);
var translation = new TranslateTransform3D(平行移動のベクトル);
var transform = new Transform3DGroup();
transform.Children.Add(rotation);
transform.Children.Add(translation);
このtransformを適用するだけ
972デフォルトの名無しさん:2011/01/13(木) 14:52:58
>>971
やってみます。
973デフォルトの名無しさん:2011/01/13(木) 15:01:36
座標変換だかワールド変換だかを説明しなければいけない
とおもったけどTransform3DGroup.Childrenが全部やってくれるのなら
それでいいのかも
974954:2011/01/13(木) 15:15:55
>>971
できましたー!
30時間くらい悩んだのに\(^o^)/

助かりました。精進します!
975デフォルトの名無しさん:2011/01/13(木) 15:20:38
976デフォルトの名無しさん:2011/01/13(木) 15:20:42
C#でSQLiteを使ってるんですけど、
テーブル定義で、
command.CommandText = "create table Id_Name (id char NOT NULL primary key, name char)";
と、Id_Nameというテーブルを定義しました。
これでidは重複する文字は登録できなくなったのですが、
書き込むときに、
idが重複した場合エラーを
Messagebox.Showで表示したいんですが
判定条件?はどうしたらいいですか?

それから、NOT NULLにしてるので
文字が書き込まれなかった場合も
上記同様にしたいのですが
どうしたらいいですか?

参考ページなどでもいいのでお願いします!
977デフォルトの名無しさん:2011/01/13(木) 15:22:41
例外をキャッチするだけだろjk
978デフォルトの名無しさん:2011/01/13(木) 15:23:04
insert する前にselectする
979デフォルトの名無しさん:2011/01/13(木) 15:23:59
>>978
(;´д`)
980デフォルトの名無しさん:2011/01/13(木) 15:24:16
>>976
try
{
//処理
}
catch
{
//エラー処理
}
こんな感じかな
981デフォルトの名無しさん:2011/01/13(木) 15:25:10
2chブラウザの作り方教えろ
982デフォルトの名無しさん:2011/01/13(木) 15:31:47
WPFでPMDって読み込める?
983デフォルトの名無しさん:2011/01/13(木) 15:32:14
やっぱりtrycatchでないとできないですかね・・・;
他に何かあればと思ったんですが・・・
984デフォルトの名無しさん:2011/01/13(木) 15:33:09
>>978
やってみます!
985デフォルトの名無しさん:2011/01/13(木) 15:36:46
単体で動かして、量がそこまで多くないなら一覧読み込んで水際でキャッチかな?
俺は基本的に例外はかせたくないタイプ
例外は本当に例外の時だけ 捕まえれるものは捕まえたい
986デフォルトの名無しさん:2011/01/13(木) 15:42:25
987デフォルトの名無しさん:2011/01/13(木) 15:50:26
>>983
C/C++時代のようにリターンコードを見るって感じじゃないみたいね
一応try catchもcatch側で細かいエラータイプをみれるようだけど
988デフォルトの名無しさん:2011/01/13(木) 15:59:29
try{
command.CommandText = "create table Id_Name (id char NOT NULL primary key, name char)";
command.ExecuteNonQuery();
}
catch(Exception)
{
MessageBox.Show("NOT NULL or primary key ERROR!!");
return;
}

これでエラーを出すことが出来ました。
>>985さん同様例外はかせたくないのですが
データ量がこれから多くなります・・・
水際でキャッチというのもよくわからなかったので><
989デフォルトの名無しさん:2011/01/13(木) 16:00:58
>>988です!
catch(Exception)
になっているんですけど
Exception以外のほうがいいんですかね??
990デフォルトの名無しさん:2011/01/13(木) 16:04:20
もし、UnhandledExceptionとか受け取ってるなら
CatchはDuplicationExceptionとか、重複した時に(に限らず想定できるもの)起こりうるような例外だけにして、
それ以外の物はキャッチするなり、しないなりしてリソースとかを適切に処理した後、
再度スローして任せるようにしたりするのはどう?
991990:2011/01/13(木) 16:05:06
>もし、UnhandledExceptionとか受け取ってるなら
これ
もし、UnhandledExceptionとかで捕捉してるなら
の間違い
992デフォルトの名無しさん:2011/01/13(木) 16:10:21
>>991
このtrycatchの外でも
違う場所で例外が出る可能性があるので
trycatchしています。
それもExceptionになってます。
trycatchが二重になっているといえばわかるでしょうか?


DuplicationExceptionとは、初めて聞きました。
ネットで調べてみたのですが
よくわかりません・・・
catch(DuplicationException)としてみると
usingディレクトリまたはアセンブリ参照が不足しています
と出てしまいます。
何をusingすればいいですか???
993デフォルトの名無しさん:2011/01/13(木) 16:15:58
>>992
そりゃ取りあえずそれっぽい名前で書いただけだからあるわけがない

リファレンスの説明見るのが早いけど
一旦Exceptionで主キー重複例外発生させて
うけたExceptionの中身が本当は何なのかを見れば一応元の例外は判ると思うよ


あと入れ子になってる例外処理はバグとか調査の難航になると思ってるのは俺だけだろうか・・・
994デフォルトの名無しさん:2011/01/13(木) 16:35:50
>>993
(Exception e)
e = {"Abort due toconstraint violation\r\nclumn Sirial_No is not unique"}
でした。
でも表示すると長ったらしく書いてあります。
なんの例外だかわかりますか?

trycatchの二重はやっぱりよくないですか・・・。
なんの例外だかわかれば二重にしなくてもいいのですが・・・
995デフォルトの名無しさん:2011/01/13(木) 16:38:06
>>994
Sirial_Noとはidのことです!
996デフォルトの名無しさん:2011/01/13(木) 16:41:23
だからまずselectしてinsertしようとしてるIDが無いか
チェックしたほうがいいって。
いきなりDBに突っ込んで例外で判定なんてDQNだ。
997デフォルトの名無しさん:2011/01/13(木) 16:57:23
catch(SQLiteException){/*エラー表示*/}
catch(Exception){}
これで解決しそうです。

>>996さん
selectで見つからなかった場合は例外が発生しませんか?
いきなりDBに突っ込むのはまずいんですかね;


もう一つ質問です!
NOT NULLのことなんですけど
"insert into Id_Name(id, name) values (null, 'A')"
"insert into Id_Name(id, name) values ('', 'A')"
"insert into Id_Name(id, name) values (NULL, 'A')"
"insert into Id_Name(id, name) values ('NULL', 'A')"

どのパターンで書き込んでも
例外にならないんですけど
NOT NULL って何を書き込めばいいんですか?
998デフォルトの名無しさん:2011/01/13(木) 17:15:46
質問です
GCHandle.Allocで取得した領域を後から書き換える事って出来ますか?
ある構造体でAllocした領域を丸ごと同じ型の構造体データで上書きとかでもいいのですが…
999デフォルトの名無しさん:2011/01/13(木) 17:18:28
>>997

select count(id) from テーブル名 where id = @id
これで最低でも0はかえってくるんだぞ?
そうでなくてもレコードが返ってこないだけなんだから問題ない

DBのNULLは DBNull.Value ちゃうのん?
1000デフォルトの名無しさん:2011/01/13(木) 17:24:11
>>999
なるほど
Countのことなど頭になかったです!
ありがとうございます!
やってみます☆

DBNull.Valueですね
こっちもやってみます!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。