ふらっとC#,C♯,C#(初心者用) Part67
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/12/16(木) 18:23:33「どんなにくだらない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
0002デフォルトの名無しさん
2010/12/16(木) 18:27:190003デフォルトの名無しさん
2010/12/16(木) 19:10:57「乙」とは十干(じっかん、甲乙丙丁戊己庚辛壬癸)の第2番目。「きのと」とも読む。五行は木、陰陽は陰。草花を象徴し、協調・社交・和合を意味する。
または甲で始まる順位の第2位。「乙種」「甲乙つけがたい」
乙>>1
0004デフォルトの名無しさん
2010/12/17(金) 10:37:49早速質問なんですが、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;
どなたか分かる方いらっしゃいますか?
説明下手ですいません。。。
0005デフォルトの名無しさん
2010/12/17(金) 10:44:1300064
2010/12/17(金) 10:55:26新規の業者に名前空間が付いていることと、既存の取込方法をしようして
取り込みたいのでどうぞよろしくおねがいいたします。
0007デフォルトの名無しさん
2010/12/17(金) 11:21:390008デフォルトの名無しさん
2010/12/17(金) 11:26:22そのクラスが独自に存在するならそういうデータを作ってそのクラスの型を調べればいいんじゃね?
0009デフォルトの名無しさん
2010/12/17(金) 11:30:190010デフォルトの名無しさん
2010/12/17(金) 11:33:46それなら簡単だし。。。
0011デフォルトの名無しさん
2010/12/17(金) 11:35:45昔のようにメモリかつかつな時代でもないんだし
従来のロジック+新しいロジックの併用運用すればいいじゃん
新しい方でもいけるならそっちに切り替えるとかすればいいんだし
0012デフォルトの名無しさん
2010/12/17(金) 11:51:310013デフォルトの名無しさん
2010/12/17(金) 14:33:27XmlSerializerに食わせれば一発だよ
0014デフォルトの名無しさん
2010/12/17(金) 15:28:24今のストリームの位置を変数かなんかに
保存してbinaryreader でそこから読んでいきたいんですが
可能ですか?素直にbinaryreader で一文字ずつ読んで
改行文字を追うべきでしょうか
0015デフォルトの名無しさん
2010/12/17(金) 15:30:250016デフォルトの名無しさん
2010/12/17(金) 15:48:05便利そうなので・・・
0017デフォルトの名無しさん
2010/12/17(金) 16:11:07StreamReaderはある程度の量をバッファーに読み込みながら処理しているんだけど、
そのバッファーをどこまで使ったかはプライベートになっているので外部からではわからない。
文字列の長さから位置を割り出そうとしても、改行文字が\nか\r\nかわからないし、
エンコーディングの関係でずれる可能性があるので難しい。
リフレクション使えばなんとかなるかもしれないけど、
素直にbinaryreaderで一文字ずつ読んで改行文字を追っていったほうが楽そう。
0018デフォルトの名無しさん
2010/12/17(金) 16:14:14というかテキストとバイナリの境目って何で判断するのって話だな
テキストデータってのはバイナリコードをあるルールに従って扱ってるだけの話だし
作ってる人間はここまでがテキストここからはバイナリと思ってても
コードだけみたんじゃあわからないぞ
0019デフォルトの名無しさん
2010/12/17(金) 16:15:33streamreader.CurrentEncoding.GetByteCount使えば文字列の長さは割り出せるね
0020デフォルトの名無しさん
2010/12/17(金) 16:28:38だいたいそれ使うならオンメモリだからストリーム戻す必要なんかない
最初から別のbyte配列に読んでしまえばいいだけのこと
0021デフォルトの名無しさん
2010/12/17(金) 16:29:37テキストとしてみたとき
4行だけ読めば良い、とか特定の文字の出現ででテキストとして解釈できる
範囲が確定できる場合を想定してるんです
0022デフォルトの名無しさん
2010/12/17(金) 16:53:12class 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();
}
}
}
}
0023デフォルトの名無しさん
2010/12/17(金) 18:38:530024デフォルトの名無しさん
2010/12/17(金) 18:44:15どの言語から来たかしらないがクラスを覚える必要があるけど
基本はそんなに難しくないと思うのでここでも一読を
http://ufcpp.net/study/csharp/index.html
まあどの言語から来るかにもよるんですけどね・・・・
0025デフォルトの名無しさん
2010/12/17(金) 18:45:44MSが用意したクラスを覚える必要があるけど
0026デフォルトの名無しさん
2010/12/17(金) 18:50:11標準講座C#
978-4798114736
なんかどう?
0027デフォルトの名無しさん
2010/12/17(金) 18:56:31>>24>>26
なかなか分かりやすそうでよさげですね
そこそこ良いお値段するけど中身も良さそうなのでちょっと書店で目を通してみます
0029デフォルトの名無しさん
2010/12/17(金) 22:59:020030デフォルトの名無しさん
2010/12/17(金) 23:09:28明らかに消せそうだったので
もう直せましたし
0031デフォルトの名無しさん
2010/12/17(金) 23:17:04保障されるの?
0032デフォルトの名無しさん
2010/12/18(土) 00:38:15GoogleのAPIでGoogleカレンダーをc#で表示するにはどうしたらいいんでしょうか。SDKはDL済み、環境はVS2008です
いろいろいじってみたのですが全くわかりませんでした。
0033デフォルトの名無しさん
2010/12/18(土) 06:45:52Bitmap bmp = (略
pictureBox1.Image = bmp;
それともこうしなきゃだめ?
Bitmap bmp = (略
Image old = pictureBox1.Image;
pictureBox1.Image = bmp;
old.Dispose();
0034デフォルトの名無しさん
2010/12/18(土) 08:21:01web系のAPIってぶっちゃけると単なるURLでしょ
>>33
なんのためのGCかと
0035デフォルトの名無しさん
2010/12/18(土) 09:02:27なんか懐かしいw
DCにブラシやペンを設定〜
0036デフォルトの名無しさん
2010/12/18(土) 09:12:57c#でもブラシやペン使うときはDisposeするよ
http://dobon.net/vb/dotnet/graphics/fillrectangel.html
Dispose書き忘れが嫌ならusingで囲っちゃえばいいだけだし
PictureBoxに渡してあったImageは新しいImageを渡すことで
切り離されていずれGCが開放するだろうけど
0037デフォルトの名無しさん
2010/12/18(土) 10:33:36同じ処理したことあるけど、考えたことなかった。
確かに Dispose() したくなるね。
pictureBox.Image の set 時に、 勝手にDispose()してくれるとうれしいけど、どうだろう。
以下のサンプルではDispose()してないから、不要かな。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.picturebox.image%28v=VS.80%29.aspx
0038デフォルトの名無しさん
2010/12/18(土) 10:46:49勝手にDisposeされたら怖いわ
二つのImageを状況に応じて切り替えとかできねぇじゃん
たまに替えるだけなら基本はGCまかせでOK
ビューアとかならちゃんと以前のはDispose
003933
2010/12/18(土) 15:03:24それなりにぱかぱかBitmap生成して切り替えるからDispose必要ですね(精神衛生上)
コードが冗長になって凹むけど一応書いておこう
0040デフォルトの名無しさん
2010/12/18(土) 15:10:15Imageが占有するメモリはGCが関知しないから解放がすごく遅れる可能性が高い
0041デフォルトの名無しさん
2010/12/18(土) 15:23:19MSDNサンプルを実行してみたのですが,
ttp://msdn.microsoft.com/ja-jp/library/9ha04z01.aspx
table.Columns.Add(column);
でAddしたcolumnはどこに格納されるのでしょうか?
table.Columnsの中身を探しても見つかりません.
0042デフォルトの名無しさん
2010/12/18(土) 15:43:29table.Columns.Count は増えてる?
0043デフォルトの名無しさん
2010/12/18(土) 15:50:04foreach (DataColumn dc in table.Columns)
MessageBox.Show(dc.ColumnName);
とすると中身も表示されます.
ただ,デバッグ画面のローカルって所を探してもAddした情報がないので,
どこに格納されているのかなと思いまして.
0044デフォルトの名無しさん
2010/12/18(土) 16:01:02格納されているのは、認識通りでいいよ。
ちゃんと探せば出てくる。表示名がインターフェースに変わって、見つけづらいのかも。
0045デフォルトの名無しさん
2010/12/18(土) 16:55:49Bitmap bmp = (略
pictureBox1.Image.Dispose();;
pictureBox1.Image = bmp;
じゃだめなん?
PictureBox使ったことないからよくわからんけど
0046デフォルトの名無しさん
2010/12/18(土) 17:08:32ゆっくりやるとダメ。早くやれば問題がでづらいかも。
少し気持ち悪い。
004733
2010/12/18(土) 19:22:11まとめるとこう?
oldで挟むよりは気持ちいい
Bitmap bmp = (略
using(Image old = pictureBox1.Image){
pictureBox1.Image = bmp;
}
Bitmapクラスの内部がどうなってるか知らないけど
BITMAPハンドル保持してるとかだったら
自前でDisposeしないと危ないね
0049デフォルトの名無しさん
2010/12/18(土) 20:41:52なんでPictureBox使えなくなるの?
HTML使った事ないから、まとな画像処理できねぇよwww
0050デフォルトの名無しさん
2010/12/18(土) 20:43:01たいがいなんでもできるよ
0051デフォルトの名無しさん
2010/12/18(土) 21:02:16画像処理するだけならPictureBoxはいらないでしょ。
0052デフォルトの名無しさん
2010/12/18(土) 21:05:28ブラウザはサーバーが生成したHTMLをただ表示してるだけで
C#のコードは全部サーバー側で動作するんだよ? Windowsアプリとは全く違うんだけど理解してる?
ブラウザ側でC#動かして画像処理とかやりたいならSilverlightでも使わないと
0053デフォルトの名無しさん
2010/12/18(土) 21:14:17お前アホか。GUIコンポーネントがサーバで使えるわけねーだろ。
WebとHTMLを基礎から勉強してこい。
0054デフォルトの名無しさん
2010/12/18(土) 21:22:33silverlightググってみた、やりたかった事全部行けそうです!
マジで感謝!MS最高だわwww
>>51
PictureBox使わないと背景画像に透明の画像かぶせて、
その上に点とか線描画できないと思ってたんだ
>>52
そりゃ.NETって言うぐらいだから、Webアプリ用のフレームワークでしょ?
俺バカだけどそんぐらい理解してるっつーの!
0055デフォルトの名無しさん
2010/12/18(土) 21:31:52SilverlightはWinFormsとは比べ物にならない表現力があるけど
ASP.NET以上にWinFormsの知識が役に立たない
0056デフォルトの名無しさん
2010/12/18(土) 23:28:460057デフォルトの名無しさん
2010/12/19(日) 00:06:09Flashが辛うじて残るかどうかだ
0058デフォルトの名無しさん
2010/12/19(日) 00:10:17HTML5は軸が違うから比べても意味ない。
Windows 系の GUI が Silverlight になってく。
ただ、置き換わるのは数年後かねぇ。
「Silverlight の時代」って言うにはちょっと早い。
0059デフォルトの名無しさん
2010/12/19(日) 00:12:240060デフォルトの名無しさん
2010/12/19(日) 00:12:36簡単にビジネスアプリケーションを配布するための仕組みになった
ClickOnceに近い位置づけ
0061デフォルトの名無しさん
2010/12/19(日) 00:19:46極端な話だけどやろうと思えはWinFormsやWPFもSilverlightの上で動かせるね
単にクライアント専用の簡易版.NETを目指してるんだよ
0062デフォルトの名無しさん
2010/12/19(日) 00:20:540063デフォルトの名無しさん
2010/12/19(日) 01:01:05それがたぶん、数年後。
0065デフォルトの名無しさん
2010/12/19(日) 01:14:340066デフォルトの名無しさん
2010/12/19(日) 01:18:130067デフォルトの名無しさん
2010/12/19(日) 01:33:50WP7かなんかと勘違いしてるだろ
SilverlightはVS2008や2010で正式にサポートされてるし
Express版のWebDeveloperもVC#と同時にリリースされてる
0068デフォルトの名無しさん
2010/12/19(日) 01:39:4049ですが、時代はWPFだと思うよ!!
試しにWPFでプロジェクト作成したら
普通にIEから、Windowsフォーム呼び出せたwww
Win32も使えるみたいだし、既存のWindowsアプリをWeb化するならWPF最強じゃん!!
おかげで1人月の案件が3日で終わりそうwww
0069デフォルトの名無しさん
2010/12/19(日) 01:44:21それ、対応してるブラウザー少ないよ。
それでいいって言われる案件なら、普通にデスクトップ版の WPF でいいと思うんだけど。
ClickOnce 配布いいよ。
0070デフォルトの名無しさん
2010/12/19(日) 02:34:46安心してwpf勉強するわ。
0071デフォルトの名無しさん
2010/12/19(日) 10:27:010072デフォルトの名無しさん
2010/12/19(日) 12:13:39XBAPなんてウインドウ枠がIEになっただけ
0073デフォルトの名無しさん
2010/12/19(日) 12:21:36silverlightにしろwpfにしろ、クライアントだけで完結するものをwebアプリと呼ぶのかどうか
0074デフォルトの名無しさん
2010/12/19(日) 12:30:18webサービスじゃなイカ
0075デフォルトの名無しさん
2010/12/19(日) 12:31:18いや、WCF サービスとかでサーバーサイド作っておけば、
例えクライアント側がデスクトップアプリであっても Web 化と呼べるとは思うが。
0076デフォルトの名無しさん
2010/12/19(日) 13:29:56処理がサーバなのかクライアントなのかなんて関係ない。
0077デフォルトの名無しさん
2010/12/19(日) 13:40:13俺らから見たらそうでも一般の利用者からしたらWeb化=ブラウザ上で使えるって思うかと
0078デフォルトの名無しさん
2010/12/19(日) 13:41:400079デフォルトの名無しさん
2010/12/19(日) 13:54:15あほな顧客が多くて困るって奴ですね。
いや、困らないのか、むしろその方がぼったくれて。
0080デフォルトの名無しさん
2010/12/19(日) 13:58:210081デフォルトの名無しさん
2010/12/19(日) 15:15:45可能な環境がないと動かせないからなw
何の意味もありません
0082デフォルトの名無しさん
2010/12/19(日) 15:36:31サービス化してデータだけプログラム的に取れるようにしとくことだと思う。
正直、HTML5が理念通りに完全に互換性保てるとは思えないし、
UI 技術はすぐに入れ替わるし、プラットフォームごとに変わる。
で、そのサービスを受け取る側のクライアントアプリは、
もうクロスとか気にせず、WPF とかで作ればいいと思う。
凝ったUI作るなら、多重開発した方がマシ。
0083デフォルトの名無しさん
2010/12/19(日) 15:49:37>>76-77みたいなのはそんなにおかしくないな
0084デフォルトの名無しさん
2010/12/19(日) 15:52:06業務系だとあれよ、Webですキリッって言いつつ、
帳票印刷の部分はClickOnceでデスクトップアプリ起動とかが普通よ。
0085デフォルトの名無しさん
2010/12/19(日) 16:00:44うるせえ
0086デフォルトの名無しさん
2010/12/19(日) 16:11:02まさにそういうニーズに応えるのがSilverlightでしょ
妙なイメージが付いちゃってるから名前変えればいいのに
0087デフォルトの名無しさん
2010/12/19(日) 16:16:161人月が3日でできたとか言ってたらダメってことだ。
0088デフォルトの名無しさん
2010/12/19(日) 17:21:06は?残りの時間、自分の好きな事できるんだぜ
全然ダメじゃ無いじゃんwww
0089デフォルトの名無しさん
2010/12/19(日) 17:33:40「1人月が3日になります」なら普通納得してもらえるけどもね。
0090デフォルトの名無しさん
2010/12/19(日) 17:45:37じゃあ安くしてって言うでしょ。
それでも1人月払うよっていうならすごいいい客だな。
しっかり捕まえておかないと。
0091デフォルトの名無しさん
2010/12/19(日) 18:27:030092デフォルトの名無しさん
2010/12/19(日) 18:44:33未だにLinq、ADO.Net,SQLがさっぱりわからないし
必要と思ったこともない
ラムダ式は一応やるけど
0093デフォルトの名無しさん
2010/12/19(日) 18:50:23存在すら知らないとそれは選択肢を減らすことになるからどうかと思うけど。
0094デフォルトの名無しさん
2010/12/19(日) 18:51:06DBを使う必要がなければとことん必要無い
0095デフォルトの名無しさん
2010/12/19(日) 18:51:400096デフォルトの名無しさん
2010/12/19(日) 18:53:07リストを保存したりするのはよくあることだと思うんだけど
そういうときに使うと便利なの?
0097デフォルトの名無しさん
2010/12/19(日) 19:15:310098デフォルトの名無しさん
2010/12/19(日) 19:19:36そこまでのデータ扱うか?ってあるけどなw
肥大化してもっさりとか言われながらw
0099デフォルトの名無しさん
2010/12/19(日) 19:21:390100デフォルトの名無しさん
2010/12/19(日) 19:37:410101デフォルトの名無しさん
2010/12/19(日) 19:40:33DBと関係なくLINQ便利だよな
0102デフォルトの名無しさん
2010/12/19(日) 19:44:120103デフォルトの名無しさん
2010/12/19(日) 20:17:060104デフォルトの名無しさん
2010/12/19(日) 20:26:390105デフォルトの名無しさん
2010/12/19(日) 20:46:37プログラミングの専門書も書いている
しかし、SQLは知らん
0106デフォルトの名無しさん
2010/12/19(日) 20:52:59ちょっとしたことなら一々DBなんて使わない、めんどくさい
SQL触らないヤツは触らない
0107デフォルトの名無しさん
2010/12/19(日) 20:55:44操作対象がDBのテーブルだろうが、コレクションだろうが関係ない。
0108デフォルトの名無しさん
2010/12/19(日) 21:00:270109デフォルトの名無しさん
2010/12/19(日) 21:00:410110デフォルトの名無しさん
2010/12/19(日) 21:05:27めっちゃ簡単。サーバーいらんし。
>>109
そうなの?
0111デフォルトの名無しさん
2010/12/19(日) 21:11:040112デフォルトの名無しさん
2010/12/19(日) 21:43:090113デフォルトの名無しさん
2010/12/19(日) 21:51:08個人でDBが必要なことなんてないだろ
0114デフォルトの名無しさん
2010/12/19(日) 22:24:05組み込みの軽量データベースは使うだろ。
0115デフォルトの名無しさん
2010/12/19(日) 22:37:200116デフォルトの名無しさん
2010/12/19(日) 23:26:13InitializeComponetで各コントロールのサイズを設定した後
this.ResumeLayout(false);this.PerformLayout();すると解像度に合わせてサイズが
変更されます。その時、ビルドした環境の解像度がどこかに記憶されているように
見えるのですが、一体どういう仕組みになっているんでしょうか?
0117デフォルトの名無しさん
2010/12/19(日) 23:30:12なんでそう思ったの
0118デフォルトの名無しさん
2010/12/19(日) 23:31:30これかえ?
0119116
2010/12/19(日) 23:45:53>>117
140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、140dpi以外で実行するとスケーリングされるからです。
0120116
2010/12/19(日) 23:46:52140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、96dpi以外で実行するとスケーリングされるからです。
0121116
2010/12/20(月) 01:47:57140dpiでビルドした時、140dpi以外で実行するとスケーリングされて、
96dpiでビルドした時、96dpi以外で実行するとスケーリングされるからです。
0122デフォルトの名無しさん
2010/12/20(月) 09:35:59EXEの実行時にエラーはは出ません。
いろいろ調べたのですが、「BackgroundWorker を使用してスレッド セーフな呼び出しを行うには」
というのを試したのですが、うまくいきませんでした。
いまいち警告の内容もわからないのですが、MSDNの表現が解りにくくて・・・
どこか解り易い解説かサンプル知りませんか?
警告の出るコントロールの処理をBackgroundWorkerのイベントハンドラで実行するようにするだけじゃ駄目なんですかね?
0123デフォルトの名無しさん
2010/12/20(月) 09:37:39デザイン時と実行時にコンストラクタが動いているためだと思いますが、これを回避するにはどうしたら良いでしょうか?
現在は初期化用メソッドを用意して、外部から呼び出してもらうことで回避しています。
0124デフォルトの名無しさん
2010/12/20(月) 10:00:39フォーム.Designer.csに以前追加した際のデータが残っているのであわせて削除する
0125123
2010/12/20(月) 10:22:11ありがとうございます。
ただDesignModeは、コンストラクタでは常にfalseを返すようです。
とりあえず、コンストラクタでアイテムをクリアして追加するようにして対処します。ありがとうございました。
0126デフォルトの名無しさん
2010/12/20(月) 10:30:52http://stackoverflow.com/questions/282014/net-winforms-design-time-rules
0127123
2010/12/20(月) 10:51:41以下のようにして対処できました。ありがとうございます!
if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.Equals("VCSExpress")) {
//デバッグ時
} else {
//実行時
}
0128デフォルトの名無しさん
2010/12/20(月) 12:57:18まずは例外がどこから発生してるのか確かめる。
BackgroundWorkerのDoWorkのイベントハンドラは別のスレッドで実行されるからコントロールを触ってはいけない。
コントロールを触るにはControl.Invokeを使ってもいいけど、BackgroundWorkerならReportProgressメソッドを呼んで
ProgressChangedイベントでコントロールを触る方がいい。
ProgressChangedとRunWorkerCompletedイベントはUIスレッドで実行されるのでコントロールを直接触っていい。
0129デフォルトの名無しさん
2010/12/20(月) 23:15:430130デフォルトの名無しさん
2010/12/20(月) 23:16:400131デフォルトの名無しさん
2010/12/20(月) 23:18:590132デフォルトの名無しさん
2010/12/20(月) 23:23:350133デフォルトの名無しさん
2010/12/20(月) 23:24:02はじめて便利そうに思えた
0134デフォルトの名無しさん
2010/12/20(月) 23:29:090135デフォルトの名無しさん
2010/12/20(月) 23:36:59とあるサイトは学生名簿とか作るわけねーよってつっこみたくなる
0136デフォルトの名無しさん
2010/12/20(月) 23:39:16SQL構文、匿名メソッド、デリゲート、ラムダ式を知らないと理解はできないよな
でも、最初は丸暗記でいいんじゃね?
0137デフォルトの名無しさん
2010/12/21(火) 00:08:210138デフォルトの名無しさん
2010/12/21(火) 00:10:030139デフォルトの名無しさん
2010/12/21(火) 00:13:35実用的な例
B= A.Select(a => "[AV]"+a);
0140デフォルトの名無しさん
2010/12/21(火) 00:15:190141デフォルトの名無しさん
2010/12/21(火) 00:17:540142デフォルトの名無しさん
2010/12/21(火) 01:08:05その後でfor/foreach使うのって、副作用がある処理をしたいとか、LINQで書くには複雑になる場合。
foreachの使用頻度が減るのは当然じゃないか?
0143デフォルトの名無しさん
2010/12/21(火) 01:21:45最後が Aggregate系で終わる場合も多いしね。
ただ、結局最後が foreach なんなら、 .ForEach() とかは使わず普通に foreach したい。
0144デフォルトの名無しさん
2010/12/21(火) 01:25:48定義済みデリゲート 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
0145デフォルトの名無しさん
2010/12/21(火) 01:34:31これはわかりやすい。感謝。
0146デフォルトの名無しさん
2010/12/21(火) 01:42:23× MDSN
○ MSDN
0147デフォルトの名無しさん
2010/12/21(火) 01:51:090148デフォルトの名無しさん
2010/12/21(火) 01:58:25比較と混ざるからアローでいいのに
0149デフォルトの名無しさん
2010/12/21(火) 02:06:25自動でデリゲートに入れてくれるの?
0150デフォルトの名無しさん
2010/12/21(火) 02:06:36仕様に合うか分かんないしあんま自信ないけど。。。
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new ObjectCollection Items { get { return base.Items; }}
デザイナではItemsのコードが生成されないからコンストラクタで追加してても記録されない。
newはあまり使いたくないけど。
0151デフォルトの名無しさん
2010/12/21(火) 02:10:08自分でdllは作ったことがあるけど
それはメソッド名を知っているから利用できるわけで
どんなメソッド名を作られるかもわからない他人のdllのメソッドを
既に完成した実行ファイルから呼び出すのがどうやってるのかわかりません
上手く説明できないので意味が伝わっているか心配です
0152デフォルトの名無しさん
2010/12/21(火) 02:18:06・どうやって作った本体を
・どう参照しているのか
によるので一概には言えない
0153デフォルトの名無しさん
2010/12/21(火) 02:19:08.NetのDLLなら参照設定に追加すれば使える。
開発時に手に入らないものであれば、
実行時にロードしてクラスやメソッドを呼ぶ。
0154デフォルトの名無しさん
2010/12/21(火) 02:19:08hoge(int n) で hoge(10+5); って書いたら n=10+5 じゃん。
hoge(Func<int,int> f) で hoge(a=>a*a); って書いたら f=a=>a*a だべさ。
0155デフォルトの名無しさん
2010/12/21(火) 03:48:29本体でインターフェース定義しといて
それを実装したプラグインを作ってもらえばいい
このへんが参考になるんじゃないかな
http://dobon.net/vb/dotnet/programing/plugin.html
0156デフォルトの名無しさん
2010/12/21(火) 05:17:04型推論の結果、自動で適切な型に入れてくれる。
0157デフォルトの名無しさん
2010/12/21(火) 11:22:34WMP.Libを参照設定
フォームを作成し、そのなかにWMPコントロールを配置します
0158デフォルトの名無しさん
2010/12/21(火) 11:41:18なるほど、インターフェースですか
C++のhファイルがインターフェースにあたるのかな?
あるソフトのプラグインsdkを見ても
hファイルが入っているだけなんです
C++はよくわからないですが、コードを見た感じインターフェースっぽいですね
足がかりが出来ました。ありがとう。
0159デフォルトの名無しさん
2010/12/21(火) 11:43:180160デフォルトの名無しさん
2010/12/21(火) 12:47:21プラグイン側も本体の方もアホみたいに簡単
0161デフォルトの名無しさん
2010/12/21(火) 13:06:41C#製のプラグイン対応アプリてないですよね
C++の得意分野なのかなと思っていました
0163デフォルトの名無しさん
2010/12/21(火) 13:51:33VS2010
だいたいC#で書かれててプラグインにはMEF使ってる
0164デフォルトの名無しさん
2010/12/21(火) 18:01:070165デフォルトの名無しさん
2010/12/21(火) 18:50:100166デフォルトの名無しさん
2010/12/21(火) 18:56:140167デフォルトの名無しさん
2010/12/21(火) 20:06:44〜の文字列の長さによってメニューの幅が広がりますが、〜の文字列が短くなってもメニューの幅が
広がったままになってしまい、
│ '〜〜' を検索 (無駄なスペース) │
のように右に無駄なスペースができてしまいます。
このスペースを消したいのですがどうしたらよいでしょうか?
ちなみにオーナードローはしていません。また、他のメニュー項目のTextはこの項目のTextより短いです。
0168デフォルトの名無しさん
2010/12/21(火) 20:14:380169デフォルトの名無しさん
2010/12/21(火) 20:17:15すいません書き忘れました、WinFormsです。
0170デフォルトの名無しさん
2010/12/22(水) 00:34:27最初から自動変換あってもよかったのにね。
途中入りなのが、過去のコード資産が微妙に残念に見える。
0171デフォルトの名無しさん
2010/12/22(水) 01:13:40�AWindowsFormsApplication1とやらに作成したフォームを別のプロジェクトから表示するにはどうしたらいいですか
もーわけわかんねーです
0172デフォルトの名無しさん
2010/12/22(水) 01:38:16�@参照設定ではなく、ツールボックスのアイテムの選択。
COMコンポーネント一番下のWMPコントロールをツールボックスに追加&フォームに貼り付け
再生は、
this.axWindowsMediaPlayer1.URL = @"C:\hoge.wmv";
"axWindowsMediaPlayer1"でググれば使い方はいくらでも出てくる。
�A別のプロジェクトの参照設定から、プロジェクトタブのWindowsFormsApplication1を選択
0173デフォルトの名無しさん
2010/12/22(水) 07:56:14ありがとうございます
�Aはそのとおり設定出来ました(動かないけどなんとなく解りました)
�@訂正
(1)
フォームに対して、動的なコントロールを追加する場合に、WMPコントロールの記述はどのように行えば良いですか?
(2)
>>157
0174デフォルトの名無しさん
2010/12/22(水) 08:17:28Form1.Designer.csにaxWindowsMediaPlayer1を追加するコードが生成されてるから、
好きなタイミングで呼べば動的な〜かと。
0175デフォルトの名無しさん
2010/12/22(水) 11:27:38ブラウザからコピーしてペーストすると、書式もペーストされるため、困ってます。
Paste() のオーバーライドが不可だったため、今はKeyDownでの独自ペースト処理を検討しています。
0176デフォルトの名無しさん
2010/12/22(水) 12:15:20状況としては別個で、次のそれぞれについて、必要なコードが知りたいのです
a.あらかじめ作成したフォームにWMPコントロールをコードから追加
b.フォームをコード上で作成し、コードからWMPコントロールを追加
c.コードから参照設定を行う
d.c.を行いb.を実装する(要手動ビルド)
0177デフォルトの名無しさん
2010/12/22(水) 13:07:07タブ型ブラウザじゃなくて、チェックボックス式ブラウザだ。
くくく、これはすげえ賜物だぞ・・ すげえ、気になるだろ?
でも、教えてやんねえ。
0178デフォルトの名無しさん
2010/12/22(水) 13:09:30普通のTextBoxをmultiLineにするのじゃあかんのけ?
0179デフォルトの名無しさん
2010/12/22(水) 13:12:19そういう意味じゃないと思いますw
それほど昔じゃないけどここか相談すれで似たようなのを見たな・・・
ブラウザが扱うのはhtmlという整形言語、リッチテキストもリッチテキストというフォーマット
この辺を吸収したければドロップ情報をそのままリッチテキストに渡すんじゃなく
書式を加工するとかしないとだめだと思うよ
0180175
2010/12/22(水) 13:40:41TextBox よりも RichTextBox の方が機能が多そうなので、RichTextBoxを使っています。
例えばUndoなどは、RichTextBox の方が良いので。
>>179
PlainTextにするプロパティはなさそうですね。
Ctrl+V を独自実装して回避してみます。
ありがとうございました。
0181デフォルトの名無しさん
2010/12/22(水) 13:48:57VSで参照設定すると、使いやすいようにラッパーが自動生成される。
それを使わずにということになると、COMを触る必要があって結構難しい。
VSで参照設定したときに生成されるDLLの中身をReflectorかなんかで読んでみたらいいと思う。
ずっと簡単な方法としては、WPFのMediaElementをElementHostで利用する手もあるよ。
0182デフォルトの名無しさん
2010/12/22(水) 14:06:53アプリ起動時にwebbrowserを内部的に用意して
D&Dで貰ったhtmlをwebbrowser入れて処理させた後
WebBrowser.Document.Body.InnerText
で貰ってきたらどうだろう?
ヘッダー部分はでてこないが、body以下は確か全部でてきたはず
0183デフォルトの名無しさん
2010/12/22(水) 14:15:46http://ideone.com/Mtynz
0184デフォルトの名無しさん
2010/12/22(水) 14:43:060185デフォルトの名無しさん
2010/12/22(水) 22:24:49EM_SETTEXTMODEでTM_PLAINTEXTを設定するといいかも
http://ideone.com/zXwcT
0186175
2010/12/22(水) 22:54:29ありがとうございます。そのやり方で確認できました。
VBとかはプロパティであった気がしましたが、裏では持ってたんですね。
>>182
ありがとうございます。
今回は単純にリッチをプレーンにしたかっただけなので。。。
0187デフォルトの名無しさん
2010/12/23(木) 00:07:11よかったね
Ctrl+Vは他にコンテキストメニューとか
場合によってはShift+Insertもあったりして面倒
0188デフォルトの名無しさん
2010/12/23(木) 02:16:06お礼はいらないよ
0189デフォルトの名無しさん
2010/12/23(木) 02:33:16どういたしまして
0190デフォルトの名無しさん
2010/12/23(木) 15:31:03いえいえ
0191デフォルトの名無しさん
2010/12/24(金) 14:48:21「現在の位置でテキストの内容を 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>
0192デフォルトの名無しさん
2010/12/24(金) 15:00:36その下の文字列を順に読んで、タグなどが見つかるたびに「なんか見つかった」と通知してくる感じ
そのカーソルの位置が現在の位置。取得しても特に意味はないよ
XmlReaderは扱いが難しいのでLINQ to XMLでも使った方がいいと思う
でもそれ置換するだけなら正規表現でよくないか
XMLとして扱う必要無いような
0193デフォルトの名無しさん
2010/12/24(金) 15:24:06m => "<updated>" + DateTime.Parse(m[1].ToString()).ToString("HH時mm分ss秒") + "</updated>");
合ってるかは知らん
もしDateTime.Parseが使えなかったらParseExactで
0194デフォルトの名無しさん
2010/12/24(金) 15:41:03targetFiles.GroupBy( _ => i++ / 100 )
を見せられたのですが、"_"の意味がわからず頭を抱えております。
やりたいことを考えたら、ラムダ式の結果でグループわけ、
ラムダ式は、アイテムごとにi++して、/100で云々、だとは思うのですが…
よろしくお願いします(´・ω・`)
0195191
2010/12/24(金) 15:46:31なんとなく分かりました
XMLはネットのRSSを
XmlReader reader = XmlReader.Create("http://www.***.com/index.rss");
で取得してそのままdatagridviewに表示してます
XMLであればタグの中身だけ抽出して変換で加工できるかな思いました
stringやStringBuilderに変換し加工しても問題ないのでそっちの方法でやってみます
>>192さん>>193さんありがとうございました
0196デフォルトの名無しさん
2010/12/24(金) 15:51:15意味はないだろ
>>193でいうならm=>でmという名前の引数を宣言する代わりに_という名前の引数を宣言してるだけ
使わないからいかにも無意味そうな名前にしてるんでしょ
0198デフォルトの名無しさん
2010/12/24(金) 20:52:22俺ならそういう時は、 ( dummy => i++ / 100 ) って書くかも。
0199デフォルトの名無しさん
2010/12/24(金) 20:54:08どうしてもLINQ使いたかったらSliceみたいな拡張メソッド作るわ
0200デフォルトの名無しさん
2010/12/24(金) 21:52:53c#で習得した値を元に行いたいのですが、どのような方法がありますか?
c#のコード→javascriptへ値を渡す→値を元にcss(displayプロパティ)を書き換えるjavascriptを実行
というのは可能なんでしょうか?
0201デフォルトの名無しさん
2010/12/24(金) 21:53:130202デフォルトの名無しさん
2010/12/24(金) 23:18:13コードを書いてくれ・・・
0203デフォルトの名無しさん
2010/12/24(金) 23:23:200204デフォルトの名無しさん
2010/12/25(土) 00:06:550205デフォルトの名無しさん
2010/12/25(土) 00:16:25var dev = Math.Sqrt(data.Average(d => Math.Pow(d - ave, 2)));
クエリ式使ってないけどいいよね
0206デフォルトの名無しさん
2010/12/25(土) 02:30:050207デフォルトの名無しさん
2010/12/25(土) 04:42:39たとえばjsに
function showmsg(msg) {
alert(msg);
}
ってのがあったとしたらC#からは
webBrowser1.Document.InvokeScript("showmsg", new object[]{"hello!"});
で呼び出せる。
0208デフォルトの名無しさん
2010/12/25(土) 07:35:370209デフォルトの名無しさん
2010/12/25(土) 09:06:17長い
2文字で頼む
0210デフォルトの名無しさん
2010/12/25(土) 09:09:28ラムダ式で使わない変数を_で置くってのは割と定型句なので、慣れといたほうがいいよ
0211デフォルトの名無しさん
2010/12/25(土) 09:27:27!(a==b)
0212デフォルトの名無しさん
2010/12/25(土) 09:38:590213デフォルトの名無しさん
2010/12/25(土) 11:02:130214デフォルトの名無しさん
2010/12/25(土) 11:27:240215デフォルトの名無しさん
2010/12/25(土) 11:30:38わかりやすく <- とかどうだろうか
不等号&マイナスと区別が付かないとかそんなことは知らない
0216デフォルトの名無しさん
2010/12/25(土) 11:36:100217デフォルトの名無しさん
2010/12/25(土) 11:38:01その辺は使ってるしなあ・・・
0218デフォルトの名無しさん
2010/12/25(土) 11:42:150219デフォルトの名無しさん
2010/12/25(土) 11:53:28等号を =、代入の方がを他のに変えるためには
まず代入の少ない言語設計が必要。
0220デフォルトの名無しさん
2010/12/25(土) 12:30:02PASCAL流に:=がいいんじゃね
>>219
代入を少なくしてもなくすことはできない
0221デフォルトの名無しさん
2010/12/25(土) 12:31:410222デフォルトの名無しさん
2010/12/25(土) 12:39:210223デフォルトの名無しさん
2010/12/25(土) 12:47:17うわ、いやだ
0224デフォルトの名無しさん
2010/12/25(土) 13:35:10�@
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前提という事ですか?
0225デフォルトの名無しさん
2010/12/25(土) 14:37:521)
バインディングはデータとビューを分けましょうってのが根底にあるからじゃね
2)
うん、BindingSource前提
どうしても使いたくないってのならCurrencyManagerもあるけどめんどくさいだけ
0226デフォルトの名無しさん
2010/12/25(土) 14:59:27試してみます
ありがとうございました
0227デフォルトの名無しさん
2010/12/25(土) 15:58:28>1)
なるほど、�@はビュー制御だから違うでしょ!って事ですか。
でもChangedイベントでの同期って初期処理で一度呼んでやらんといけないのが微妙。
(もはや書き慣れてしまいましたが)
>2)
CurrencyManager調べてみます。
>BindingSource前提
INotifyPropertyChangedを実装したクラスなども目的から外れてはいないですよね?
デザイナ上で指定できないだけで。
0228デフォルトの名無しさん
2010/12/25(土) 16:01:45FormのPaintイベント発生時にDrawpath&FillPathでForm上に縁取り文字を描画して
描画した縁取り文字の形でフォームをくり抜きたいんですが「e.Graphics」に描画されてる縁取り文字のパスのとり方がよくわかりません
ご存知の方はどうかこの卑しい豚に助言というエサをお与えください。
【現状のそーす】
ttp://ideone.com/EqxNJ
これだとAddString時点のパスでくりぬかれるので、
FillPath後のパスでくりぬくようにしないといけないっぽいけれど
やり方が全然わからない(´・ω・`)ボスケテ
0229デフォルトの名無しさん
2010/12/25(土) 16:34:32塗ってから縁取りすりゃいいんじゃね?
//内側を塗る
Brush fillBrush = new SolidBrush(Color.White);
e.Graphics.FillPath(fillBrush, gp);
//縁を描画
Pen drawPen = new Pen(Color.Blue, 4);
e.Graphics.DrawPath(drawPen, gp);
0230デフォルトの名無しさん
2010/12/25(土) 17:17:04http://ideone.com/LHFfy
0231デフォルトの名無しさん
2010/12/25(土) 18:03:49グアアア、こんなことだったのか
ありがとう、できたよ(´;ω;`)
0232デフォルトの名無しさん
2010/12/25(土) 18:59:150233デフォルトの名無しさん
2010/12/25(土) 19:41:550234デフォルトの名無しさん
2010/12/25(土) 20:12:45画面に画像貼り付けると他の部品とサイズがずれるのは時代遅れだと思うんだ。
0235デフォルトの名無しさん
2010/12/25(土) 20:16:420236デフォルトの名無しさん
2010/12/25(土) 20:19:32プログラムからPictureBoxのサイズ変更してたりすると死ぬ。
0237デフォルトの名無しさん
2010/12/25(土) 20:49:590238デフォルトの名無しさん
2010/12/25(土) 21:25:59中途半端なDPI仮想化のせいでデザイン時に設定したサイズ(ピクセル)と実行時に
取得したサイズ(ピクセル)が一致しなかったりする。
いろんな画面部品のデフォルトサイズが小さくて詳細ディスプレイだと見づらくなることがある。
WinFomクラスも頑張っているけど、ときどき落とし穴があるんだよなあ。
WPFだとデザイン時も実行時も一貫してDPIが仮想化されているから気にする必要がない。
0239デフォルトの名無しさん
2010/12/25(土) 21:33:350240238
2010/12/25(土) 21:42:58俺は結構気になるな。
http://msdn.microsoft.com/ja-jp/windows/dd630126
ここで例として貼り付けられている表示の崩れの幾つかはWinFormsでも起こるんだけど、
こういうのでイラっとしたことない?
WPFならこれらの問題とおさらばできます(←怪しい商法のようなセリフだ)
0241デフォルトの名無しさん
2010/12/25(土) 21:44:45まずはXPで字がにじむのをどうにかしてほしい
0242デフォルトの名無しさん
2010/12/25(土) 21:47:320243デフォルトの名無しさん
2010/12/25(土) 21:48:150244デフォルトの名無しさん
2010/12/25(土) 21:48:59WinForm完全互換のWPFが出たら流行るだろう
0245デフォルトの名無しさん
2010/12/25(土) 21:49:56もう直ってるよ
0246デフォルトの名無しさん
2010/12/25(土) 22:16:000247デフォルトの名無しさん
2010/12/25(土) 22:19:340248デフォルトの名無しさん
2010/12/25(土) 22:19:38MFCとWinFormsアプリ以外は問題ないと思っていたが、ブラウザの
拡大表示使ってたらSilverlightのサイズ計算もおかしくなるので困っている。
IEのDPI対応を何とかしてくれ。
0249デフォルトの名無しさん
2010/12/25(土) 22:24:110250デフォルトの名無しさん
2010/12/25(土) 22:30:51文化オリエントの臭いがついているところ。
0251デフォルトの名無しさん
2010/12/25(土) 22:50:3096DPIじゃない環境が一般的な時代になったんだし、
崩れて読めなくなったりしない程度には対応を進めるべきだとは思うけどね。
0252デフォルトの名無しさん
2010/12/25(土) 22:55:52それはForm.PerformLayoutによるニセ仮想化じゃなくてVistaの仮想化だよね?
WinFormのニセ仮想化をオフにする必要があるけど、どうやるの?
0253デフォルトの名無しさん
2010/12/25(土) 23:04:01VSのフォームアプリケーションでテキストに入力後にボタンクリックで
処理を走らせて結果を別のウィンドウで出すのってどうすればできますか?
WebのPOSTを受け取って画面表示みたいなイメージです
0254デフォルトの名無しさん
2010/12/25(土) 23:11:59フォームの表示方法
Form2 frm = new Form2();
frm.Show();
と、プロパティの
Public string Shorikekka{set;get;}
組み合わせる。
Form2 frm = new Form2();
frm.Shorikekka = "成功";
frm.Show();
0255デフォルトの名無しさん
2010/12/25(土) 23:18:07難しいぞ。姉妹スレでもフォーム間の受け渡しができなくて困ってる奴がいる。
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
0256デフォルトの名無しさん
2010/12/25(土) 23:47:26まあそのうち慣れるさ
0257デフォルトの名無しさん
2010/12/26(日) 00:35:530258デフォルトの名無しさん
2010/12/26(日) 02:07:43似た形にはなると思うけど
0259デフォルトの名無しさん
2010/12/26(日) 02:19:02>>255のスレ見ればなぜシングルトンなのかわかる
0260デフォルトの名無しさん
2010/12/26(日) 02:20:300261デフォルトの名無しさん
2010/12/26(日) 02:35:290262デフォルトの名無しさん
2010/12/26(日) 04:42:06最初の頃はこういうの書いてたけど
こういうものが必要な時点で設計がおかしいんだよな
0263デフォルトの名無しさん
2010/12/26(日) 10:59:48何かへんか? kwsk
0264デフォルトの名無しさん
2010/12/26(日) 11:08:28別に問題ないだろ
MSが提供するのは基本的なクラスであって必要とあれば継承して足せばいいだけ
実際Formアプリ作るときはFormクラスを継承したForm1とかにごりごりコード書くんだし
0265デフォルトの名無しさん
2010/12/26(日) 11:30:21推測を大いに含むが
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()
}
}
こういうことが言いたいんじゃないの
設計として正しいかは知らん
0266デフォルトの名無しさん
2010/12/26(日) 11:35:53文字列渡すだけですむんだったら>>254の方が優れてる
0267デフォルトの名無しさん
2010/12/26(日) 11:40:48場合によるけど確かにウザいと思う
0268デフォルトの名無しさん
2010/12/26(日) 11:41:30Modelを渡すようにした方がいいとは思うけど、簡単なメッセージだけなら
Form2はModelに依存させず文字列だけ受け取る方がいいと思う。
0269デフォルトの名無しさん
2010/12/26(日) 11:45:59これがプログラマの病んだ姿です
0270デフォルトの名無しさん
2010/12/26(日) 12:31:44そのくせ説明も聞かない。
怒りがおさまった頃に説明すると、「あ〜そう言うこと」って。。。
0271デフォルトの名無しさん
2010/12/26(日) 13:12:140272デフォルトの名無しさん
2010/12/26(日) 14:11:090273デフォルトの名無しさん
2010/12/26(日) 14:17:000274デフォルトの名無しさん
2010/12/26(日) 14:21:530275デフォルトの名無しさん
2010/12/26(日) 14:29:590276デフォルトの名無しさん
2010/12/26(日) 14:32:300277デフォルトの名無しさん
2010/12/26(日) 15:34:03DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.IV = ByteResize(iv);
des.Key = ByteResize(key);
0278デフォルトの名無しさん
2010/12/26(日) 17:36:54コンテキストメニューとしても使っているとメインメニューを表示するとき
勝手に閉じてしまうことがあるんですが、どうすればいいのでしょうか?
0279デフォルトの名無しさん
2010/12/26(日) 18:00:27うん
だから使い終わったら配列はゼロで埋める
パスワード用のStringはどうしようもないけどね
WPFではSecureStringで入力を受け取れるコントロールあるけど
0280デフォルトの名無しさん
2010/12/26(日) 18:31:39Rectangleで箱の中に箱を描いた物を二つ並べて、
FillPath(Winding)で塗りつぶすとAddStringで描いた物だけ
中身が塗りつぶされないのはなんでなのん?
DrawPathで書いても見た目全く同じだし、パスポイント数も同じなのだけど。
違いが分からないれしゅ。
0281デフォルトの名無しさん
2010/12/26(日) 18:55:500282デフォルトの名無しさん
2010/12/26(日) 19:03:44コードくれ
0283デフォルトの名無しさん
2010/12/26(日) 19:07:11なんか考え方が80年代のMSベーシックのグラフィックだなw
たぶんなんでそんな風に考えるのか今の人には逆に理解できない気がする。
0284デフォルトの名無しさん
2010/12/26(日) 19:09:28WinFormも描画早すぎてあれだがベタな描画よ
WPFはしらんが
0285280
2010/12/26(日) 19:22:33Graphics 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モードでも塗りつぶされない図形は何が違うのか知りたかったのです
0286デフォルトの名無しさん
2010/12/26(日) 19:35:12わからん
http://ideone.com/Gl85f
0287デフォルトの名無しさん
2010/12/26(日) 19:35:53何がしたいんだ?
0288デフォルトの名無しさん
2010/12/26(日) 19:38:30http://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
0289デフォルトの名無しさん
2010/12/26(日) 19:41:06>Winding モードでは、交差部分ごとにパス セグメントの向きを考慮します。
>時計回りで交差部分ごとに 1 を加算し、反時計回りで交差部分ごとに 1 を減算します。
>結果が 0 でない場合、その点は塗りつぶし領域またはクリップ領域の内側と見なされます。
>0 の場合、その点は塗りつぶし領域またはクリップ領域の外側にあります。
>図形が時計回りか反時計回りかは、その図形のセグメントの描画順序で決まります。
ということだそうだ
0290デフォルトの名無しさん
2010/12/26(日) 19:46:01こんなん当たり前じゃん。
アホかといいたくなる。
0291デフォルトの名無しさん
2010/12/26(日) 19:56:21GP.Reverse();
GP.AddRectangle(new Rectangle(10, 10, 80, 80));
これで口とおなじになる
0292デフォルトの名無しさん
2010/12/26(日) 20:00:29確かTrueTypeフォントってPathの塊じゃなかったっけ?
0293デフォルトの名無しさん
2010/12/26(日) 20:06:08ロのようなのは中が塗りつぶされない
そもそも単純なRectangleを重ねたのとは違う
http://www.geocities.jp/y_hobby_2/blogimage/truetypefonteditor.png
0294280
2010/12/26(日) 20:10:38>>289で謎が解けました
ありがとう!!
>>291確かにそれでもいけますね
パスをとじた形の、閉じ方が分かっていなかったのです。
解決しました、ありがとうございました!
0295デフォルトの名無しさん
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の流れにした方がいいのか
どちらの方が良いと思いますか??
0296デフォルトの名無しさん
2010/12/26(日) 20:32:09>Aイベント発生→BイベントハンドラーでBイベント発生→Xの流れにした方がいいのか
Aイベント発生→MGRイベントハンドラーでMGRイベント発生→Xの流れにした方がいいのか
です・・・。
0297デフォルトの名無しさん
2010/12/26(日) 20:34:26AにMGRのインスタンスを渡してAの中から通知用のMGRのprivateメソッドを呼ぶだけでいい
Xについては、MGRがXの存在を知っているんだったらイベント使わなくても単にMGRがXのメソッドを呼ぶ
MGRとXを切り離したいならMGRのイベントにXのイベントハンドラを登録する
0299デフォルトの名無しさん
2010/12/26(日) 20:52:31・クラスaがクラスbに依存してる(aの中でbを明示的に使ってるという意味)
・bはaに依存させたくない
・bの状態変更をaに通知したい
ときに使うものなんだよね
そういうケースってそれほど多くない
bがaに依存していいなら、イベントなんて使わずに普通にbがaのメソッドを呼べばいい
0300デフォルトの名無しさん
2010/12/26(日) 21:04:34基本依存ないけど、
>そういうケースってそれほど多くない
これは言いすぎだと思う。
分野によってはイベント多用するよ。
0301デフォルトの名無しさん
2010/12/26(日) 21:39:070302デフォルトの名無しさん
2010/12/26(日) 21:48:150303デフォルトの名無しさん
2010/12/26(日) 21:54:460304デフォルトの名無しさん
2010/12/26(日) 22:13:39アセンブリとかクラスを参照してるってのは別の話。
イベント使ってる時点でオブジェクトは参照されるけども、
アセンブリやクラスの参照は切れる。
これが大事。
0305デフォルトの名無しさん
2010/12/26(日) 22:48:220306デフォルトの名無しさん
2010/12/26(日) 23:03:13Type t = typeof(Unko) のことか?
0307デフォルトの名無しさん
2010/12/26(日) 23:24:17どういう書き方をしたら良かったでしょうか?
0308デフォルトの名無しさん
2010/12/26(日) 23:27:370309デフォルトの名無しさん
2010/12/26(日) 23:33:34慣れてくると自然に余計な依存を持たないような設計するようになる。
個人だったり小規模だったりするなら好きにやればいい。
0310デフォルトの名無しさん
2010/12/26(日) 23:42:46csc.exe /r:Xxx.dll とか、VS上での「参照の追加」の参照。
>>307
SecureString のこと?
宣言というか、型だけど。
0311デフォルトの名無しさん
2010/12/26(日) 23:44:50それです!
昔、HPで見た覚えがあったのですが書き方がわからなかったのです
ありがとうございます
0313デフォルトの名無しさん
2010/12/27(月) 00:09:23という意味ではないでしょうか
0314デフォルトの名無しさん
2010/12/27(月) 00:28:54あんたにはUnkoというコテハンを使う権利をやろう
0315デフォルトの名無しさん
2010/12/27(月) 00:42:040316デフォルトの名無しさん
2010/12/27(月) 00:44:25それも含めて「参照を切る」でしょ。
0317デフォルトの名無しさん
2010/12/27(月) 00:47:380318デフォルトの名無しさん
2010/12/27(月) 00:52:57(今はなしてるのは、なんでイベントなんて使うかって話よね?<参照切り)
Java が断固デリゲートを入れようとしなかったのも、インターフェイス至上主義だからだし。
そんな Java も最近、デリゲート入れようとしてるわけで、やっぱ欲しいのよ、デリゲート。
要は、
・インターフェイスだとマルチキャストがめんどくさい
・AddListner/RemoveListenr 書くの面倒
→ setter/getter の代わりにプロパティ作ったのと一緒で、イベント作った
0319デフォルトの名無しさん
2010/12/27(月) 01:03:06もう自分が語りたい事を勝手に語ればいいんじゃね
0320デフォルトの名無しさん
2010/12/27(月) 01:05:52DLLの粒度によるんだと思うよ。
DB関連のDLLとログ出力のDLLで、
DBの方はエラーログ出力とかしてて、
ログ出力先がDBだったら相互参照になるよね。
1DLLに収めちゃえば問題ないのに。
>>317の言う通りだと思うけどめんどくさい
0321デフォルトの名無しさん
2010/12/27(月) 01:14:00とりあえず、少なくともVS使う限りではプロジェクトの循環参照はできないから、
そこは>>315-316が正しいんじゃないの?
どうも「依存関係の逆転の原則」とか言うときの依存って言葉と参照って言葉を混同した人がいたのが
話の始まりなのかなという印象。
0322デフォルトの名無しさん
2010/12/27(月) 01:32:18class A {
B b;
...
class B {
A a;
...
っていうのが嫌だと言いたかった。それだけなんだ
0323デフォルトの名無しさん
2010/12/27(月) 01:39:31302からおかしくなったんだよな
0324デフォルトの名無しさん
2010/12/27(月) 01:40:59俺は何もかわっちゃいねえよ。
0325デフォルトの名無しさん
2010/12/27(月) 01:43:370326デフォルトの名無しさん
2010/12/27(月) 01:47:460327デフォルトの名無しさん
2010/12/27(月) 02:42:050328デフォルトの名無しさん
2010/12/27(月) 02:57:080329デフォルトの名無しさん
2010/12/27(月) 03:08:09class 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 }
とか。
0330デフォルトの名無しさん
2010/12/27(月) 03:11:11標準ライブラリに入ってるインターフェイス/デリゲートを使えば、
直接的な依存は完全に切れる。
あと残りの課題は
A a; a.b = new B();
とか
a.handler += new B().SomeMethod;
とかを誰がやるか。
この辺り解消するのが WPF のデータバインディングとか、MEF。
0331デフォルトの名無しさん
2010/12/27(月) 03:20:42アセンブリ単位では循環参照してもいい。でもアセンブリ単位境界を越えて循環参照するのは設計ミスなので禁じられている。
0332デフォルトの名無しさん
2010/12/27(月) 03:24:36デリゲートはメソッドを抽象化したい時に使え
0333デフォルトの名無しさん
2010/12/27(月) 03:30:46それだとBがAのメソッド呼んでた部分がなくなっちゃうよ
>>328から
interface IA {}
class A : IA { B b = new B(this); }
class B {IA a;}
こんな感じのを想像したんだけど
そもそも依存しあう設計が間違ってるってこと?
0334デフォルトの名無しさん
2010/12/27(月) 03:32:42A側にメッセージ返すインターフェイスなりイベントもA側のアセンブリに書けばOK。
アセンブリの循環参照は避けれる。
あとは、双方向バインディングとかの出番。
0335デフォルトの名無しさん
2010/12/27(月) 03:49:01よく解らんが(´・ω・`)
例えばBがTCP通信しててデータ受け取ったよ的な通知とか
BがFormでボタン押されたよ的な通知とかはIBにイベント持たせればいいってことかね
0336デフォルトの名無しさん
2010/12/27(月) 03:52:52TCP通信ならイベントね。
Form なら、WPF のコマンドのバインディングがいいと思う。
0337デフォルトの名無しさん
2010/12/27(月) 03:57:48相互に依存って言ってたからお互いの複数のメソッドを利用しているように見えちゃった
0338デフォルトの名無しさん
2010/12/27(月) 04:14:36WPFじゃない場合はIAみたいなのを作るってこと?
>相互に依存って言ってたからお互いの複数のメソッドを利用しているように見えちゃった
そのつもりですた
0339デフォルトの名無しさん
2010/12/27(月) 08:04:47自作のアプリが、他の市販のアプリと同時に使うと、
市販のアプリを誤動作させてしまうようです。
まだ自分は初心者で、自分のやりたいことを調べてやってるだけで、
安全対策も何もしてないので、原因はこっちにあるのでしょう。
こういう場合、原因の突き止め方とか、他に影響を与えない安全対策とか
参考になるサイトとかあれば教えてください。
0340デフォルトの名無しさん
2010/12/27(月) 08:09:53選ぶのは言語使ってるができないのもあるww
まじワロタ、wwwひ
0341デフォルトの名無しさん
2010/12/27(月) 08:29:51大丈夫か?なんかへんだぞ
0342デフォルトの名無しさん
2010/12/27(月) 10:24:28何か特別な変なことをやっているんだろう。
一般的な対策とか原因なんかない。何も考えずに作っても普通はそんなことありえないんだから。
0343デフォルトの名無しさん
2010/12/27(月) 10:29:34習得が大変そうな感じがするので迷っています。
フォームでも結構満足していますがさらに
便利になったりするのでしょうか?(難しいのが楽に作れたり)
0344デフォルトの名無しさん
2010/12/27(月) 10:42:05結局は慣れだよ
0345デフォルトの名無しさん
2010/12/27(月) 10:43:14WPFは外観の自由度が高い。コントロールの見た目を変えようとして
WinFormsで大量のコードを書いた経験があるなら、そういうことはWPFの方が圧倒的に楽。
それとデータバインディングが強力。コントロールとデータの紐付けは全部バインディングで作れる。
WPF特有の部分は必要に応じて追々覚えていけば大したことない。
0346デフォルトの名無しさん
2010/12/27(月) 10:47:26確かにデザインはすごく楽
モッサリさえなくなればいいんだが・・・
0347デフォルトの名無しさん
2010/12/27(月) 11:03:590348デフォルトの名無しさん
2010/12/27(月) 11:05:58{
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
0349デフォルトの名無しさん
2010/12/27(月) 11:07:26だからってGC.Collect入れると余計に遅くなるよ
気にしても無駄
0350デフォルトの名無しさん
2010/12/27(月) 11:08:30アクセスしてみればいいw
0351デフォルトの名無しさん
2010/12/27(月) 11:09:56気にしない・放置が基本
0352デフォルトの名無しさん
2010/12/27(月) 11:12:28http://ideone.com/DHPdZ
0353348
2010/12/27(月) 11:15:36メモリ上からd=nullだけで全部消えるのかと少し期待したのですが残念
0354デフォルトの名無しさん
2010/12/27(月) 11:19:49あくまで参照を切り離しただけでGCはまだ持ってる可能性はあるよ
ただ、参照を切り離したので>>352を実行するとエラーになる
0355デフォルトの名無しさん
2010/12/27(月) 11:23:27リテラルはCLRが参照保持してるので絶対に消えない
0356デフォルトの名無しさん
2010/12/27(月) 13:26:270357デフォルトの名無しさん
2010/12/27(月) 13:28:34できるでしょ
でもシリアライズ用のクラスってpublicでいろいろ開放してないと使えなかったような
0358デフォルトの名無しさん
2010/12/27(月) 13:36:08かつ
読み書きのできるパブリックフィールドとプロパティだけだったと思うんだけど
嘘だったらごめん
0359デフォルトの名無しさん
2010/12/27(月) 13:41:58俺はインスタンス化しないとシリアライズできないと思ってるけど。
インスタンス化されたクラス?がよくわからん。
0360デフォルトの名無しさん
2010/12/27(月) 13:51:25あるクラスをシリアライズする場合に、プロパティにインターフェイスを継承している
項目をシリアライズしたいのです。
(Ex)
public class TextClass
{
public stirng Ex1 { get; set }
public int Ex2 { get; set; }
public IInterface { get; set; }
}
のようなクラスをシリアライズしたいのです。。
0361デフォルトの名無しさん
2010/12/27(月) 13:52:36public IInterfaceがとあるインターフェイスを継承したものを格納しています
0362デフォルトの名無しさん
2010/12/27(月) 13:54:41ありがとうございます。
複雑な外観・バインディング(データの同期?)
などをしたい時にWPFを勉強しようと思います
0363デフォルトの名無しさん
2010/12/27(月) 14:25:36インターフェースを格納したいって話?
0364デフォルトの名無しさん
2010/12/27(月) 14:31:35XmlSerializerは構築されるときにシリアライズ・デシリアライズするすべての型を知ってる必要がある
interfaceとかabstract classがメンバに含まれるなら、そのメンバが取り得るすべての型を教えておかないといけない
普通はXmlElement属性でそういうメンバにこういう型こういう型があり得るってことをマークする
属性ベースで静的に設定できない場合、XmlSerializerのコンストラクタ引数で指定する
> public IInterfaceがとあるインターフェイスを継承したものを格納しています
IInterface以外(だけ)を継承してたらびっくりだ
0365デフォルトの名無しさん
2010/12/27(月) 14:57:03>>364ありがとうございます。XmlElementは3.0からのサポートなので
2.0で開発している現在は使えれませんね;w;
コンストラクタの引数の方法で試してみたいと思います。
0366デフォルトの名無しさん
2010/12/27(月) 15:18:43> >>364ありがとうございます。XmlElementは3.0からのサポートなので
> 2.0で開発している現在は使えれませんね;w;
んなことない
XmlElement属性(XmlElementAttributeクラス)は.NET 1.0から存在する
0367デフォルトの名無しさん
2010/12/27(月) 15:22:430368デフォルトの名無しさん
2010/12/27(月) 16:11:200369デフォルトの名無しさん
2010/12/27(月) 16:11:520370デフォルトの名無しさん
2010/12/27(月) 16:56:41C/C++でいうところの関数ポインタだよ
0371デフォルトの名無しさん
2010/12/27(月) 17:22:450372デフォルトの名無しさん
2010/12/27(月) 18:19:180373デフォルトの名無しさん
2010/12/27(月) 18:20:18+とか-で登録削除可能なので違うといえば違うんだけどねw
0374デフォルトの名無しさん
2010/12/27(月) 18:27:01デリゲートは関数ポインタ+呼び出し先のインスタンスへのポインタ
0375デフォルトの名無しさん
2010/12/27(月) 20:41:13に含まれているSPUtility クラスを使ったプログラムをC#で作った場合、
Windows SharePoint Services 3.0をインストールしていないパソコンでも動きますか?
0376デフォルトの名無しさん
2010/12/27(月) 20:55:22チュートリアル : オブジェクトによるダイアログ ボックス情報の一括取得
ttp://msdn.microsoft.com/ja-jp/library/cakx2hdw.aspx
0377デフォルトの名無しさん
2010/12/27(月) 20:59:21SPUtilityクラスが含まれてるDLLはSharePoint Servicesに含まれてるんだろ?
動くわけないじゃん
当該DLLのローカルコピーを配布してしまえば動くかもしれないけど
おそらくライセンス違反(要確認)
0379デフォルトの名無しさん
2010/12/27(月) 22:03:280380デフォルトの名無しさん
2010/12/27(月) 22:38:48調べてるうちにWPFの勉強したくなりました。
XAMLは意外と馴染みやすかったので大丈夫そうです。
機能面がいまいち分からないのですが、
これ便利・かなり使うからやっとけって機能ありませんか??
0381デフォルトの名無しさん
2010/12/27(月) 23:06:17というわけでWPFスレへどうぞ
0382デフォルトの名無しさん
2010/12/27(月) 23:28:54{
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()使用宣言をした上でこれを入れても上手く行きません。
どなたか入れ方等のアドバイスを頂けませんでしょうか?全くのド素人なのでメチャクチャな事を言っていたらすみません。
0383デフォルトの名無しさん
2010/12/27(月) 23:37:28デバッグ確認が毎回出てうざいんだけど
無効に出来ませんか?
0384デフォルトの名無しさん
2010/12/27(月) 23:41:120385デフォルトの名無しさん
2010/12/27(月) 23:42:170386デフォルトの名無しさん
2010/12/27(月) 23:43:26http://dobon.net/vb/dotnet/form/keypreview.html
http://sourceforge.jp/projects/cs2h/svn/view/Tetris/Tetris/Form1.cs?view=markup&root=cs2h
0387デフォルトの名無しさん
2010/12/28(火) 01:13:50ページに入れた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を使っていることがそもそも間違っているのかもわかりません
スレ違いでしたら申し訳ありませんが、宜しくお願いします
0388デフォルトの名無しさん
2010/12/28(火) 07:06:21コントロールじゃないただのhiddenを置いても、Request.Paramsに反映されるはず
どのDOMイベント/JavaScript関数で処理するのがベストかは忘れたんで自分で調べてね
0389デフォルトの名無しさん
2010/12/28(火) 12:06:01正規表現を使う場合は、最初にヒットしたものを置換というのは調べればできそうなのですが、
使わない場合はたとえば
string s = "ccc\naaa\nbbb\naaa\n";
s = s.Replace("aaa","ddd");
とやると両方のaaaが置換されてしまいます。
これを最初のaaaや2番目のaaaだけ置換するというのはできないでしょうか?
0390デフォルトの名無しさん
2010/12/28(火) 12:07:42いきなり置き換えじゃなく検索して列挙した後お好きなように調理すればいい
0391デフォルトの名無しさん
2010/12/28(火) 12:10:44あーーーーなるほど!
ReplaceじゃなくてIndexOfでやればいいんですね。
ありがとうございます。
0392デフォルトの名無しさん
2010/12/28(火) 13:19:00Ver1,2,3,4…としたいです。それぞれのバージョンは残していきたいです。
今のところ既存のフォルダをコピーしてフォルダ名とプロジェクト名を変更していきながら作っていこうかと思っているのですが、
このような場合のスマートな方法があるなら、教えてください。
0393デフォルトの名無しさん
2010/12/28(火) 13:20:280395デフォルトの名無しさん
2010/12/28(火) 14:02:210396デフォルトの名無しさん
2010/12/28(火) 14:34:19{smartassembly} とういうソフトで、
難読化されたアセンブリをソースコードレベルに戻したいんですが
どうすればよいでしょうか?
また、解除できるなら、難読化解除を100パーセント防ぐにはどうしたらいいでしょうか?
0397デフォルトの名無しさん
2010/12/28(火) 15:00:560398デフォルトの名無しさん
2010/12/28(火) 15:35:10しかし、マルチスレッドを用いるプログラムや、インポートしたアセンブリ、
プラグイン等でも簡単にデバッグが行える
VisualStudioでコンパイルできることを想定した場合、その方法だと
実現できるでしょうか?
Reflector等で、メソッドやフィールドの難読化された名前は
見られてしまうのは仕方ないかもしれません。
結局有効なのは、上記のsmartassembly他と同様に、
実行速度を犠牲にし
メソッドの開始時点に不要なジャンプ命令を組み込むしかないのかもしれません
0399デフォルトの名無しさん
2010/12/28(火) 15:54:46重要な情報を隠すという意味ではローカルである限り、どんな暗号化でも完全にはならないし
0400デフォルトの名無しさん
2010/12/28(火) 17:02:34Reflectorや、spices.NET等のツールを用いて
IL以外のC#やVB等の言語で
メソッドの中身を容易に見れなくしたいのです。
例えばrefleectorであれば
"// This item is obfuscated and can not be translated."
が表示されるか、または例外を発生させるようにしたかったのです。
0401デフォルトの名無しさん
2010/12/28(火) 17:44:04参考になるサイトや、参考書などありましたら教えていただけたら幸いです。
0402デフォルトの名無しさん
2010/12/28(火) 17:45:13C#のAPI一覧とかのってるサイトあったら教えてください お願いします。
0403デフォルトの名無しさん
2010/12/28(火) 17:46:540404デフォルトの名無しさん
2010/12/28(火) 17:47:43C#とAPI(Win32API)との関係をよく分かってないだろ
0405デフォルトの名無しさん
2010/12/28(火) 18:07:55ここを参考にテキストボックス内へファイルのドラッグ&ドロップというのはできたのですが、
フォルダのドラッグ&ドロップで中身のファイル名を取得するというのがわかりません。
最終的にDragDropイベント・ハンドラ内の
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
この部分をフォルダがドロップされてもファイルがドロップされても取得できるようにしたいのですが
どうしたらいいでしょうか?
System.IO.Directory.Exists(d))で分岐させればいいのかなとは思うのですが、
e.Effect = DragDropEffects.Copy;
この部分にどうつなげるかわかりません。
0406デフォルトの名無しさん
2010/12/28(火) 18:08:06MenuItemクラスの Shortcutプロパティの値は、
Shortcut列挙体のメンバー以外は指定できないのでしょうか?
0407デフォルトの名無しさん
2010/12/28(火) 18:12:31http://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のコード検索もかなり使えます。
0408デフォルトの名無しさん
2010/12/28(火) 18:24:18C#でWin32APIを使うには、dllを定義をしないといけないんだよ。
PInvokeてサイトをググって、サンプルコード探すのが速いかな。
ほかにマーシャリングって知識も必要かもしれない。
おれもよく分からないんだけど、その辺調べたら使えるようになった。
0409デフォルトの名無しさん
2010/12/28(火) 18:33:47private 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
{
}
}
}
0410デフォルトの名無しさん
2010/12/28(火) 18:57:29できるかどうか不明ですが
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);
}
0411デフォルトの名無しさん
2010/12/28(火) 21:33:00位置を測定するプログラムを書いています.
現在接続中の無線の強度を獲得することは出来たのですが,
接続していない他の無線の強度の獲得の仕方がわかりません.
別のところに繋ぎ変えないでやるという制約がありますが,どうでしょうか.
よろしくお願いします.
0412デフォルトの名無しさん
2010/12/28(火) 21:39:50byte配列に格納したwavデータをPlaySoundで再生してたんですが、
☆PlaySound(wavData.wavVolChange(bytes, vol), 0, SND_MEMORY | SND_SYNC);
PlaySoundだと再生と停止は出来ても、一時停止ができないことがわかりました。
しかし、一時停止可能な再生方法を調べてみても、やり方がさっぱりわかりません。
もしもbyte配列のwavデータを再生、停止、一時停止可能な再生方法をご存知の方がいましたら、
この卑しい豚に助言というエサをお与えください。
0413デフォルトの名無しさん
2010/12/28(火) 21:48:04できました!!ありがとうございます!!!
0414デフォルトの名無しさん
2010/12/28(火) 21:50:270415デフォルトの名無しさん
2010/12/28(火) 21:51:390416デフォルトの名無しさん
2010/12/28(火) 21:54:520417デフォルトの名無しさん
2010/12/28(火) 21:57:16つまりどういうことだ?
0418デフォルトの名無しさん
2010/12/28(火) 22:12:260419デフォルトの名無しさん
2010/12/28(火) 22:15:03DirectAudio
XAudio
ActiveXのWMP
WPFのMediaElement(一番簡単)
0420デフォルトの名無しさん
2010/12/28(火) 22:16:500421デフォルトの名無しさん
2010/12/28(火) 22:28:40ありがとうございます
下から試してみます
0422デフォルトの名無しさん
2010/12/28(火) 23:38:070423デフォルトの名無しさん
2010/12/29(水) 00:11:01イベントハンドラを複数登録した場合の実行順は未定義だと思います。
という事はカスタムコントロールではイベント拾っちゃダメですか?
例えば
TextBoxを継承し、Validatingイベントで大文字小文字、全角文字の有無、
文字数などの情報を自身のPublicプロパティにセットする
(利用者側がValidating時に判断材料として使う。)
という設計もダメですよね
OnValidating使えという話だとは思いますが、
グリッドの列やタブページ等、それが通用しないコントロールもあると思いまして。
0424デフォルトの名無しさん
2010/12/29(水) 00:20:150425デフォルトの名無しさん
2010/12/29(水) 00:27:04別に継承後の設計なんだから自分の好きなように
0426デフォルトの名無しさん
2010/12/29(水) 02:28:33可能ならばそうしたいところです
>>425
悩みますね、もう少し調べてみます。
0427デフォルトの名無しさん
2010/12/29(水) 02:39:45そういう約束が通じないような、不特定多数が使うちゃんとしたコントロールなら、
出来合いのコントロールの継承なんてやるべきじゃない
0428デフォルトの名無しさん
2010/12/29(水) 03:07:23ttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/28b87b7c-b408-4b50-8290-d552f39e945f
0429デフォルトの名無しさん
2010/12/29(水) 03:16:44サーバ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以下なのにエラーになるかわからない。ファイルサイズは関係ない?
処理はできたのですが理由がわからず悩んでいます・・・
どなたか馬鹿にでもわかるように教えていただけないでしょうか?
0430デフォルトの名無しさん
2010/12/29(水) 03:42:00「サーバAでの処理でサーバBを通してCSVデータを出力」
意味不明なので、日本語を見直してください。
web.configにmaxRequestLengthを設定しないときのMaxRequestLengthの
値を確認しましたか?
あなたの出力したCSVのサイズはどうでもよくて、maxRequestLengthは
Webサーバに対するHTTPリクエストのbodyサイズだと思いますが、
HTTPリクエストはどんな内容ですか?
0431デフォルトの名無しさん
2010/12/29(水) 10:30:260432デフォルトの名無しさん
2010/12/29(水) 10:48:16TextBox1に振り分けたいアイテムを改行ごとに入力していき、
ボタンひとつでTextBox2,TextBox3にランダムに振り分けていくのですが、
奇数のときの対処も含め教えてください。
0433デフォルトの名無しさん
2010/12/29(水) 10:50:13何を言いたいのか・・・
0434デフォルトの名無しさん
2010/12/29(水) 10:57:07余りを計算する
そういう話じゃないかと
0435デフォルトの名無しさん
2010/12/29(水) 11:00:531.TextBox1から、改行で区切ってアイテムを取り出す方法
2.ボタンで、ランダムにアイテムをTextBox1,2へ振り分ける方法
3. 1で取り出したアイテムが奇数の時の対処法
以上の3点を教えて頂きたい。
0436デフォルトの名無しさん
2010/12/29(水) 11:12:151 TextBoxは行数情報と各行単位の情報を簡単に取り出せる
行数はこれで取得 TextBox.Lines.Length
でこんな感じでアクセス
http://ideone.com/9JG7W
2 ランダム関連を調べろ
3 自分で設計しろ。ランダム振り分けなんで奇数行だろうが偶数行だろうが問題ないと思うが
コピー後のTextBoxに同じライン数ないといけないとかなると最後の行を処理しないか
偶数行になるように行を捏造するかしないとだめだろけど俺が決める仕様じゃないので知らないというか・・
0437デフォルトの名無しさん
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; } }
}
}
0438デフォルトの名無しさん
2010/12/29(水) 11:38:570439デフォルトの名無しさん
2010/12/29(水) 11:45:290440437
2010/12/29(水) 14:23:14そのメソッドを使って取得できたのですが・・・今度は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の情報が欲しいです・・・
}
}
0441デフォルトの名無しさん
2010/12/29(水) 14:40:390442デフォルトの名無しさん
2010/12/29(水) 14:52:59{
var testValue = p.GetValue(typeData , null );
//var testValue = p.GetValue(typeData , null ) as string ;
で試したけどうまく行かず@w@
0443デフォルトの名無しさん
2010/12/29(水) 15:08:390444デフォルトの名無しさん
2010/12/29(水) 15:49:260445デフォルトの名無しさん
2010/12/29(水) 15:52:550446デフォルトの名無しさん
2010/12/29(水) 16:25:480447デフォルトの名無しさん
2010/12/29(水) 16:46:120448デフォルトの名無しさん
2010/12/29(水) 17:30:16. ハ,,ハ ミ _ ドスッ
. ( ゚ω゚ )彡―─┴┴─―
* * * \ / つ お断りし / ハ,,ハ
* * \ 〜′ /´ └―─┬/ ( ゚ω゚ ) お断りします
* ハ,,ハ * \ ∪ ∪ / / \
* ( ゚ω゚ ) * .\ / ((⊂ ) ノ\つ))
* お断りします *. . \∧∧∧∧/ (_⌒ヽ
* * < > ヽ ヘ }
* * * < の し お > ε≡Ξ ノノ `J
────────────< 予 ま 断 >────────────
. オコトワリ < 感 す り >
ハ,,ハ ハ,,ハ .ハ,,ハ <. !! > ハ,,ハ
. .( ゚ω゚ ) . ( ゚ω゚ ) ( ゚ω゚ ) /∨∨∨∨\ ( ゚ω゚ )<お断り .ハ,,ハ
│ │ │ / .\ します>( ゚ω゚ )
,(\│/)(\│/)(\│ /. \
/ ♪お断りします♪ \
/ ハ,,ハ ハ,,ハ .ハ,,ハ ハ,,ハ\
. ( ゚ω゚ ) ( ゚ω゚ ) ( ゚ω゚ ) ( ゚ω゚ )
0449デフォルトの名無しさん
2010/12/29(水) 17:59:360450432
2010/12/29(水) 20:47:43ありがとうございます。
http://ideone.com/o6QU0
@ITや、436さんのコードほぼ丸コピでなんとかここまで出来ましたが、
ATxtBxとBTxtBxのアイテム数を同じにする方法が分かりません。
何度も書きましたが、奇数時の処理(どちらかに+1)も教えて頂きたい!
0451デフォルトの名無しさん
2010/12/29(水) 20:51:30奇数時に何がどうなれば満足なのよ。
その通りに作れ。
0453デフォルトの名無しさん
2010/12/29(水) 20:57:19難しく考えすぎだろw
>>436のコード書いた際にライン数を強調したのは
ライン数の範囲でランダム振り分けを繰り返せば
いいからだと思ったからだよ
奇数ラインの場合振り分け後のアイテム数を同じには
質問されてる方はわからないw
その辺はそういう仕様を自分で決めるかそのプログラムを
出題した?人とかと話して調整するしかないよw
0454デフォルトの名無しさん
2010/12/29(水) 23:54:17ItemTxtBxから取り出した文字列を一旦、配列にしまいこんで、その配列をランダムに並び変えてから、
その配列から一列ずつ取り出してATxtBxとBTxtBxに交互に入れていく。
奇数だったら一列残るから、そのときはATxtBxとBTxtBxのどちらかにランダムで入れるみたいな感じで
0455デフォルトの名無しさん
2010/12/30(木) 09:35:49スタティックメソッドじゃダメなの?
0456デフォルトの名無しさん
2010/12/30(木) 09:56:000457デフォルトの名無しさん
2010/12/30(木) 10:46:25ミナガワケンジサーン
0459デフォルトの名無しさん
2010/12/30(木) 11:51:02StringのContainsは"xxを含む名前の物"ですが、
"xxという名前の物"を調べるには何を使えばいいのでしょうか。
0460デフォルトの名無しさん
2010/12/30(木) 11:55:33str.Equals(xx)
上の方が普通
0461デフォルトの名無しさん
2010/12/30(木) 12:00:220462デフォルトの名無しさん
2010/12/30(木) 12:09:18ありがとうございます!
0463デフォルトの名無しさん
2010/12/30(木) 12:13:43俺、459の質問の意味が全くわからなかったぞw
0464デフォルトの名無しさん
2010/12/30(木) 12:28:48{
public string name;
public uint age;
public string address;
}
class Person
{
public string name;
public uint age;
public string address;
}
これって根本的に同じですよね?
コンストラクタで値の改変とかのメソッドを実行しない場合って、
複数の変数の保持にクラス使う意味無いですよね。
保守性の為に部品として使うならスタティックメソッドで良いし、
何の為に実体化するのかわからなくなってきた・・・
クラスを実体化するメリットを教えてください
0465デフォルトの名無しさん
2010/12/30(木) 12:33:06> これって根本的に同じですよね?
どんな根本を想定してるのか知らんが
おいらの感覚では根本的に別物だな
> コンストラクタで値の改変とかのメソッドを実行しない場合って、
> 複数の変数の保持にクラス使う意味無いですよね。
意味が分からん
構造体があれば十分って意味?
> 保守性の為に部品として使うならスタティックメソッドで良いし、
なんでメソッドが出てくるのか…?
> 何の為に実体化するのかわからなくなってきた・・・
> クラスを実体化するメリットを教えてください
人が二人いたら二つインスタンスが必要だろ?
0466デフォルトの名無しさん
2010/12/30(木) 12:39:05保持してる変数だけでみたら扱い同じですよね?
クラスと構造体の違いがわからなくて
メソッドの事は忘れてください
0467デフォルトの名無しさん
2010/12/30(木) 12:42:470468デフォルトの名無しさん
2010/12/30(木) 12:43:31構造体を使うのは特殊な場合に限られる。違いが分からないなら使う意味無し。
たとえばインスタンスAがインスタンスBを参照してて、Bが編集フォームで変更された場合
BがクラスならAが参照してるBも更新されるけど、構造体だと変わらない。
0469デフォルトの名無しさん
2010/12/30(木) 12:52:13似てるように見えるが扱いが違う
http://ufcpp.net/study/csharp/oo_reference.html#classification
0470デフォルトの名無しさん
2010/12/30(木) 12:55:48classが参照型で、structが値型だというのは覚えてるんですが、それだと
クラスの
Person a = new Person();
Person b = new Person();
と
構造体の
Person a = new Person();
Person b = a;
は同じことになるんですかね
0471デフォルトの名無しさん
2010/12/30(木) 12:58:43クラスはCloneしないと複製できない
構造体はコピーになる
0472デフォルトの名無しさん
2010/12/30(木) 13:05:21根本的には別物だと思う、使用するメモリがスタックかヒープかって結構大きい違い。
構造体
・スタックなのでアクセスが早い。(生成も?)
・(メンバは別として)シャローコピーされない分イミュータブルオブジェクトに向く?
・GCの対象外なので破棄も早い
クラス
・変数の実態は参照(4or8バイト)なので、受け渡しが早い。
・参照により複数の変数から同一インスタンスにアクセスできる。
以上が俺の認識。
スタックって何MB使えるの?
Color構造体の例とか見ると、Enumをベースに拡張したい場合に使えばいいかな?
0473デフォルトの名無しさん
2010/12/30(木) 13:13:19これを実行するとわかるよ
http://ideone.com/bbtBH
>>472
基本的にクラスでいいと思うよ
0474デフォルトの名無しさん
2010/12/30(木) 13:15:38ありがとうございます
それだと、値型のように別のオブジェクトで変数を持ちたいけど、
いずれ継承で拡張したい場合なんかは、いったいどうしたら
0475デフォルトの名無しさん
2010/12/30(木) 13:16:02{
public int hoge { get; set; }
}
public struct B
{
public int hoge { get; set; }
}
public void Test(A a, B b)
{
a.hoge++;
b.hoge++;
}
ここら辺の違いさえわかってれば
大概は「どっち使おうが気にすることは無い」んじゃないかな。
0476デフォルトの名無しさん
2010/12/30(木) 13:18:290477デフォルトの名無しさん
2010/12/30(木) 13:21:110478デフォルトの名無しさん
2010/12/30(木) 13:24:300479デフォルトの名無しさん
2010/12/30(木) 13:25:43返らないと思って使ってたら返ってた、なんてことになるって話だろう
0480デフォルトの名無しさん
2010/12/30(木) 13:27:14Fillなんちゃらとか、適切な名前ならいいでしょ
0481デフォルトの名無しさん
2010/12/30(木) 14:45:16Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
A.Rotate(xz);
回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。
0482デフォルトの名無しさん
2010/12/30(木) 14:46:460483デフォルトの名無しさん
2010/12/30(木) 14:50:48マルチだからスルー、とかよくわkんないんだけど、なんか答えちゃいけない規則でもあるの?
0484デフォルトの名無しさん
2010/12/30(木) 14:51:450485デフォルトの名無しさん
2010/12/30(木) 14:59:280486デフォルトの名無しさん
2010/12/30(木) 15:03:350487デフォルトの名無しさん
2010/12/30(木) 15:18:34何のライブラリのQuartanionやVector3Dなのかわからない。
C#から使えるMS製ライブラリのうちQuartanionやVector3Dを含むものは複数存在する。WPFならそう書け。
何を回転させたいのか具体的に書け。
0488デフォルトの名無しさん
2010/12/30(木) 16:55:52どうやればいいかわかりません。
LINQを使えばできたと思うのですが、どう書けばいいものやら…
どなたか教えていただけませんでしょうか?よろしくお願いいたします
0489デフォルトの名無しさん
2010/12/30(木) 17:13:440490デフォルトの名無しさん
2010/12/30(木) 17:22:07とか
0491デフォルトの名無しさん
2010/12/30(木) 17:49:51http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
0492デフォルトの名無しさん
2010/12/30(木) 17:50:44MSDNにしてはわかりやすい。
0493デフォルトの名無しさん
2010/12/30(木) 18:04:50>インスタンスのサイズが 16 バイト未満である。
っていうとintだと3つまでか?
0494デフォルトの名無しさん
2010/12/30(木) 18:12:180495デフォルトの名無しさん
2010/12/30(木) 18:52:48また随分と簡潔な基準だな。
これだと、構造体にするべきケースって殆ど無さそう。
0496デフォルトの名無しさん
2010/12/30(木) 19:07:540497デフォルトの名無しさん
2010/12/30(木) 19:08:58自分が製作しているプログラムは複数音の再生なので、それを録音したいのです。
録音の方法はPCから鳴っている音を録音する方法が良いのかなと考えています。
サウンドレコーダー程度のものでいいので、つけることは出来ますか?
サウンドレコーダーがC#のプログラム上で自動で録音を始めることさえ出来れば良いのですが…
長文大変申し訳ありません。
よろしくお願いします。
0498デフォルトの名無しさん
2010/12/30(木) 19:11:11試してみます!
0499デフォルトの名無しさん
2010/12/30(木) 21:34:030500デフォルトの名無しさん
2010/12/31(金) 14:36:03ウィンドウメッセージで押すとかすればいいんじゃないの
0501デフォルトの名無しさん
2010/12/31(金) 15:43:18WebForm1.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度同じ計算をさせることになるので一度で済ませる方法がないか探しています
0502デフォルトの名無しさん
2010/12/31(金) 16:24:150503デフォルトの名無しさん
2010/12/31(金) 19:32:03来年はどうもQtスレに行くことになりそうです。
0504デフォルトの名無しさん
2010/12/31(金) 21:35:200505デフォルトの名無しさん
2010/12/31(金) 22:35:05ありがとうございます
0506デフォルトの名無しさん
2010/12/31(金) 22:54:49インデクサの使い方教えろ
0507デフォルトの名無しさん
2010/12/31(金) 23:22:110508デフォルトの名無しさん
2010/12/31(金) 23:37:03{
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
0509デフォルトの名無しさん
2010/12/31(金) 23:40:383 次元ベクトル を表す Vector3D クラスのコレクションクラス Vector3DCollection を作ったとしたら、
それを配列のように扱いたいことがあるはず。
んじゃあ、配列使えよって言うかもしれないが、配列にはメソッド作ったり出来ないし、
その他ゴニョゴニョできないからね。(拡張メソッドレベルなら作れるけど。)
まあ、string とかも添字に使えるから色々な使い方があるだろうが。
0510デフォルトの名無しさん
2011/01/01(土) 00:18:400511デフォルトの名無しさん
2011/01/01(土) 08:38:48>>500さんありがとうございました。
ウィンドウメッセージとは具体的にどのような命令(コード)なのでしょうか?
初心者の質問で申し訳ないです。
0512デフォルトの名無しさん
2011/01/01(土) 10:56:07型に付いてるDefaultMemberAttributeを調べる
PropertyInfoだけじゃ分からん
0513デフォルトの名無しさん
2011/01/01(土) 11:43:310514デフォルトの名無しさん
2011/01/01(土) 12:07:000515デフォルトの名無しさん
2011/01/01(土) 13:08:48Reflectorで見てもDefaultMemberAttributeが使われてないから不思議だったんだけど、C#だと出ないのね
ありがと
0516デフォルトの名無しさん
2011/01/01(土) 15:24:03何もかもが終わった
byte[]のwavデータを一時停止するなんて高度(笑)なことができるわけがなかったんだ
・DirectAudio
Direct〜は嫌いだから使わない
・XAudio
wav再生できない
・WPFのMediaElement(一番簡単)
ファイルからしか再生できない
silverlight使えばsetsourceでいけるけど勉強する気がない
・ActiveXのWMP
ファイルからしか再生できない
0517デフォルトの名無しさん
2011/01/01(土) 15:28:29> Direct〜は嫌いだから使わない
> Direct〜は嫌いだから使わない
> Direct〜は嫌いだから使わない
0518デフォルトの名無しさん
2011/01/01(土) 15:55:49文句は言わせないぜ
へへへ
0519デフォルトの名無しさん
2011/01/01(土) 16:28:05>wav再生できない
え?
0520デフォルトの名無しさん
2011/01/01(土) 16:35:03やる気がないってことだよ
言わせんな恥ずかしい
0521デフォルトの名無しさん
2011/01/01(土) 18:47:54wavはヘッダだけ飛ばせばあとはデータをそのままバッファに直接書き込むだけ
0522デフォルトの名無しさん
2011/01/01(土) 23:20:36言い訳が酷すぎるだろw
0523デフォルトの名無しさん
2011/01/01(土) 23:59:28一時停止なくてもボタン1つ消えて使用者が少し不便になるだけだし
まぁなくてもいいかなって気分になってきたのだ(・´ω`・)
0524デフォルトの名無しさん
2011/01/02(日) 04:51:35pass:news
0525デフォルトの名無しさん
2011/01/02(日) 04:55:090526デフォルトの名無しさん
2011/01/02(日) 07:29:52Form.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) => {
};
0527デフォルトの名無しさん
2011/01/02(日) 10:16:50(以下のコードスニペット作れば
0528デフォルトの名無しさん
2011/01/02(日) 12:25:52ListViewで列、項目を入力して試しにデバッグさせてみたらアイテム名が表示されません。
デザイナでは視覚的に確認できるのですが、書き出すと真っ白になってしまいます。
どういった原因が考えられるでしょうか?
0529デフォルトの名無しさん
2011/01/02(日) 14:39:06???
ビルドして実行すると、ってこと?
0530デフォルトの名無しさん
2011/01/02(日) 15:18:40はい。ビルドして実行すると、です。
0531デフォルトの名無しさん
2011/01/02(日) 16:07:06ListBoxって選択されてる項目のTextしか取得できないの?
Items.Countでループさせて、全項目のText取得したいんだけど
もしかして、ループ時に順次select状態にしてText取得していかなきゃだめなの?
そんでループ処理後にselect状態の項目をループ前の状態に戻すしかないの?
うーん・・・
0532デフォルトの名無しさん
2011/01/02(日) 16:10:350533デフォルトの名無しさん
2011/01/02(日) 16:12:240534デフォルトの名無しさん
2011/01/02(日) 16:15:02本当にくだらない質問だな....
こんなところにうだうだ書いてる時間に試してみればいいのに
0535528
2011/01/02(日) 16:34:47お騒がせしました。
0536デフォルトの名無しさん
2011/01/02(日) 16:44:23試したからいってるんだけど
「それしかないの?」って
フフン
0537デフォルトの名無しさん
2011/01/02(日) 17:00:50ListBoxに与えるテキストって利用者が勝手に変えたりするの?
固定なら最初からstring配列で持っておいて・・・とかすればいいんじゃないの?
0538デフォルトの名無しさん
2011/01/02(日) 17:23:11もしかして全部覚えてるの?
0539デフォルトの名無しさん
2011/01/02(日) 17:25:37ライブラリを数個しかしらなくてもその時々でたまたま知ってる人が覗いてれば問題ない
0540デフォルトの名無しさん
2011/01/02(日) 18:23:44ありがとう
それしかないか
0541バルサン(´・ω・`) ◆E.J7ujd3Xbu.
2011/01/02(日) 18:34:310542バルサン(´・ω・`) ◆E.J7ujd3Xbu.
2011/01/02(日) 18:47:170543バルサン(´・ω・`) ◆E.J7ujd3Xbu.
2011/01/02(日) 18:55:120544デフォルトの名無しさん
2011/01/02(日) 18:57:09ListBox..ValueMember = "Code";
ListBox.DataSource = (DataTable)xxx;
でforeachやforでxxxのDataRowを参照すればいいんじゃないの?
0545デフォルトの名無しさん
2011/01/02(日) 19:22:55ありがとう
wavデータサイズを固定指定してるところを可変にして、ループ再生用のwhileを消して、再生中ステータス取れるようにして
もろもろ修正したらうまく動いたよ
ありがとう
0546デフォルトの名無しさん
2011/01/03(月) 03:08:49ありがとう
でもこれでいけたYo
(string)listbox1.Items[0]
0547デフォルトの名無しさん
2011/01/03(月) 17:40:04int a;
}
public interface interfaceB : interfaceA {
int b;
}
public class classC : interfaceB {
}
の時、classC.aは使えないんですか?
0548デフォルトの名無しさん
2011/01/03(月) 17:40:24そのとき録音時間を変数などに入れて時間を指定して起動させたいのですが方法はありますか?
コードはこれです。
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に数値を入れるといいのですが、それを変数を使って代入したいのですが
どう書けば時間を指定できますか?
0549デフォルトの名無しさん
2011/01/03(月) 17:45:58マルチメディア系のAPIとか機能使って録音した方がよくねえ?
0550デフォルトの名無しさん
2011/01/03(月) 17:46:39string time = "0000:00:00";
roku.StartInfo.Arguments = @"/C SoundRecorder /FILE rec1.wma /DURATION " + time + @" /ON"
0551デフォルトの名無しさん
2011/01/03(月) 17:55:21そもそもinterfaceにフィールドは定義できない
0552デフォルトの名無しさん
2011/01/03(月) 18:08:45使い方がよくわからなかったので諦めました。
>>550
ありがとうございます。
指定する時間が複数の場合、あらかじめ代入してた変数を使って行いたい場合はどうすればよいですか?
秒の部分しか使わないのですが…。
0554デフォルトの名無しさん
2011/01/03(月) 18:42:04string sec = "00";
string time = "0000:00:" + sec;
こんな感じでいいんじゃね?
0555デフォルトの名無しさん
2011/01/03(月) 18:51:24>>554
ありがとうございました。
>>554の方法で出来ました。
0556デフォルトの名無しさん
2011/01/03(月) 19:38:11録音が終わったときに(サウンドレコーダーが閉じられたときに)いろいろな設定をしたいのですがうまくいきません。
どのようにしたらいきますか?
コードです。
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;
}
行いたいのは{}の中です。
0557デフォルトの名無しさん
2011/01/03(月) 19:42:43>うまくいきません。
イベントが発生しなくて目的の設定がうごかないってこと?
0558デフォルトの名無しさん
2011/01/03(月) 19:44:12「有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'toolStrip2' がアクセスされました。」
と表示されます。
0559デフォルトの名無しさん
2011/01/03(月) 19:54:160560デフォルトの名無しさん
2011/01/03(月) 20:04:26具体的にどのような操作をすればよいのですか?
調べたのですがよくわかりません…。
0561デフォルトの名無しさん
2011/01/03(月) 20:49:36まず録音関連を担当する自作クラスを用意
(途中経過はよくわからないのでスレの情報をそのままいれた)
http://ideone.com/V2Xq4
上記クラスを使う側のコード
http://ideone.com/5aWiF
0562デフォルトの名無しさん
2011/01/03(月) 21:24:36コピペしたところエラーが表示されました。
・「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' のオーバーロードはありません。」
解決方法はありますか?
0563デフォルトの名無しさん
2011/01/03(月) 21:25:33リサイズ中に枠をぐりぐりするとリサイズできなくなってしまう
自分で見ても原因がまるでわからないので、誰か神眼でバグを指摘しておくれ
■ソース
ttp://ideone.com/qGhgB
■ぷろじぇくと
ttp://www.rupan.net/uploader/download/1294057460.zip
0564デフォルトの名無しさん
2011/01/03(月) 21:31:48>・「using System.Linq;」は無いようなのですが大丈夫ですか?
必要かどうかは自分のコード全体から判断してくれw
>解決方法はありますか?
もしかしてかなりの初心者?
>>1のコード貼るサイトを利用してコード張ってくれ・・・・
途中経過がさっぱりわからんのに説明めんどくさい
0565デフォルトの名無しさん
2011/01/03(月) 21:32:23とりあずOnXXXでベースクラスのオーバーライドしたメソッドを呼ばないのは如何なものか
0566デフォルトの名無しさん
2011/01/03(月) 21:42:04紐付けしてるのか失礼。
0567デフォルトの名無しさん
2011/01/03(月) 21:47:14>g.Dispose();
これ要らない。
なんで要らないのかは理解しておいた方がいいよ
0568デフォルトの名無しさん
2011/01/03(月) 21:47:32少しいじっていたらなんとかなりました。
申し訳ないです。
皆様ありがとうございました。
0569デフォルトの名無しさん
2011/01/03(月) 21:50:12中は透明かよwめんどくせー
かぎりなく透明に近いけど0じゃない色で描画すればクリック判定あるよw
0570デフォルトの名無しさん
2011/01/03(月) 22:10:10確かFormそのままではだめだったということだったんだが・・
0571デフォルトの名無しさん
2011/01/03(月) 22:12:40>>570
高度なことはできないと自信を持って言える
0572デフォルトの名無しさん
2011/01/03(月) 22:18:31確か>>570のやつだとOpacityのように全部が半透明とかじゃなく
部分的にアルファ適応とかできたはず
ただしウインドウの枠の部分も自前で・・・みたなちょっと面倒なやつだったけど
なので>>563のようなコードの場合は枠必要ないので向いてるかなあと・・・
0573デフォルトの名無しさん
2011/01/03(月) 22:31:16>>567
変えてみたよ
ttp://ideone.com/NiPsL
>>569-569
>>571
このやり方じゃあ絶対にできないのか
部分アルファにするしかないのか
0574デフォルトの名無しさん
2011/01/03(月) 22:37:54c#のFormのデフォだと透明か色付きしかできなくて
半透明で塗りつぶすとかできないのよね
その代わりForm含む配下のコントロール全部を半透明とかできるけど
部分的にアルファ値を有効にするにはいろいろやらないとだめだったね
そのコードが手に入れば枠の中を完全な透明に近い色付きで塗れば
中もクリック判定が生きてくるんだけどね〜
0575デフォルトの名無しさん
2011/01/03(月) 23:48:07C#のFormクラスのイベントは別途拾いなおす必要があるのか?
http://youryella.wankuma.com/Library/Extensions/Form/LayeredWindow.aspx
参考にしたのはここ
>>573を参考に改造したのがこれ
http://ideone.com/7rfrI
メインのフォームのコードだけ張り替えてくれ
0576デフォルトの名無しさん
2011/01/04(火) 09:00:24http://www.mediafire.com/?rmwmk77pr6w5llf
+=直後 tab2回でラムダ式 一方、+=後スペースを入力しtab2回でデフォルト
C#オンリー
Express版はおそらく動かない
0577デフォルトの名無しさん
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を一括で取得したいです。
0578デフォルトの名無しさん
2011/01/04(火) 14:24:580579デフォルトの名無しさん
2011/01/04(火) 14:35:16GetInterFace("IDataErrorInfo" , true )で取得しようとしてもさっぱりうまくいきません;w;
やり方が違うのでしょうか?そもそもGetInterfaceで取得するのではないのでしょうか?
0580デフォルトの名無しさん
2011/01/04(火) 14:44:44get;じゃなくて、現在の値を調べてエラーを返さないといけない
0581デフォルトの名無しさん
2011/01/04(火) 14:47:53あるひとつのクラスの中に内包されているインスタンス化されたクラスで
IDataErrorInfoを継承したインスタンスを取得したいのです><
0582デフォルトの名無しさん
2011/01/04(火) 14:57:35public 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はプロパティにしてね
0583デフォルトの名無しさん
2011/01/04(火) 15:45:18今回の仕様ではChildは実はStringと<T>(整数系)から派生したパターンがあり
一律にListに入れることが出来ません;w;あと、Linqも.net2.0指定のためこれまた
使えないのです ( ; w ; )
0584デフォルトの名無しさん
2011/01/04(火) 17:06:050585デフォルトの名無しさん
2011/01/04(火) 17:15:370586デフォルトの名無しさん
2011/01/04(火) 17:17:19実行時に別に用意したメッソドに処理させるってことじゃないの?
0587デフォルトの名無しさん
2011/01/04(火) 17:35:460588デフォルトの名無しさん
2011/01/04(火) 17:36:54すべてのクラスで使えるようにpublicで宣言した変数があるのですが、
Form1からモーダルで開いたForm2からだと、
Ownerプロパティを付けないと参照できないのは、そういうもんですか?
何か宣言する場所とか間違ってるんですかね?
Formも一応クラスですよね?
0589デフォルトの名無しさん
2011/01/04(火) 18:28:03インスタンスの概念をもう一度考えてみたほうがいい
仮に皆が財布持ってるとして、中身はそれぞれでしょ?
0590デフォルトの名無しさん
2011/01/04(火) 18:31:31public static class GlobalVariables {
0591590
2011/01/04(火) 18:34:21public static class GlobalVariables {
public static int Hoge;
}
これでグローバル変数。GlobalVariables.Hogeでどこからでもアクセスできる。
Formにpublic staticで宣言するよりは後で探して修正しやすいのでマシだと思う。
0592デフォルトの名無しさん
2011/01/04(火) 18:35:37ずっとFormひとつでしか勉強してないから、よくわかんね。
Formが財布ってわけ?
ひとつのプロジェクトでも同じクラスではないってこと?
0593デフォルトの名無しさん
2011/01/04(火) 19:57:16リサイズの仕方がよくわからない
これはもう完全につんだな
0594デフォルトの名無しさん
2011/01/04(火) 20:01:42おお来たか
すでに解決したか何かでこないかと思った
対策としてだけどFormをもう一枚作ってそっちをOpacityを限りなく0に近い数値にして
>>575の上に重ねてイベントをそっちで拾わせてウインドウサイズを変えればいいんじゃないかと・・・
0595デフォルトの名無しさん
2011/01/04(火) 20:04:420596デフォルトの名無しさん
2011/01/04(火) 20:17:38俺.AddOwnedForm(>>595);
こんな風に誰が主人かを新しく開くフォームに教えてやればいいのさ
0597デフォルトの名無しさん
2011/01/04(火) 20:27:19ありがとう
その手があったか、フォーム2枚作って、イベント取得用フォームから枠用フォームいじくってみる
0598デフォルトの名無しさん
2011/01/04(火) 22:01:460599デフォルトの名無しさん
2011/01/04(火) 22:19:16私はプログラム初経験でC#を学んでいるのですがC#は前提としてCやC++が出来ないと学ぶのは難しいでしょうか。
もう一つC#は何を作るのに向いていて何に向いていないのでしょうか。
皆さんコード関連の質問をしている所に突然馬鹿な質問ですがよろしくお願いします。
0600デフォルトの名無しさん
2011/01/04(火) 22:24:44>前提としてCやC++が出来ないと学ぶのは難しいでしょうか
noでありyesかなあ・・・まあ難しく考えないでやってみれば?
開発環境もタダだし、ネットで探せばある程度のことはできるから
>何を作るのに向いていて
乱暴な言い方をすればwindows関連のアプリ
>何に向いていないのでしょうか。
組み込み
0601デフォルトの名無しさん
2011/01/04(火) 22:32:10十分何とかなる。
いろんなプロジェクトで人のソース読む機会がたくさんあったってのも大きいから
独学だとわからんけど
0602デフォルトの名無しさん
2011/01/04(火) 22:34:230603デフォルトの名無しさん
2011/01/04(火) 22:35:48あれ・・・その程度の変更で動いた?
0604デフォルトの名無しさん
2011/01/04(火) 22:43:40こいつぁすげぇ、リサイズしまくっても固まらない
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
0605デフォルトの名無しさん
2011/01/04(火) 23:07:31回答ありがとございます。
皆さんが仰るとおり取り合えずC#を勉強してみようと思います。
0606デフォルトの名無しさん
2011/01/04(火) 23:09:24>C#は前提としてCやC++が出来ないと学ぶのは難しいでしょうか
そんな事は無い…と、思う。
文法が似てるだけで、かなりの別物になってるし。
けど、C#を学ぶ上での有利不利は抜きにして
C言語自体は、やっといて損は無いと思うよ。(C++にまでは手を出さなくてもいいけど)
Windowsアプリを造りたいなら、Win32APIの基礎も。(C#の開発で使う事が無くても、概念の理解に役立つ)
>何を作るのに向いていて
上で言われてるWindowsアプリに加えて、WebアプリのフロントエンドもC#で作れる。
(Silverlight想定)
0607aaaaaaaaaaa
2011/01/05(水) 00:48:40private void Form1_MouseUp(object sender, MouseEventArgs e)
{
moving = onResize = false;
GC.Collect();
}
0608デフォルトの名無しさん
2011/01/05(水) 01:05:21CもC++もやったことない人よりも、
半端にCとかC++触ってる人の方が C# わけわからないって言ってる気もするなぁ。
もちろん、C++使いこなしてる人は別ね。
0609デフォルトの名無しさん
2011/01/05(水) 01:43:350610デフォルトの名無しさん
2011/01/05(水) 05:03:30使ってみたいと思ったのですが、VS2010Expressにはテンプレートはないのですか?
またこのApplicationSettingsBaseの評判ってどうですか?
user設定をを保存する場所が固定とかいう話ですが、配布を考えた場合、
勝手にフォルダを作られると嫌がるユーザーは多いのでしょうか?
配布のときはフォルダが作られることをしっかり断っておくのがよいのでしょうか?
0611デフォルトの名無しさん
2011/01/05(水) 09:09:270612デフォルトの名無しさん
2011/01/05(水) 10:12:30public abstract class SomethingBase
{
public string Something
{
get
{
var field = typeof(ここに派生先のクラス).GetFields();
//処理
}
}
}
0613612
2011/01/05(水) 11:04:27var field = this.GetType().GetFields();
で取得できました・・・でもこれだとpublicのみしか見つけないのでGetFields()の引数に
BindingFlags.NonPublicを指定したのですが、これでもprivateなフィールドは発見できず・・・
しかもpublicなフィールドまで発見できなくなります(BindingFlags.NonPublic | BindingFlags.Public)
にしても駄目でした・・・
0614デフォルトの名無しさん
2011/01/05(水) 13:27:26解決してると思うが
取りあえずの解決策
frm.Size = this.Size;
の後ろにでも
frm.Location = this.Location;
いれてみたら?
0615デフォルトの名無しさん
2011/01/05(水) 17:19:09.NET Framework 3.5は.NET Framework 2.0を内包しているんでしょうか?
3.5を入れたら2.0アプリも動くのかということなんですが・・・
0616デフォルトの名無しさん
2011/01/05(水) 17:27:230617デフォルトの名無しさん
2011/01/05(水) 17:29:360618デフォルトの名無しさん
2011/01/05(水) 17:30:280619デフォルトの名無しさん
2011/01/05(水) 17:57:42ありがとうございます!!
0620デフォルトの名無しさん
2011/01/05(水) 19:43:010621デフォルトの名無しさん
2011/01/05(水) 20:07:52http://msdn.microsoft.com/ja-jp/library/system.reflection.bindingflags.aspx
>Public または NonPublic と共に、Instance または Static を指定する必要があります。指定しない場合、メンバが返されません。
0622デフォルトの名無しさん
2011/01/05(水) 20:36:372. 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を直接作るにはどうしたらよいでしょうか
0623デフォルトの名無しさん
2011/01/05(水) 20:47:12var xmlreader = XmlReader.Create(strreader);
0624622
2011/01/05(水) 21:29:52ありがとうございます 無事動きました
>>var strreader = new StringReader(str);
このたった1行が思い浮かばず延べ10時間以上悩みました・・・
MSDNのXmlReader クラスを読んでもString クラスを読んでもStringReaderの文字
すら見つからない中でどうすれば「StringReaderの型」を使えばいいと思い浮かぶのでしょうか
考えつく秘訣とかあったら教えて欲しいのですが
0625デフォルトの名無しさん
2011/01/05(水) 21:33:01C#(というか.net)にはこういう読み方できるといいな〜ってのは大体実装されてるから
分からないときはC# Reader stringとかでぐぐるといいよ
0626デフォルトの名無しさん
2011/01/05(水) 23:43:56定期的に真っ白になるや
>>614
もうあきらめ始めてる
枠だけの透明なフォーム作るだけなのに、簡単そうに見えてまるでできない
明日までがんばって駄目だったらもう何もかもあきらめる
0627デフォルトの名無しさん
2011/01/05(水) 23:52:21ならないぞw
0628デフォルトの名無しさん
2011/01/05(水) 23:59:33スマン、paintイベント死んでただけだった
0629デフォルトの名無しさん
2011/01/06(木) 01:14:08だから透明や半透明にした状態でリサイズすると固まったんだ・・・
死にたい・・・
0630デフォルトの名無しさん
2011/01/06(木) 01:16:58.NET Framework自体にバグあるの?
0631デフォルトの名無しさん
2011/01/06(木) 01:29:44windowsXP+2008expressだと問題ねーぞ
0632デフォルトの名無しさん
2011/01/06(木) 09:04:240633デフォルトの名無しさん
2011/01/06(木) 19:35:29取得したいのですがどうしたら良いでしょうか?
0634デフォルトの名無しさん
2011/01/06(木) 19:42:50XNAでゲーム作りたいんだけどお勧めの参考書とかある?
もうまったくの初心者なんだけど
0635デフォルトの名無しさん
2011/01/06(木) 19:44:01俺が持ってる奴すげーいい
0636デフォルトの名無しさん
2011/01/06(木) 19:49:35それを教えてよwお願いだよー
0637デフォルトの名無しさん
2011/01/06(木) 19:52:140638デフォルトの名無しさん
2011/01/06(木) 19:55:23貸してやれよ
0639デフォルトの名無しさん
2011/01/06(木) 20:00:260640デフォルトの名無しさん
2011/01/06(木) 20:02:55ありがとう、オフィス加減ってとこが出してるやつだな
0641デフォルトの名無しさん
2011/01/06(木) 20:04:08それ!
0642デフォルトの名無しさん
2011/01/06(木) 20:07:00ぐぐれば基本はでてくる
0643デフォルトの名無しさん
2011/01/06(木) 20:08:57http://sorceryforce.com/xna/tips.html
というかXNAよりSLでゲーム作った方がいいんじゃね?
0644デフォルトの名無しさん
2011/01/06(木) 20:11:16あと紙ゆえの読みやすさってのもある。お金があるなら本買えばいいよ。
効率よくやろうぜ。
0645デフォルトの名無しさん
2011/01/06(木) 20:11:59その通り
0646デフォルトの名無しさん
2011/01/06(木) 20:12:11おお、こんなサイトもあるのか助かるー
xbox用にゲーム作りたいんだよだからXNAの方が入りやすいと思って
0647デフォルトの名無しさん
2011/01/06(木) 20:13:250648デフォルトの名無しさん
2011/01/06(木) 20:15:32というかゲームループ部分が見えない仕様なのでゲーム製作初心者にはちとなれるまで面倒かもね
0649デフォルトの名無しさん
2011/01/06(木) 20:24:22What is SL?
0650デフォルトの名無しさん
2011/01/06(木) 20:28:23Microsoft Silverlight その7
http://hibari.2ch.net/test/read.cgi/tech/1288613056/
0651デフォルトの名無しさん
2011/01/06(木) 21:35:55セカンドライフを思い浮かべた人は30代
0652デフォルトの名無しさん
2011/01/06(木) 21:39:440653デフォルトの名無しさん
2011/01/06(木) 22:16:24visualC#上でSQLserverで作成したデータベースに接続したいのですがうまくいきません。
まず、SQLserverでデータベースを作り、C#上で接続する際そのデータベースを指定してもエラーが出ます。
また、C#上で新しくデータベースを作成しても、SQLserverからファイルを開くことができません。
拡張子やファイルの場所を変えてもうまくいきません。
どうしたらいいでしょうか?教えてください><
0654デフォルトの名無しさん
2011/01/06(木) 22:21:150655デフォルトの名無しさん
2011/01/06(木) 22:22:410656デフォルトの名無しさん
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
0657デフォルトの名無しさん
2011/01/06(木) 23:09:20開発端末のManagement Studio等では繋がってるのに、サーバーエクスプローラーorSqlConnectionでは繋がらないってことか?
接続設定か接続文字列が間違ってるんじゃないの?
0658デフォルトの名無しさん
2011/01/06(木) 23:14:580659デフォルトの名無しさん
2011/01/07(金) 00:23:000660デフォルトの名無しさん
2011/01/07(金) 01:13:430661デフォルトの名無しさん
2011/01/07(金) 02:26:06なぜかAlignmentプロパティはTile時には使えないらしい・・・
0662デフォルトの名無しさん
2011/01/07(金) 09:56:51{
}
みたいにいくつかのインターフェースを継承したいんですが、どう書けばいいんでしょうか
0663デフォルトの名無しさん
2011/01/07(金) 09:59:060664デフォルトの名無しさん
2011/01/07(金) 10:07:010665デフォルトの名無しさん
2011/01/07(金) 10:07:51class Myclass: IComparable, ICloneable
0666デフォルトの名無しさん
2011/01/07(金) 10:10:100667デフォルトの名無しさん
2011/01/07(金) 13:01:49PrintDocumentでシコシコやるか
どっちがいいんだろ
0668デフォルトの名無しさん
2011/01/07(金) 13:04:280669デフォルトの名無しさん
2011/01/07(金) 13:06:02active reportはあるけど6.0ではないので縦書きができないという罠
まぁ、改行とか駆使してやればいいんだろうけど・・・・
もちっと楽に縦書きをやってみたかった
0670デフォルトの名無しさん
2011/01/07(金) 13:20:400671デフォルトの名無しさん
2011/01/07(金) 13:37:14まぁどちらにしろある程度の自動化はさせたい
ちょっと挿し込みやる方法調べてみるかな
0672妖犬 ◆youkenkF9Y
2011/01/07(金) 15:52:30try
{
int a = Int32.Parse(Console.ReadLine());
int b = Int32.Parse(Console.ReadLine());
Console.WriteLine(a + b);
}
catch (Exception)
{
Console.WriteLine("例外");
}
finally
{
Console.WriteLine("終了");
}
0673デフォルトの名無しさん
2011/01/07(金) 15:57:410674デフォルトの名無しさん
2011/01/07(金) 16:01:09class Test
{
object obj { set; get }
}
上記クラスをPropertyGridにセットし、objにセットされている型に応じた操作を行いたいのですが読み取り専用となってしまいます
当たり前と言えば当たり前なのですが、現在の型に応じてセット出来るようにするにはどうしたらいいのでしょうか
TypeConverterあたりで出来そうな気がしますがなかなかうまくいきません
0675デフォルトの名無しさん
2011/01/07(金) 16:16:080676デフォルトの名無しさん
2011/01/07(金) 16:56:490677デフォルトの名無しさん
2011/01/07(金) 17:12:01PropertyGridにTestをセットすると、PropertyGridのプロパティリストにobjが現れるのですが読み取り専用になってしまいます。
このときたとえばobjにstringが代入されていればPropertyGrid上で文字列操作を
objにboolが代入されていればtrue、falseの選択を
列挙型が代入されていれば対応する各値の選択を行いたいのです
現状はProeprtyGrid上で読み取り専用となってしまい、変更が出来ないんです
0678デフォルトの名無しさん
2011/01/07(金) 17:28:12そんなもん何に使うの? PropertyGridって開発者向けのツール作るためのもんだよ?
0679デフォルトの名無しさん
2011/01/07(金) 19:09:23このプロセスCのPIDをプロセスAは直接的な方法で取得することは可能でしょうか?
プロセスCは複数起動されることがあるため、プロセス名だけでは判断できなくて困っています
0680デフォルトの名無しさん
2011/01/07(金) 19:11:45AがCを直接しるのは無理じゃないの?
BがCを管理してAからの要求に答えるかCを起動の度に
デリゲートでAの通知用メソッドを呼び出すようにするとか
0681デフォルトの名無しさん
2011/01/07(金) 19:43:39リモーティングかパイプで通信
0682デフォルトの名無しさん
2011/01/07(金) 20:27:02起動したらプログラム終了しなくなるけど他はどうですか?
もし使える物ならFileSystemWatcherの代わりに使いたいんですが
0683デフォルトの名無しさん
2011/01/07(金) 22:36:36どなたかご存知ありませんか?
ShowWithoutActivationでtrueを返したり
CreateParamsでcp.ExStyle |= (int)(WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW)したりしましたが
クリックするとアクティブってしまいました
どなたかこの卑しい豚に助言という名のえさをお与えください
0684デフォルトの名無しさん
2011/01/07(金) 22:42:01∧_∧
(´・ω・) いやどす
ハ∨/~丶
ノ[三ノ |
(L|く_ノ
|* |
ハ、__|
""~""""""~""~""~""
0685デフォルトの名無しさん
2011/01/07(金) 23:03:08ありがとうございました
やはりBやCに何らかの手を加えない限り無理みたいですね
とりあえずは最新に起動された物がどれか判別できればいいのでProcess.StartTimeを比較することで実現できました
0686デフォルトの名無しさん
2011/01/08(土) 00:42:13単純に「親フォーム」とやらをオーナーにするだけじゃダメなの?
0687デフォルトの名無しさん
2011/01/08(土) 01:46:01常に手前に表示されるようになるだけで、触れるとアクティブになってしまう
0688デフォルトの名無しさん
2011/01/08(土) 02:00:180689デフォルトの名無しさん
2011/01/08(土) 02:05:02こういういかにも下手にでましたので教えろや!!って本音が見えるような書き込みがなければ教えたんだが・・・
0690デフォルトの名無しさん
2011/01/08(土) 02:08:46そこまで気を使う場所じゃないし、かえって不気味
0691デフォルトの名無しさん
2011/01/08(土) 02:11:340692デフォルトの名無しさん
2011/01/08(土) 02:11:460693デフォルトの名無しさん
2011/01/08(土) 02:13:15アクティブにしたくないFormとそのFormに貼り付けるコントロールにもコードを追加しないとだめだよ
サンプル
http://cs2ch.blog123.fc2.com/blog-entry-85.html
0694デフォルトの名無しさん
2011/01/08(土) 02:16:55どなたかこの貴い豚に追加情報という名のえさをお与えください
0695デフォルトの名無しさん
2011/01/08(土) 02:20:020696デフォルトの名無しさん
2011/01/08(土) 02:29:44怖い
>>693
それはすでに試したけど動かなかったよ
後これもなぜかアクティブになってしまった
ttp://d.hatena.ne.jp/ku__ra__ge/20080612/p1
本当に動くのかな
>>694
大元のウィンドウをアクティブにしたままFormにwebbrowserはっつけて作ったポップアップウィンドウにhtml表示したいだけ
0697デフォルトの名無しさん
2011/01/08(土) 02:39:50ホントにやったのか?
アクティブにしたくないFormに対策するのと
そのFormに貼るコントロールにも対策するだぞ
0698デフォルトの名無しさん
2011/01/08(土) 02:44:09昨日の時点で既になんだ
そして挫折し、放浪し、ここに至る
0699デフォルトの名無しさん
2011/01/08(土) 02:45:11どうせコピペした際にFormのイベントとかちゃんと動くようにしてないんだろ
0700デフォルトの名無しさん
2011/01/08(土) 02:52:46イベントまでコピーしてどうすんだ
0701デフォルトの名無しさん
2011/01/08(土) 02:58:07関連するポイント無視してコピーして動きませんってそりゃあまりにもボケナスすぎだろ
0702デフォルトの名無しさん
2011/01/08(土) 03:08:31勝手に解釈して当たり前の話ばかりするんじゃない
鬱陶しいからもういい
0703デフォルトの名無しさん
2011/01/08(土) 03:30:03どうせミスってるんだろうし
0704デフォルトの名無しさん
2011/01/08(土) 04:21:33こういうこと?
http://www.dotup.org/uploda/www.dotup.org1346606.zip
0705デフォルトの名無しさん
2011/01/08(土) 04:31:500706デフォルトの名無しさん
2011/01/08(土) 04:38:21ドキュメントからタイトルタグ探せばいいんじゃね?
0707デフォルトの名無しさん
2011/01/08(土) 05:09:55ありがとです
0708デフォルトの名無しさん
2011/01/08(土) 08:38:35整数の範囲をチェックするには、
0 < a && a < 100
とか書けば良いと思いますが、これをビット演算等でやる方法はあるでしょうか?
0709デフォルトの名無しさん
2011/01/08(土) 10:04:320710デフォルトの名無しさん
2011/01/08(土) 10:11:480711デフォルトの名無しさん
2011/01/08(土) 10:13:25私が断定しました
お引取りください
0712デフォルトの名無しさん
2011/01/08(土) 10:23:000713デフォルトの名無しさん
2011/01/08(土) 10:59:170714デフォルトの名無しさん
2011/01/08(土) 11:02:250715デフォルトの名無しさん
2011/01/08(土) 11:03:38だが、なんでビット演算なんだよ>宿題以外考えられないな。
0716デフォルトの名無しさん
2011/01/08(土) 11:08:13こんな歯抜けをビット演算だけでやるくらいならifで大小比較した方が速いわ
0717デフォルトの名無しさん
2011/01/08(土) 11:09:280718デフォルトの名無しさん
2011/01/08(土) 11:10:40特定のビットがあるかどうかのチェックならビット演算する意味あるけど
そのくらいなら普通に計算した方がいいよね
というかいまどきビット演算を使うことなんてそうそうねーだろ
0719デフォルトの名無しさん
2011/01/08(土) 11:11:38宿題にしても無駄すぎる
出題する教師がバカなのか教師ゆえに時代遅れで化石なのか
0720デフォルトの名無しさん
2011/01/08(土) 11:52:540721デフォルトの名無しさん
2011/01/08(土) 11:54:38無駄ってそのことだろ
0722デフォルトの名無しさん
2011/01/08(土) 11:58:470723デフォルトの名無しさん
2011/01/08(土) 12:13:270724デフォルトの名無しさん
2011/01/08(土) 12:14:270725デフォルトの名無しさん
2011/01/08(土) 12:56:59public static bool Contains<T,V>(this T e, V flag) where T : Enum {
}
これ書けりゃ汎用化できて最高なのに
0726デフォルトの名無しさん
2011/01/08(土) 12:59:57リフレクションなので糞遅いけど、ジェネリック使ったからといってもリフレクション使って実装するしかないはず
0727デフォルトの名無しさん
2011/01/08(土) 13:05:080728デフォルトの名無しさん
2011/01/08(土) 13:17:25後でまた使うかもしれないからとりあえずキャッシュをしばらく置いときたいようなときには
WeakReferenceではすぐ消えてしまってあんまり役に立たないよ
型ごとにキャッシュを持つなら際限なくリークするようなことはないはずだから
普通にstatic Dictionary<Type, キャッシュ>とかでいいと思う
0729デフォルトの名無しさん
2011/01/08(土) 13:33:45ExpressionTreeで式作る
0730デフォルトの名無しさん
2011/01/08(土) 14:12:340731デフォルトの名無しさん
2011/01/08(土) 14:41:24floatとかstring型にそのままぶち込むことが可能ですか?
0732デフォルトの名無しさん
2011/01/08(土) 14:44:45BitConverterとかEncodingとか使うと良いよ。
0733デフォルトの名無しさん
2011/01/08(土) 14:45:34あるのはToDoubleだ
stringはBitConverter.ToStringでいけると思う
0734デフォルトの名無しさん
2011/01/08(土) 14:50:38floatはToSingle
0735デフォルトの名無しさん
2011/01/08(土) 14:51:06ほうw
サンクスw
0736デフォルトの名無しさん
2011/01/08(土) 15:01:05一瞬ToStringleかと思った
0737デフォルトの名無しさん
2011/01/08(土) 15:03:36Stringはどういう形式をどういう形式にしたいのか分からんとなんとも言えんけど
0738デフォルトの名無しさん
2011/01/08(土) 15:28:160739デフォルトの名無しさん
2011/01/08(土) 18:34:090740デフォルトの名無しさん
2011/01/08(土) 20:51:35のような条件式のとき、○がfalseだと□を飛ばして△が評価されるという動作であってます?
0741デフォルトの名無しさん
2011/01/08(土) 20:59:15string y = string.Empty;
if ((x != null && x.Length > 0) || (y.Length > 0))
{
//
}
でも試してみたら
例外が出たら□は評価される
0742デフォルトの名無しさん
2011/01/08(土) 21:31:24いや、こういうこと
ポッパーイ4の動きを実装したかったんだ
大元がアクティブなままなところが重要なんだ
ttp://kineko.dyndns.org/~touhou/up/source/up7513.zip
違うアプリがアクティブになったことを検知する方法調べなきゃ
自分が非アクティブな状態でできるのかそんなこと
あるいは自分のプロセスが非アクティブになる瞬間を検知できるのか
めんこくせ(´・ω・`)
0743デフォルトの名無しさん
2011/01/08(土) 21:35:19リンクできないや
アゲナオシタ
ttp://aryarya.net/up/img/5007.zip
0744デフォルトの名無しさん
2011/01/08(土) 21:35:33いい加減なアドレスはるな
0745デフォルトの名無しさん
2011/01/08(土) 21:38:040746デフォルトの名無しさん
2011/01/08(土) 21:54:150747デフォルトの名無しさん
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());
        }
    }
}
0748デフォルトの名無しさん
2011/01/08(土) 22:15:100749デフォルトの名無しさん
2011/01/08(土) 22:16:23え、一緒だよ
>>747
それはわかってるよ
その動き方じゃ駄目だったから質問したんだ
0750デフォルトの名無しさん
2011/01/08(土) 22:22:52同じプロセスなのが駄目なら、違うプロセスで動かせばいいんだと思ったが
やり方を全く知らないし、調べるのがめんどくさそうなので放置した
いま、「一応」動いてるし、一応・・・
0751デフォルトの名無しさん
2011/01/08(土) 22:24:49Form_Popup3にActivatedイベントを追加してそこへ
this.Owner.Activate();
と追加すれば>>747に近い動きしたよ
>>747と違ってウインドウの移動もスムーズだし
0752デフォルトの名無しさん
2011/01/08(土) 22:39:31ありがとう
Janeのポップアップと同じもの作ろうとしてるようなものなんだ
それだと常にオーナーがアクティブになるのでポップアップが操作を受け付けなくなってしまう
あと一瞬フォーカスが移るからタイトルバーが微妙に点滅してる
ありがとう、後は自分で何とかするよ
俺は煽られると煽り返すタイプだからいないほうがいいし
0753デフォルトの名無しさん
2011/01/08(土) 22:45:15隣接するマスに地雷が置かれていないとき自動で開ける方法を教えろ
0754デフォルトの名無しさん
2011/01/08(土) 22:48:010755デフォルトの名無しさん
2011/01/08(土) 23:02:08なるほどそうやって確かめるのか。
結果はちゃんと□を飛ばしてくれました。
0756デフォルトの名無しさん
2011/01/08(土) 23:04:18詳しくはないけど迷路探索のあたりの考えが使えるんじゃないかな?
0757デフォルトの名無しさん
2011/01/08(土) 23:11:45aとbだけじゃマスが開いてるかどうかわからないからboolの配列を増やす
そうするとaはbが決まれば変わらないので、ループの外で計算する
c,d入力後にaが0で開いているマスの隣接マスを開く、これを開けなくなるまで繰り返す
0758デフォルトの名無しさん
2011/01/08(土) 23:12:23if (範囲外(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);
}
こん感じじゃないの
0759デフォルトの名無しさん
2011/01/08(土) 23:13:18つ足し算、引き算
0760作本
2011/01/09(日) 05:39:01�@ 複数の端末でその日の記録を入力する。
�A シャットダウン時に、ネットワークの共有フォルダにその内容をテキスト出力
�B 起動時には、その共有フォルダ内のテキスト全件を読み込み、他端末の入力情報も取り込む
以上の仕組みを作っていますが、
どの端末も毎日起動しているので、当然の結果として、
共有フォルダにテキストデータが1000件近く溜まってきました。
なので起動時に重たくなってきています。
共有サーバにデータベースを置けないのでそうしたのですが、
(1)
このようなテキストデータがある程度の件数蓄積されてきたら、
自動でフォルダを生成し、一定の過去データを移動し自動で圧縮をかける
ことはC#でできますでしょうか。
また、
(2)圧縮フォルダを解凍する
ことも可能でしょうか。
お手数ですがよろしくお願いいたします。
0761デフォルトの名無しさん
2011/01/09(日) 05:55:16>このようなテキストデータがある程度の件数蓄積されてきたら、
>自動でフォルダを生成し、一定の過去データを移動し自動で圧縮をかける
できない
>(2)圧縮フォルダを解凍する
できない
両方とも自動でなんてのは無理
それより各端末のファイルをたとえば
yyyymmdd_hhmmss_ID.txt
とかファイルでわければいいんじゃないの?
で読み込む範囲を日付で絞るとかすればいいだけだろうし
0762デフォルトの名無しさん
2011/01/09(日) 06:57:01ファイルのみで扱えるデータベースもある
(SQLSever CompactやSQLiteとか、MDBはやめとけよ)
0763作本
2011/01/09(日) 08:36:40>>762さん
ご返信くださりありがとうございます。
>>761さん
日付で読み込むファイルを絞る方法、大変参考になりました。
かなり所要時間が短縮されると思います。
あとは、30,000件ほどにファイルが増大した場合に、日付判定を含めてどれくらいの負荷があるか、
試験したいと思います。
>>762さん
圧縮・解凍方法は、dobonさんのページにあるF#の機能を使用する方法でしょうか。
また、ファイルのみで扱えるデータベースとはどういうものでしょうか。
よろしくお願いいたします。
0764デフォルトの名無しさん
2011/01/09(日) 08:48:28どんな難解ニュースでも掲示板の書き込みを読んで簡単に理解。
ニュースを勢い順にカテゴリー別で表示する"2NN"(2ちゃんねるニュース速報+ナビゲーター)もどうぞ。
0765デフォルトの名無しさん
2011/01/09(日) 08:57:24ネットなんだからリンクを貼れよ
これでいいんじゃね?
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
0766デフォルトの名無しさん
2011/01/09(日) 10:15:49SQLite等は、DBMSのプログラム一式がクライアントソフト内に取り込めるタイプのデータベースです
だから共有サーバーには一切プログラムインストールしなくてもデータファイルを置いておくだけで使えます
C#ならhttp://sqlite.phxsoftware.com/をインストールするだけで使えます
ただし一度に書き込めるのは一人だけなので、それをケアできるようにプログラムしないといけません
0767デフォルトの名無しさん
2011/01/09(日) 10:35:40管理とか面倒だから>>761を提案してるのに・・・・
他の端末と排他制御したりとデータの整合性を取らないといけないとかあほらしい
>>763
まあ日付跨ぐようなブラックな企業かどうかわからんけど
日付跨がないのであればその日の年月日(yyyymmdd)でフォルダを作ってそこへ出力すればいいのとちゃう?
0768作本
2011/01/09(日) 10:42:55ありがとうございます。
dobonさんの紹介サイトは
http://dobon.net/vb/dotnet/links/createzipfile.html
です。
ただ、難易度や長所短所などは分かりません。
教えていただいた内容を踏まえ、
規定期間内のデータを取り込み、一定期間をさかのぼる過去のものは圧縮していき、
月日が経つごとに、過去のものになったデータも圧縮ファイルに納めていく…
という方法も効率てきかなと思っています。
0769デフォルトの名無しさん
2011/01/09(日) 10:50:3606:00:00からの経過時刻を表示したいのですが
コード教えてください。
0770デフォルトの名無しさん
2011/01/09(日) 10:51:270771デフォルトの名無しさん
2011/01/09(日) 10:51:450772デフォルトの名無しさん
2011/01/09(日) 10:59:08確認はしてない。
var now = DateTime.Now;
var from = new DateTime(now.Year, now.Month, now.Day, 6, 0, 0);
Console.WriteLine("{0}", (now - from).TotalSeconds);
0773デフォルトの名無しさん
2011/01/09(日) 11:01:16引き算するならTimerは何に使うのかと・・・
0774デフォルトの名無しさん
2011/01/09(日) 11:09:200775デフォルトの名無しさん
2011/01/09(日) 11:12:310776デフォルトの名無しさん
2011/01/09(日) 11:14:380777デフォルトの名無しさん
2011/01/09(日) 11:18:510778デフォルトの名無しさん
2011/01/09(日) 11:43:080779デフォルトの名無しさん
2011/01/09(日) 11:47:11昼の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());
0780デフォルトの名無しさん
2011/01/09(日) 12:17:300781デフォルトの名無しさん
2011/01/09(日) 12:19:130782デフォルトの名無しさん
2011/01/09(日) 12:35:47ありがとん
0783デフォルトの名無しさん
2011/01/09(日) 17:17:42初めて作ったプログラムを、初めて「発行」という操作をしたのですが、
発行場所というのがよく分からず、とりあえずデスクトップにしてみたのですが、
そこにできたSetupをクリックしたら、とりあえずインストールされたのですが・・・
本体のExeは何処にあるのでしょうか?Progrum Filesの中にはそれらしいのは見つからなかったのですが・・・
デスクトップ上に出来たマニフェストファイルはちがいますよね?
プロジェクトの中のbinのリリースフォルダでしょうか?
とすると、発行場所にできたファイル郡は何でしょうか?
0784デフォルトの名無しさん
2011/01/09(日) 17:26:06さもなくば
ClickOnce インストール先
などでググる
0785デフォルトの名無しさん
2011/01/09(日) 18:45:330786デフォルトの名無しさん
2011/01/09(日) 18:51:19発行ウイザードでできるプログラムは少し特殊なんですね。
いやー、自作アプリ作るのは敷居が高いなあ(^^;;;
0787デフォルトの名無しさん
2011/01/09(日) 18:54:190788デフォルトの名無しさん
2011/01/09(日) 19:11:18アンインストールもコントロールパネルから行うことができるので
ユーザーは本体の場所を知る必要がないはず
0789デフォルトの名無しさん
2011/01/09(日) 20:14:570790デフォルトの名無しさん
2011/01/09(日) 20:23:17ClickOnceみたいなのはユーザーにとってすごく抵抗感が強いので避けたほうがいいと思う
普通にインストーラ配るほうがマシ
0791デフォルトの名無しさん
2011/01/09(日) 20:23:560792デフォルトの名無しさん
2011/01/09(日) 20:25:05ClickOnce、ただのインストーラーとしても使えるよ。
ZIP で固めたインストーラーとしても配れる。
0793デフォルトの名無しさん
2011/01/09(日) 20:59:150794デフォルトの名無しさん
2011/01/09(日) 21:31:58もっと実用に耐えるものにして欲しいよな。
0795デフォルトの名無しさん
2011/01/09(日) 21:49:13どうしてGoogle Chromeは採用したんだろうね。
すごく抵抗感が強い?何それ妄想?
0796デフォルトの名無しさん
2011/01/09(日) 21:53:25zipパッケージだと馬鹿にはインストールできなかったりで
落とし所としてはこんなもんじゃねえかなあと思う
0797デフォルトの名無しさん
2011/01/09(日) 22:13:37Googleがリリースしたのをインストールするのと
そこらのサイトから誰とも知らん人が作ったアプリをインストールするのでは
前提を一にすることはできないのではないか
0798デフォルトの名無しさん
2011/01/09(日) 22:21:23ClickOnceではなくインストーラーなら信用できますッ!ってのも大概に頭おかしいだろw
0799デフォルトの名無しさん
2011/01/09(日) 22:24:05インストーラと何が違うってんだよ
0800デフォルトの名無しさん
2011/01/09(日) 22:26:52いつまで9x系の頭してるんだろう。
0801デフォルトの名無しさん
2011/01/09(日) 22:33:21.NETアプリはレジストリ使わなくなりつつあるけど
0802デフォルトの名無しさん
2011/01/09(日) 22:34:030803デフォルトの名無しさん
2011/01/09(日) 22:35:01なんでClickOnce VS インストーラーみたいな口調でしゃべってる人いるの?
0804デフォルトの名無しさん
2011/01/09(日) 23:34:210805デフォルトの名無しさん
2011/01/10(月) 00:41:150806デフォルトの名無しさん
2011/01/10(月) 01:11:32OS再インスコしたときにインストールし直すのめんどいしなー。小物アプリはzipで固めてくれたほうが助かる。
0807デフォルトの名無しさん
2011/01/10(月) 01:31:280808デフォルトの名無しさん
2011/01/10(月) 01:35:150809デフォルトの名無しさん
2011/01/10(月) 01:37:01ブチ込むインストーラーはないでしょw
>>805の言ってることは(本人が意図しているかどうかは分からないけど)正しいけど、
それって設定ファイルのことでしょ。
0810デフォルトの名無しさん
2011/01/10(月) 01:40:02ClickOnceがまさしくそうだが
0811デフォルトの名無しさん
2011/01/10(月) 01:55:31しかしUACみたいな仕組みを作ってまで、不正なプログラムが入らないようにセキュリティー上げているのに
それがウザいからってユーザーディレクトリーにインストールする仕組みを本家が出すってどうなんだろうな
0812デフォルトの名無しさん
2011/01/10(月) 01:59:411人のユーザーしか使わないならそのユーザーの許可だけ得られれば問題ないという考え方だろう。
結局UACだってユーザーに判断を委ねてるにすぎないし。
0813デフォルトの名無しさん
2011/01/10(月) 02:40:22セキュリティ的に問題ないからユーザーディレクトリにインストールできるようにしたんだろ
0814anonymous
2011/01/10(月) 02:47:410815デフォルトの名無しさん
2011/01/10(月) 02:58:070816デフォルトの名無しさん
2011/01/10(月) 03:09:06ClickOnceはユーザーディレクトリにインストールするから危険だ って凄い違和感あるんだが
0817デフォルトの名無しさん
2011/01/10(月) 08:49:15ユーザーフォルダってことは子供がPC触って簡単に
プログラム入っちゃうってことだろ。
0818デフォルトの名無しさん
2011/01/10(月) 09:01:170819デフォルトの名無しさん
2011/01/10(月) 09:02:20あるとすれば子供よりむしろ管理がめんどくさくなる企業とかの方だろう
0820デフォルトの名無しさん
2011/01/10(月) 10:23:03そういやChromeのインストールもユーザーディレクトリだったな
0821デフォルトの名無しさん
2011/01/10(月) 11:02:31ループ内でスリープをはさもうかと思ってるんですが
どうやって調査すればいいんでしょうか。
PerformanceCounterでCPU消費率は取れるっぽいんですが
単位時間あたりのHDDへのアクセス量の取り方がよくわかりません。
0822デフォルトの名無しさん
2011/01/10(月) 11:16:480823デフォルトの名無しさん
2011/01/10(月) 12:06:540824デフォルトの名無しさん
2011/01/10(月) 12:37:06Disk Read Bytes/secとかを指定すればいいんですかね。。
ちょっと試してみます。
ありがとうございました。
0825デフォルトの名無しさん
2011/01/10(月) 12:49:11どこにインストールするかは本質的な問題じゃなくて、恐らく>>811が言おうとしたことだと思うが、
OSは「問題の有無を判断すべき(できる)ユーザ」にだけ判断をさせる思想で
作ってあるのに、それと矛盾することをやっていいのかよって話。
0826デフォルトの名無しさん
2011/01/10(月) 12:50:420827デフォルトの名無しさん
2011/01/10(月) 12:52:040828デフォルトの名無しさん
2011/01/10(月) 13:00:12問題の有無を判断すべき(できる)ユーザがパソコン買えよ。
0829デフォルトの名無しさん
2011/01/10(月) 13:05:57OSはユーザーの権限内であれば何やってもいいように作ってあるだろ
頭おかしいの?
0830デフォルトの名無しさん
2011/01/10(月) 13:06:43これって特殊か?
自分が物をしらねえだけじゃねーの
0831デフォルトの名無しさん
2011/01/10(月) 13:12:39何でUACが出るとセキュリティが上がると思ってんの?気分的な問題?
0832デフォルトの名無しさん
2011/01/10(月) 13:19:10判断力のないユーザーがインストールしたソフトが、そのユーザーが権限もってる
ディスクのデータを全て破壊する物だとしてもか。
頭がオカシイのはどっちだよ。
0833デフォルトの名無しさん
2011/01/10(月) 13:20:06そんなのどこのOSでも同じだろ
誰の思想なんだよ?お前個人の?
0834デフォルトの名無しさん
2011/01/10(月) 13:20:55そんなのバッチだって作れるだろwww
0835デフォルトの名無しさん
2011/01/10(月) 13:21:570836デフォルトの名無しさん
2011/01/10(月) 13:22:47ここまでの馬鹿がClixkOnceに過剰反応していたんだと思うと笑える
0837デフォルトの名無しさん
2011/01/10(月) 13:24:04ぞんざいな口調でいきなり人をお前呼ばわりとか、
よくそういうガキ臭い自分自身に耐えられるな。
少しは自尊心ってものがないのかよ。
0838デフォルトの名無しさん
2011/01/10(月) 13:25:41自尊心に従って失せろカス。
0839デフォルトの名無しさん
2011/01/10(月) 13:27:32281 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/02(木) 00:33:08
馬鹿ばかりで話にならん。
「よく使われる」ことと「意味が明確」なことは全く別の事柄で、
俺は後者について怪しいと言ってるんだけど。
「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。
「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を
言わんとしてるんだろうと想像するが。例外に関して重要なことはプログラマがそれをちゃんと
想定しているか否かであって、「握り潰す」かどうかではない。
単にキャッチして伝達も処理もしないことが正常、という場合だってあるのに
「握りつぶす」なんて言い回しを平気で使えるガサツさは俺には理解できない。
0840デフォルトの名無しさん
2011/01/10(月) 13:30:27937 名前:デフォルトの名無しさん[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
現実世界の対面のコミュニケーションだと「モジモジ君」なコミュニケーション弱者に限って、
掲示板では面識もない相手をいきなり「お前」呼ばわり。
そういう自分に何も戦慄を感じないなら、立派な廃人だと思うがな。
0841デフォルトの名無しさん
2011/01/10(月) 13:31:500842デフォルトの名無しさん
2011/01/10(月) 13:33:50192 名前:デフォルトの名無しさん[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
※このスレと相談室に常駐です
※鍵括弧を多用します
※句読点は打つ派です
※○○性という言葉を好みます
※返す言葉がなくなると人格批判を始めます
※普段はいい子ですが、みながわけんじさんみたいに自分を過信する頑固さがあります
0843デフォルトの名無しさん
2011/01/10(月) 13:41:43パソコンは判断力の無いユーザーが
rd /S /Q %APPDATA%
なんてバッチを実行したら止めてあげないといけないんですかね
正直そこまで面倒見切れないような気がしますが
0844デフォルトの名無しさん
2011/01/10(月) 13:45:33ひ弱な自分自身を語るに落ちてるだけだと思うんだが、頭が悪いから気付かないのなきっと。
ついでに言えば、こんなコピペを何時でも貼れるように用意してる動機って
他人から見ればあまりに見え透いてる(それはまともに反論できないから、
こんなことでしか悔しさを晴らせない)ことも分からないらしい。
0845デフォルトの名無しさん
2011/01/10(月) 13:46:310846デフォルトの名無しさん
2011/01/10(月) 13:47:14そこまでパターンだよね
0847デフォルトの名無しさん
2011/01/10(月) 13:51:01これはホントどこのOSだろうがその通りだと思うんだけど。
例外さんの見解は違うの?教えてクレクレ。
0848デフォルトの名無しさん
2011/01/10(月) 13:52:11騒いでるやつ馬鹿すぎワロタ
0849デフォルトの名無しさん
2011/01/10(月) 13:55:240850デフォルトの名無しさん
2011/01/10(月) 13:55:56どこからがユーザーの責任か区別が付いていないから
こういうトンチンカンなことを言い出す
0851デフォルトの名無しさん
2011/01/10(月) 13:56:420852デフォルトの名無しさん
2011/01/10(月) 13:57:570853デフォルトの名無しさん
2011/01/10(月) 14:00:09哀れ過ぎてゾクゾクしますね
0854デフォルトの名無しさん
2011/01/10(月) 14:06:450855デフォルトの名無しさん
2011/01/10(月) 14:18:180856デフォルトの名無しさん
2011/01/10(月) 15:05:510857デフォルトの名無しさん
2011/01/10(月) 15:52:02どうしたら良いんですかね
0858デフォルトの名無しさん
2011/01/10(月) 15:54:330859デフォルトの名無しさん
2011/01/10(月) 15:55:20ブックマーク使う
アウトライン使う
ファイル分割する
お好きなのでどうぞ
0860デフォルトの名無しさん
2011/01/10(月) 15:55:390861デフォルトの名無しさん
2011/01/10(月) 19:52:200862デフォルトの名無しさん
2011/01/10(月) 19:55:45Down
0863デフォルトの名無しさん
2011/01/10(月) 21:46:55何もしない。諦める
0864デフォルトの名無しさん
2011/01/10(月) 21:51:52ブックマークか
初めて知った
0865デフォルトの名無しさん
2011/01/10(月) 23:08:49class 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' に暗黙的に変換できません。
と言われてしまいます
どうしたら良いのでしょうか
0866デフォルトの名無しさん
2011/01/10(月) 23:17:13hoge.A = 1;
return hoge;
}
にする
0867デフォルトの名無しさん
2011/01/10(月) 23:22:31>エラー 1
>静的でないフィールド、メソッド、またはプロパティ
> 'ConsoleApplication1.Program.Piyo(ConsoleApplication1.Hoge)'
>で、オブジェクト参照が必要です
クラスで慣れてるのですぐに対策が浮かばねえ
というかなんで値渡しの構造体なんて使うんだろう
0868デフォルトの名無しさん
2011/01/10(月) 23:31:050869デフォルトの名無しさん
2011/01/10(月) 23:38:06分かった
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;
        }
    }
}
0870デフォルトの名無しさん
2011/01/10(月) 23:50:300871デフォルトの名無しさん
2011/01/10(月) 23:55:07これだろ
http://msdn.microsoft.com/ja-jp/library/s35hcfh7.aspx
あってるんじゃね?
クラスといってもコンソールアプリだからなあ・・・
Piyoメソッドをstaticにすればいいだけじゃないの?
>>867のエラーは
>>865の方は対策してあるし
0872デフォルトの名無しさん
2011/01/11(火) 00:35:140873デフォルトの名無しさん
2011/01/11(火) 00:36:31あったんですが、なにでググレばいいっすかね?
0874デフォルトの名無しさん
2011/01/11(火) 00:37:590875デフォルトの名無しさん
2011/01/11(火) 00:38:47class 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();
}
}
こんな感じで、値が一緒に変化されると困るんです
0876デフォルトの名無しさん
2011/01/11(火) 00:38:53http://ufcpp.net/study/csharp/st_loop.html#foreach
0879デフォルトの名無しさん
2011/01/11(火) 00:43:17ttp://msdn.microsoft.com/ja-jp/library/t51esaeb.aspx
0880デフォルトの名無しさん
2011/01/11(火) 00:43:50using 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();
        }
    }
}
0881デフォルトの名無しさん
2011/01/11(火) 01:02:32いや、なんというかそれだと考えてる動作を満たせなくて・・・
うまく説明できないので整理して出直してきます
答えてくれてありがとう
0882デフォルトの名無しさん
2011/01/11(火) 01:44:37880で何が解決するのか
誰か解説してくれるとありがたい
0883デフォルトの名無しさん
2011/01/11(火) 06:15:330884デフォルトの名無しさん
2011/01/11(火) 14:35:07>>875実行してみろ
0885デフォルトの名無しさん
2011/01/11(火) 15:19:40同じものを参照しといて、同じになるなとはこれいかに。
0886デフォルトの名無しさん
2011/01/11(火) 15:24:460887デフォルトの名無しさん
2011/01/11(火) 15:27:43文章読めよ
>>875は避けたいコードの例だよ
質問主が構造体を利用してreadというワークエリアぽい物を使う意図が
さっぱりわからないので無難な回答として>>880のようなことになってるだけでしょ
.net開発はそれほどやってない人が変なことやってる場合もあるし
開発はそれなりになやってるけど質問する際に全部を明かすわけにもいかないので
こういう歯切れの悪い状態なのかもしれないし
0888デフォルトの名無しさん
2011/01/11(火) 15:29:11write1 = read; を write1.x = read.x; と書くか、ICloneableを実装しろ。
0889デフォルトの名無しさん
2011/01/11(火) 15:30:180890デフォルトの名無しさん
2011/01/11(火) 15:31:320891デフォルトの名無しさん
2011/01/11(火) 15:51:09とりあえず薄い入門書を一冊読んだ
0892デフォルトの名無しさん
2011/01/11(火) 15:55:26どんな本かによる 名前教えて
0893デフォルトの名無しさん
2011/01/11(火) 15:56:440894デフォルトの名無しさん
2011/01/11(火) 15:58:51専ブラでも作ったらどうだ?
C#をそこそこ使うから勉強になるぞ
0895デフォルトの名無しさん
2011/01/11(火) 16:14:23ありがとう。やっとわかったようなきがする。
0896デフォルトの名無しさん
2011/01/11(火) 16:31:51最終的に何作りたいかによるけど・・・
業務的に使いたいならデータ保存にDBとかXML使った名簿管理とかどう?
データの取り出し、追加更新削除や入力チェックとか
最低限業務で使用する機能が入ってる。
0897デフォルトの名無しさん
2011/01/11(火) 17:18:18のスレ立てれんかった
テンプレのリンクとか全部書きなおしたのに・・・
立てれる人いるならテンプレどっかにアップするよ。
0898デフォルトの名無しさん
2011/01/11(火) 17:24:37じゃあ立てたんでテンプレよろしく
http://hibari.2ch.net/test/read.cgi/tech/1294734221/
0899デフォルトの名無しさん
2011/01/11(火) 17:30:08ありがとう任務完了しました(`・ω・´)ゞ
0900デフォルトの名無しさん
2011/01/11(火) 17:58:510901デフォルトの名無しさん
2011/01/11(火) 19:20:00Form1のpublicな変数の値を、モーダルで開いたForm2のコンボボックスのTextプロパティに渡したいのですが、
コンボボックスのDropDownStyleをDropDownListにしてると出来ません。
コンボボックスの上部をユーザーがエディットできない状態にしつつ、
Form1の変数を渡すことは出来ませんか?
よくある、コンボボックスを開いてデバイスを選択して、環境変数を変更するダイアログが作りたいのですが。
0902デフォルトの名無しさん
2011/01/11(火) 19:24:510903デフォルトの名無しさん
2011/01/11(火) 19:34:59コンボボックスのプロパティの問題なのか、
フォームの開き方なのか、インスタンスの作り方なのか・・・
何処が原因なのか、まだよく分からないので、ヒント教えてください。
0904デフォルトの名無しさん
2011/01/11(火) 19:36:300905デフォルトの名無しさん
2011/01/11(火) 19:38:070906デフォルトの名無しさん
2011/01/11(火) 19:38:15items.index
この二つを使うだけじゃね?
0907デフォルトの名無しさん
2011/01/11(火) 19:59:13public 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)
0908デフォルトの名無しさん
2011/01/11(火) 20:18:46それForm2とか関係ないじゃん
DropDownListスタイルだったらTextになにを設定しても表示されない
0909デフォルトの名無しさん
2011/01/11(火) 20:22:55Listからせ託したものは表示されるけど、外部からプロパティでは触れないと?
うーん、じゃあ単に表示じゃなくて、Listの中から検索して表示にしないと駄目なのかな。
0910デフォルトの名無しさん
2011/01/11(火) 20:24:440911デフォルトの名無しさん
2011/01/11(火) 21:06:30そのコードをコピペしてやってみたら俺のは表示された
俺も初心者だから何が原因か分からないけど俺のソース貼ってみる。
↓↓↓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のドロップダウンする前のコンボボックス「ヤッホー」と表示される
0912デフォルトの名無しさん
2011/01/11(火) 21:25:54>コンボボックスのDropDownStyleをDropDownListにしてると出来ません。
って書いてあるじゃん
0913デフォルトの名無しさん
2011/01/11(火) 21:41:16DropDownListにしてなかった すいません
0914デフォルトの名無しさん
2011/01/11(火) 22:32:00うむ。許してやる。
0915デフォルトの名無しさん
2011/01/11(火) 22:37:380916デフォルトの名無しさん
2011/01/11(火) 22:46:470917デフォルトの名無しさん
2011/01/12(水) 00:07:350918デフォルトの名無しさん
2011/01/12(水) 09:28:59最低限読んどけよなカス
0919デフォルトの名無しさん
2011/01/12(水) 09:40:420920デフォルトの名無しさん
2011/01/12(水) 10:18:54(サードパーティツールは使用不可能)て作成できませんか?
要は、プログラム内のボタンをクリックしたタイミングで接続している携帯で電話をかけられればいいのですが
今のところドコモのFOMA限定で考えています(ガラケーのほう)
WindowsPhoneならいけそうですが、そうもいかないっぽいので
PCとFOMAの接続は純正のUSB→FOMAの充電部接続するケーブルを考えています。
絶対に無理とか何らかの情報で構わないのでお願いします。
0921デフォルトの名無しさん
2011/01/12(水) 10:33:27たぶん無理だと思います。
0922デフォルトの名無しさん
2011/01/12(水) 10:36:17物理的にボタンを押す装置を作ればok
0923デフォルトの名無しさん
2011/01/12(水) 10:50:360924デフォルトの名無しさん
2011/01/12(水) 10:51:35>携帯電話をモデムとして
これが出来ればATコマンドでいけるんですが・・・
>>922
それは難しいです
0925デフォルトの名無しさん
2011/01/12(水) 11:10:220926デフォルトの名無しさん
2011/01/12(水) 12:06:25ありがとうございます!!
こんな資料があるとは・・・・
USBハンズフリーあたりの情報からいけそうな気がしてきました。
レスくださった皆様ありがとうございました!
0927デフォルトの名無しさん
2011/01/12(水) 12:09:49ボタン部分をひっぺがしてショートさせるやつだけど
>>925のような資料を元に一昔前はPCで携帯電話の
メモリー管理をするケーブルとかソフト売ってた記憶があるけど
ああいうのってもうないのかね?
あれだと確かドライバー入れればソフトは自分でも作れたような記憶が・・・
というかケーブルとドライバーさえなんとかなればFOMAだろうが単なるモデムにみえるよね?
0928デフォルトの名無しさん
2011/01/12(水) 12:53:01ショートさせるのは強引すぎますねぇ(^^;
とりあえずモデムに見えるのを期待してドライバとか入れてみます。
0929デフォルトの名無しさん
2011/01/12(水) 12:59:10http://www.reudo.co.jp/crystal/index.html
0930920
2011/01/12(水) 13:04:51これでリファレンスにのっとってATコマンドで制御できそうな感じです。
ttp://www.uproda.net/down/uproda192356.png.html
0931デフォルトの名無しさん
2011/01/12(水) 13:06:30ググってもPC自体がが接続しているかどうかのチェック方法しかでてこなくて・・・
0932デフォルトの名無しさん
2011/01/12(水) 13:18:580933デフォルトの名無しさん
2011/01/12(水) 13:26:19って場合は接続していないで良いの?
0934デフォルトの名無しさん
2011/01/12(水) 18:52:140935デフォルトの名無しさん
2011/01/12(水) 21:15:05アプリケーションを実行中にもう一つウィンドウを出したいのですが、
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枚目のウィンドウも同時に使いたいです。
どういうコードを書けば期待した動作をしてくれますか。
0936デフォルトの名無しさん
2011/01/12(水) 21:16:44待つならSystem.Windows.Forms.Timerでも使えばいい
0937デフォルトの名無しさん
2011/01/12(水) 21:17:15自分の複製をもう一枚表示するの?
0938デフォルトの名無しさん
2011/01/12(水) 21:26:31的確なアドバイスありがとうございました。
>>937
実際に作りたいものは少し違うのですが、大筋ではこのようなことがやりたかったのです。。
0939デフォルトの名無しさん
2011/01/12(水) 21:30:120940デフォルトの名無しさん
2011/01/12(水) 22:03:33現在、ASP.NETで開発をおこなっておりそこにlog4netを導入しました。
設置環境としてはWindowsserver20008R2で
社内環境や客先で基本的には上手く動いているのですが
級ににログが出力されなくなったりすることがあります。
何かIISの設定やWebConfig等に気をつけることとかありますでしょうか?
続いて2点目なのですが、WebからClickOnceを起動するときに
401エラーが発生してしまいます。IISの設定はWindows統合認証に
設定しており、これは自社では動き、客先でエラーになっている
状態です。
分かりにくいかと思いますが、どうぞよろしくお願い致します。
0941デフォルトの名無しさん
2011/01/12(水) 22:53:17ログが出力されなくなる直前のログを確認しろよ
後半
ログ見ろよ
0942931
2011/01/12(水) 23:21:29netstatで確認出来ることは知っていたのですが、それをどうやって持ってくるのかが分かりませんでした
調べたところAPIのGetExtendedTcpTableなどで出来るみたいですね
ありがとうございました
0943デフォルトの名無しさん
2011/01/13(木) 09:07:09んナめんどくさいことしなくても
こんなんじゃだめ?
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
0944デフォルトの名無しさん
2011/01/13(木) 10:20:320945デフォルトの名無しさん
2011/01/13(木) 10:44:57ただし、StreamがCanSeekを支援している必要がある
0946デフォルトの名無しさん
2011/01/13(木) 10:56:42入れ子構造になった構造体をtreeviewに展開するのにすごく時間がかかります、
全部のノードで2万程なんですが、どうしたら素早く表示できるでしょうか
現状Core2 Duo 1.4GHzで30秒くらいかかります
0947デフォルトの名無しさん
2011/01/13(木) 10:58:590948デフォルトの名無しさん
2011/01/13(木) 11:51:320949デフォルトの名無しさん
2011/01/13(木) 11:55:450950デフォルトの名無しさん
2011/01/13(木) 12:04:45子ノードのクリックはしったら別スレッドで取得する
Windowsのエクスプローラのツリーがそんな感じでしょ?
0951デフォルトの名無しさん
2011/01/13(木) 12:14:44じゃあ>>948のようなトップノードを最初に追加して必要に応じて部分的にノードを追加するしかないな
この辺が参考になるかと
http://www.atmarkit.co.jp/fdotnet/dotnettips/260createtreeview/createtreeview.html
0952デフォルトの名無しさん
2011/01/13(木) 12:16:51>>951でやれば結構楽と思うよ
メモリの容量によると思うけど
0953デフォルトの名無しさん
2011/01/13(木) 12:48:000954デフォルトの名無しさん
2011/01/13(木) 13:56:16回転中心の座標を移動させることは出来るのでしょうか?
0955デフォルトの名無しさん
2011/01/13(木) 13:59:470956デフォルトの名無しさん
2011/01/13(木) 14:00:370957デフォルトの名無しさん
2011/01/13(木) 14:00:54なにを言っているか判りませんが
何とかすれば可能でしょうね
0958954
2011/01/13(木) 14:08:49回転する物体を平行移動しているのですが、
どうも平行移動する際に、回転の角度がおかしくなってしまうので、
回転中心が移動されてなく、固定されているんじゃないかなと思ったのです。
ですので、物体の平行移動と同じように回転中心を移動できれば改善されるかなと思ったのです。
0959デフォルトの名無しさん
2011/01/13(木) 14:11:000960デフォルトの名無しさん
2011/01/13(木) 14:11:17Managed DirectXの話?
0961デフォルトの名無しさん
2011/01/13(木) 14:14:310962954
2011/01/13(木) 14:15:54クォータニオンで回転させているのですが、物体を移動させないときはきちんと回転させれるのですが、
移動すると平行移動しかしてないにも関わらず、変な方向にぶっ飛んでいきます
>>960
>だからまず回転する物体とはなんなのか説明してよ
すみません、何を聞かれているのかがわかりません。
WPF,C#,Direct3Dでしょうか
0963デフォルトの名無しさん
2011/01/13(木) 14:16:05一旦ポリゴンを分割して回せばいいだけなんだけどな
0964デフォルトの名無しさん
2011/01/13(木) 14:17:29与え方が悪いだけのような
その場所付近のコードは晒せる?
0966デフォルトの名無しさん
2011/01/13(木) 14:18:33逆にしてみ
0967954
2011/01/13(木) 14:22:43理解しました。物体は振り子のようなものです。
>>964
degree = parameter[2]
Quaternion xz = new Quaternion(new Vector3D(0, 0, 1), degree);
Aa.OffsetX = parameter.z[0];
Aa.Rotate(xz);
0968デフォルトの名無しさん
2011/01/13(木) 14:25:24拡大縮小回転の中心が原点にくるように平行移動 -> 拡大縮小 -> 回転 -> 目的の位置へ平行移動
の順で変換する
0971デフォルトの名無しさん
2011/01/13(木) 14:40:46WPFはクォータニオンなんか直接触らなくても回転できる。わかんないなら難しいことしなくていい。
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を適用するだけ
0972デフォルトの名無しさん
2011/01/13(木) 14:52:58やってみます。
0973デフォルトの名無しさん
2011/01/13(木) 15:01:36とおもったけどTransform3DGroup.Childrenが全部やってくれるのなら
それでいいのかも
0975デフォルトの名無しさん
2011/01/13(木) 15:20:380976デフォルトの名無しさん
2011/01/13(木) 15:20:42テーブル定義で、
command.CommandText = "create table Id_Name (id char NOT NULL primary key, name char)";
と、Id_Nameというテーブルを定義しました。
これでidは重複する文字は登録できなくなったのですが、
書き込むときに、
idが重複した場合エラーを
Messagebox.Showで表示したいんですが
判定条件?はどうしたらいいですか?
それから、NOT NULLにしてるので
文字が書き込まれなかった場合も
上記同様にしたいのですが
どうしたらいいですか?
参考ページなどでもいいのでお願いします!
0977デフォルトの名無しさん
2011/01/13(木) 15:22:410978デフォルトの名無しさん
2011/01/13(木) 15:23:040979デフォルトの名無しさん
2011/01/13(木) 15:23:59(;´д`)
0980デフォルトの名無しさん
2011/01/13(木) 15:24:16try
{
//処理
}
catch
{
//エラー処理
}
こんな感じかな
0981デフォルトの名無しさん
2011/01/13(木) 15:25:100982デフォルトの名無しさん
2011/01/13(木) 15:31:470983デフォルトの名無しさん
2011/01/13(木) 15:32:14他に何かあればと思ったんですが・・・
0984デフォルトの名無しさん
2011/01/13(木) 15:33:09やってみます!
0985デフォルトの名無しさん
2011/01/13(木) 15:36:46俺は基本的に例外はかせたくないタイプ
例外は本当に例外の時だけ 捕まえれるものは捕まえたい
0986デフォルトの名無しさん
2011/01/13(木) 15:42:25順番にやっていけ
http://cs2ch.blog123.fc2.com/blog-entry-1.html
0987デフォルトの名無しさん
2011/01/13(木) 15:50:26C/C++時代のようにリターンコードを見るって感じじゃないみたいね
一応try catchもcatch側で細かいエラータイプをみれるようだけど
0988デフォルトの名無しさん
2011/01/13(木) 15:59:29command.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さん同様例外はかせたくないのですが
データ量がこれから多くなります・・・
水際でキャッチというのもよくわからなかったので><
0989デフォルトの名無しさん
2011/01/13(木) 16:00:58catch(Exception)
になっているんですけど
Exception以外のほうがいいんですかね??
0990デフォルトの名無しさん
2011/01/13(木) 16:04:20CatchはDuplicationExceptionとか、重複した時に(に限らず想定できるもの)起こりうるような例外だけにして、
それ以外の物はキャッチするなり、しないなりしてリソースとかを適切に処理した後、
再度スローして任せるようにしたりするのはどう?
0991990
2011/01/13(木) 16:05:06これ
もし、UnhandledExceptionとかで捕捉してるなら
の間違い
0992デフォルトの名無しさん
2011/01/13(木) 16:10:21このtrycatchの外でも
違う場所で例外が出る可能性があるので
trycatchしています。
それもExceptionになってます。
trycatchが二重になっているといえばわかるでしょうか?
DuplicationExceptionとは、初めて聞きました。
ネットで調べてみたのですが
よくわかりません・・・
catch(DuplicationException)としてみると
usingディレクトリまたはアセンブリ参照が不足しています
と出てしまいます。
何をusingすればいいですか???
0993デフォルトの名無しさん
2011/01/13(木) 16:15:58そりゃ取りあえずそれっぽい名前で書いただけだからあるわけがない
リファレンスの説明見るのが早いけど
一旦Exceptionで主キー重複例外発生させて
うけたExceptionの中身が本当は何なのかを見れば一応元の例外は判ると思うよ
あと入れ子になってる例外処理はバグとか調査の難航になると思ってるのは俺だけだろうか・・・
0994デフォルトの名無しさん
2011/01/13(木) 16:35:50(Exception e)
e = {"Abort due toconstraint violation\r\nclumn Sirial_No is not unique"}
でした。
でも表示すると長ったらしく書いてあります。
なんの例外だかわかりますか?
trycatchの二重はやっぱりよくないですか・・・。
なんの例外だかわかれば二重にしなくてもいいのですが・・・
0995デフォルトの名無しさん
2011/01/13(木) 16:38:06Sirial_Noとはidのことです!
0996デフォルトの名無しさん
2011/01/13(木) 16:41:23チェックしたほうがいいって。
いきなりDBに突っ込んで例外で判定なんてDQNだ。
0997デフォルトの名無しさん
2011/01/13(木) 16:57:23catch(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 って何を書き込めばいいんですか?
0998デフォルトの名無しさん
2011/01/13(木) 17:15:46GCHandle.Allocで取得した領域を後から書き換える事って出来ますか?
ある構造体でAllocした領域を丸ごと同じ型の構造体データで上書きとかでもいいのですが…
0999デフォルトの名無しさん
2011/01/13(木) 17:18:28select count(id) from テーブル名 where id = @id
これで最低でも0はかえってくるんだぞ?
そうでなくてもレコードが返ってこないだけなんだから問題ない
DBのNULLは DBNull.Value ちゃうのん?
1000デフォルトの名無しさん
2011/01/13(木) 17:24:11なるほど
Countのことなど頭になかったです!
ありがとうございます!
やってみます☆
DBNull.Valueですね
こっちもやってみます!
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。