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

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

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

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

■前スレ

ふらっとC#,C♯,C#(初心者用) Part77
http://hibari.2ch.net/test/read.cgi/tech/1310106189/

■関連スレ
C#, C♯, C#相談室 Part67
http://hibari.2ch.net/test/read.cgi/tech/1308128665/
ミスターサタンのC#相談室 
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/
2デフォルトの名無しさん:2011/08/03(水) 03:44:33.02
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
3デフォルトの名無しさん:2011/08/03(水) 05:43:14.58
1おつです
君らは初心者のうちは何をコンパイルしたの?
とにかくやってみようと思ってます
4デフォルトの名無しさん:2011/08/03(水) 09:04:05.37
>>3
>君らは初心者のうちは何をコンパイルしたの?
ソースプログラム以外の何を期待しているわけ?
5デフォルトの名無しさん:2011/08/03(水) 09:28:01.80
どんなプログラムを作ったの?って意味だろうよw
6デフォルトの名無しさん:2011/08/03(水) 09:58:26.60
初心者のうちはコンパイルせずにインタプリタしてました
7デフォルトの名無しさん:2011/08/03(水) 11:25:19.24
初心者は紙キーボードでコード打ち込んで机上デバッグだろ
8デフォルトの名無しさん:2011/08/03(水) 18:18:29.54
PrintPriviewControl上で余白領域サイズをマウスで動的に変更させたいと思っています。
用紙内の配置位置はこちらが管理しているので分かるのですが、コントロール内の用紙(白い部分)の位置がどこにあるかを取得することができません。
どのように取得すればよいでしょうか。若しくはもっと別な方法で実現できるのであれば教えて頂きたいです。
9デフォルトの名無しさん:2011/08/03(水) 18:18:53.56
非常にざっくりとした質問しかできないのですが、
一つ教えてください。
現在、SQLServerを利用したシステムをC#で作成しているのですが、
そのシステムを稼動したまま放置していると、
システムがエラーで落ちてしまいます。
ソースに手が入れられないのと、
ソースを見ることができないため、
なんらかのあたりを付けたいのですが、
どんどんメモリ使用量が減ってゆく程度しかこちらではわかりません。

C#メモリ開放についてなのですが、
システムが落ちてしまうほど解放することなんてあるのでしょうか?
10デフォルトの名無しさん:2011/08/03(水) 19:05:47.93
EXEがあるならソースを作ればいいじゃない
11デフォルトの名無しさん:2011/08/03(水) 19:14:13.60
C#メモリ開放 が何を言っているのかわからない
ソースを見ることすらできないプログラムをどうしたいのかもわからない

落ちる原因やモジュールはエラーメッセージ見れば解ると思うがそれすらできないのか
12デフォルトの名無しさん:2011/08/03(水) 19:48:28.32
普通に考えればOutOfMemoryExceptionだけど、
何が落ちてるのかすらハッキリしない文章じゃ何とも言えない
13デフォルトの名無しさん:2011/08/03(水) 20:07:49.34
Form1からForm2を呼び出す際、常にForm2はForm1の上に描画をしたい。
メッセージボックス的な常に前にではなくて、
起動したFormの上にという意味です。
具体的には、デュアルディスプレイ環境で実行して、
@メインディスプレイ上にForm1→メインディスプレイのForm1の上にForm2が表示
Aサブディスプレイ上にForm1→メインディスプレイにForm2が表示
されてしまいます。
AのForm2もサブディスプレイに表示するにはどうすればよいでしょうか。
14デフォルトの名無しさん:2011/08/03(水) 20:24:21.28
>>13
Form2のstartuppositionを弄ってみよう
15デフォルトの名無しさん:2011/08/03(水) 20:39:21.27
>>14
できました!ありがとう!
16デフォルトの名無しさん:2011/08/03(水) 20:39:26.27
独りで独学だとモチベが上がらない夏厨ですが、C#の学習できる教室とかないですか?関西近辺で希望。
ふらっと駅から行けるところがいいな。
17デフォルトの名無しさん:2011/08/03(水) 21:01:53.70
Console.WriteLine("おはようございます");
18デフォルトの名無しさん:2011/08/03(水) 23:39:59.78
Console.WriteLine("計算結果"{0},5+7);
19デフォルトの名無しさん:2011/08/03(水) 23:56:09.86
Microsoft Visual Studio 2010 Professional 試用版 - Web Installer
から落として、
C:\Program Files\Microsoft Visual Studio 10.0\
VC#\Specifications\1041\CSharp Language Specification.doc
を拾い出して
pro版を一旦アンインストールしてEX版を入れなおしました。
3n目からイキナリ
using System;
namespace Acme.Collections
{
public class Stack {
Entry top;
public void Push(object data) {
top = new Entry(top, data); }
public object Pop() {
if (top == null) throw new InvalidOperationException();
object result = top.data;
top = top.next;
return result; }
class Entry {
public Entry next;
public object data;
public Entry(Entry next, object data) {
this.next = next;
this.data = data; } } }}
でゲンナリでし
20デフォルトの名無しさん:2011/08/04(木) 00:04:54.24
Javaのserializeに該当するあれこれってC#にあるの?
21デフォルトの名無しさん:2011/08/04(木) 00:09:06.64
22デフォルトの名無しさん:2011/08/04(木) 00:18:07.09
さんくす
23デフォルトの名無しさん:2011/08/04(木) 05:19:58.02
Visual studio のweb developerで
やっとWeb Server できたわ。

SQLServerで 一行づつの読み取りも実行もできた。
http://jeanne.wankuma.com/tips/csharp/sqlserver/open.html
http://jeanne.wankuma.com/tips/csharp/sqlserver/executenonquery.html
http://jeanne.wankuma.com/tips/csharp/sqlserver/executereader.html

参考

<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
24デフォルトの名無しさん:2011/08/04(木) 08:43:32.29
DoEvents いれたやつぶっ殺す
これ処理中に何やられるかわからないっしょ
初期化中に終了処理が走り始めたりマジクソだな
25デフォルトの名無しさん:2011/08/04(木) 09:16:51.98
なつやすみだなぁ
26デフォルトの名無しさん:2011/08/04(木) 09:57:55.01
>>24
あ ほ
27デフォルトの名無しさん:2011/08/04(木) 14:11:08.95
まだまだ〜!夏はこれから!
28デフォルトの名無しさん:2011/08/04(木) 14:34:42.81

Console.WriteLine("割引後の金額{0}円",100*0.8);
Console.WriteLine("割引後の金額{0}円",420*0.8);
29デフォルトの名無しさん:2011/08/04(木) 14:37:35.38
double waribiki=0.8;
Console.WriteLine("割引後の金額:{0}円",100*waribiki);
Console.WriteLine("割引後の金額:{0}円",420*waribiki);
30デフォルトの名無しさん:2011/08/04(木) 16:22:05.19
間違い発見。
http://atamoco.boy.jp/asp/20101018_1.php

SQL SERVER 接続で
web.config] appSettings セクションから読み取る

string conStr = ConfigurationManager.AppSettings("conStringOracle");

string conStr = ConfigurationManager.AppSettings["conStringOracle"]; 
下でないと動かない。



こっちはあってる。
[web.config] connectionStrings セクションから読み取る

string conStr = ConfigurationManager.ConnectionStrings["conStringOracle"].ConnectionString;



31デフォルトの名無しさん:2011/08/04(木) 17:31:26.48
double kazu=0.8;
kazu=Math.Cos(kazu);
Console.WriteLine(kazu.ToString());
32デフォルトの名無しさん:2011/08/04(木) 20:08:24.39
>>30
ここじゃなくて本人に言ってくれよ
33デフォルトの名無しさん:2011/08/04(木) 21:15:39.20
WEBで
response.redirect("aaa.aspx")

だとエラー
Response.Redirect("aaa.aspx")

だと走る。
大文字小文字って絶対的にうるさいんでしょうか?C#では 。
34デフォルトの名無しさん:2011/08/04(木) 21:19:45.64
System.Windows.Forms.NumericUpDown
で、テキストボックスのテキストが変わるたびに、ValueChanged が起こるようにするにはどうすればいいですか?
数値が変わるたびに、他のコントロールと連携して表示を変えたいです。
35デフォルトの名無しさん:2011/08/04(木) 21:31:26.29
>>33
C#では大文字小文字は区別される

>>34
他のテキストボックスコントロールが変更された場合、NumericUpDownのValueChangedを起こるようにしたいの?
36デフォルトの名無しさん:2011/08/04(木) 21:32:28.70
>>33
vb厨乙
37デフォルトの名無しさん:2011/08/04(木) 21:34:19.17
>>35
わかりにくくてすみません。
NumericUpDown内のテキストボックス部のことです。
38デフォルトの名無しさん:2011/08/04(木) 21:50:48.13
>>33
とりあえず言語仕様を一通り読むんだ
そしてVBのことは忘れるでござる
39デフォルトの名無しさん:2011/08/05(金) 09:48:29.70
double[,] をコピーするいい方法を教えて下さい
40デフォルトの名無しさん:2011/08/05(金) 10:17:50.77
double[,] hoge = new double[640,480];
double[,] hage;

hage = (double[,])hoge.Clone();
41デフォルトの名無しさん:2011/08/05(金) 10:23:19.30
ありがとうございます
すばらしい
では次にそのhogeの一部をコピーする(例えば[640,480] ->[640,200])のにいい方法を教えて下さい
42デフォルトの名無しさん:2011/08/05(金) 10:30:52.87
てか、二次元配列は使うな
43デフォルトの名無しさん:2011/08/05(金) 10:34:46.58
clone()大丈夫?
44デフォルトの名無しさん:2011/08/05(金) 11:07:10.48
>>34
何か勘違いしてるんじゃね。
NumericUpDownのテキストボックス部の値を書き換えたら
普通にValueChangedイベントは発生するが?
4534:2011/08/05(金) 13:14:42.77
private void updownPrice_ValueChanged(object sender, EventArgs e)
{
 System.Diagnostics.Debug.Print("Price:{0}", (int)updownPrice.Value);
}
とか、やってみてるんですが、矢印で値を変更するとすぐに呼ばれるのに、
テキストボックス部に数値を直接タイプした場合は、フォーカスを失ったとき(?)でしか呼ばれません...

なにか必要なプロパティの設定とかがあるんでしょうか。
46デフォルトの名無しさん:2011/08/05(金) 13:17:04.21
普通のTextBoxだとChangingみたいな編集中イベントがあったはずだけど
そういうのがなければ
フォーカスが離れた時点で変更後とみなすってことじゃないの?
47デフォルトの名無しさん:2011/08/05(金) 13:22:54.47
IMEがONなら確定後とかじゃねーのかのー。
48デフォルトの名無しさん:2011/08/05(金) 13:24:08.09
>>45フォーカスガ離れる?
数値変更してEnter押したら普通にイベント発生するでしょ?
そういう動作のことじゃないの?
49デフォルトの名無しさん:2011/08/05(金) 13:25:46.48
>>48
そういうのじゃなくて数字だけ入力したらイベント発生すると思ってるんでしょ
一桁ならそういう仕様でもいいけど二桁以上ならどうするのって話だしな
イベント発生させるトリガーをどうするかっていうのをもうちょっと考えてみてほしい
50デフォルトの名無しさん:2011/08/05(金) 13:28:29.45
数字だけ入力して「入力完了!」って人は少ないと思うけど、
まあ、エンター押してください、て注釈つけるしかないんじゃね。
51デフォルトの名無しさん:2011/08/05(金) 13:32:55.58
入力途中でもなんかしたいとかじゃないのかな?
keypressでValue見てもまともに取れないのでだめだね
5234:2011/08/05(金) 13:43:54.74
1234と入力したときに、
1, 12, 123, 1234 のどれも取得したいんですが...

>>49
ぐぐったら負数で、たとえば-1234のときとかだとどうするんだ? って意見もありましたけど、
「-」の段階ではValueChangedを起こさなければいいだけだと思いました。
そして、-1, -12, -123, -1234 が取得できたらなーと思ってます。

>>51の言うようにできたとしても、ユーザーの生の操作を直接扱うのもまどろっこしいし、
せめてテキスト部の変更だけでも検知できないものなんでしょうか。
53デフォルトの名無しさん:2011/08/05(金) 13:46:23.97
この際自分でコントロール作れ
そうすればtextboxみたいな部分はtextboxなんだから
textboxが持ってるイベント全部使える
54デフォルトの名無しさん:2011/08/05(金) 14:08:07.23
俺は今までNumericUpDownを使ったことないことに気付いた
テキストボックスに表示して、上下欲しい場合はボタンコントロール二つ用意してる
55デフォルトの名無しさん:2011/08/05(金) 14:28:29.00
↑そっちのほうが後々融通が利いてよいことが多い。
56デフォルトの名無しさん:2011/08/05(金) 15:37:48.65
わかりました。そうします。
57デフォルトの名無しさん:2011/08/05(金) 20:35:58.14
>>54、55
素直にnumericupdown使えよ
標準コントロールがあるのにわざわざコード書くなんて馬鹿じゃねえか?
58デフォルトの名無しさん:2011/08/05(金) 20:36:03.68
textbox.textに何かしらの値が入っているとき(nullはcatchで捕まえるとして)、
半角数字で0〜100000の数字→true
それ以外         →false
とするには、どういうロジックが一番シンプルだろうか。
59デフォルトの名無しさん:2011/08/05(金) 20:39:56.05
int.TryParse(text,out i) && 0<=i && i <=100000より短くする必要を感じない
あとTextBox.Text==nullはありえないと思う
60デフォルトの名無しさん:2011/08/05(金) 20:49:44.96
windows7 64bit + VSEx2010を使っていますが、
messageBox.show()で表示した際にOKボタンが右側によってしまいます。
中央にするにはどうしたらよいでしょうか。

MessageBox.Show("値を入力してください","エラー",MessageBoxButtons.OK,MessageBoxIcon.Error);

書いたコードです。
61デフォルトの名無しさん:2011/08/06(土) 01:06:06.14
今は気にしないことだ
アプリを作り終えて、最後に取り掛かるといい
62デフォルトの名無しさん:2011/08/06(土) 01:20:23.50
まるっきりお手上げなので質問させてください。
System.Net.WebClient.DownloadStringAsyncメソッドで非同期ダウンロードでweb上からテキストデータを取得しようとしたんですが
あるページのテキストを取得しようとすると壊れてるというか一部分がなくなって、デバッグでe.Resultを見てみたんですが、ダウンロードしてきてその地点で生のデータを見てもなくなっています
Webブラウザ上から見ると普通に表示されているんです。これはどういうことでしょうか?
あとDownloadFileメソッドを使った場合、上記の不具合なく落ちてきました。
もしかしてstring型って限界サイズとかあるんでしょうか?だいたい多くて600KBくらいなんですが・・・
解決策知ってる人がいたら教えて下さい。
63デフォルトの名無しさん:2011/08/06(土) 01:22:27.76
文字コードがあってないとか
64デフォルトの名無しさん:2011/08/06(土) 01:26:36.32
クライアント名で出力をわけているとか
65デフォルトの名無しさん:2011/08/06(土) 01:29:09.98
DownloadFile使えば良い気がする
66デフォルトの名無しさん:2011/08/06(土) 01:31:00.99
差し支えなければURL出してみるとか
6762:2011/08/06(土) 01:42:29.80
>>66
18禁なんですが、いいんですか?
スレ荒れたりしないですかね…
http://mimizun.com/log/2ch/erochara2/1188649973/
ここのソースコードで42行目から1469行目までが飛ぶんです
他のログでも試したところ飛んだりしないです・・・

>>65
ただ単にダウンロードするだけならそれでいいんですが、ダウンロードして中身修正したりするんで
ダウンロードしてきたファイルの文字コードがわからないとどうすることもできないんです・・・

>>64
UserAgentで分けてるって言うことですか?
68デフォルトの名無しさん:2011/08/06(土) 02:03:37.09
18禁だのなんだの、目的など構わん
達成するためにプログラムを自分で作ろうとしていることに意味がある
69デフォルトの名無しさん:2011/08/06(土) 02:19:06.43
まるっきりお手上げのときは一発抜いてみよ。さすれば賢者モード発動するぜ?
70デフォルトの名無しさん:2011/08/06(土) 03:08:07.16
抜いたらダラダラ2ちゃんやっちゃうからNG
71デフォルトの名無しさん:2011/08/06(土) 04:01:50.11
質問です

webBrowserを3つ作ってそれぞれ別のクッキーを持たせたいのですが webBrowserごとにクッキーを設定する方法はありませんか?
7271:2011/08/06(土) 05:02:14.09
追記
同一のページで 別々のクッキーです わかりにくくてすみません
73デフォルトの名無しさん:2011/08/06(土) 05:49:44.14
c#のクッキーって自前管理しないとだめだったような
クッキーコンテナってのがあったはず
74デフォルトの名無しさん:2011/08/06(土) 06:12:13.75
それはHttpWebRequestの話じゃなくて?
75デフォルトの名無しさん:2011/08/06(土) 06:13:00.02
http://ideone.com/uCJ1Q

n2をint型に変換しようとすると
System.Text.RegularExpressions.Match' から 'string' に変換できません
と出ます
int.Parseは元の変数がString型じゃないとできないのは分かるのですが それ以外にint型に変換する方法が分かりません
どうか教えてください
76デフォルトの名無しさん:2011/08/06(土) 06:16:42.64
>>74
そうでしたw
webBrowserの場合は無理かもしれないな・・・
77デフォルトの名無しさん:2011/08/06(土) 06:29:52.28
>>75
http://msdn.microsoft.com/ja-jp/library/system.text.regularexpressions.match%28v=VS.100%29.aspx
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
一致した部分文字列の入力文字列内での開始位置 (起点を 0 とする) が Index プロパティによって示され、
一致した部分文字列の入力文字列内での長さが Length プロパティによって示されます。

パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
パターン一致が正常に実行された場合、一致した部分文字列が Value プロパティに含まれ、
78デフォルトの名無しさん:2011/08/06(土) 06:34:26.82
やかましい
79デフォルトの名無しさん:2011/08/06(土) 06:34:57.69
>>75
全部をちゃんとみてないけどこれでダメなん?
int n3 = int.Parse(n2);

int n3 = int.Parse(n2.ToString());
80デフォルトの名無しさん:2011/08/06(土) 06:35:13.59
ゴミHTMLパース出来るOSSのパーサー知りませんか?
Aタグだけ引っ張ったりしたい
81デフォルトの名無しさん:2011/08/06(土) 06:38:39.69
GPLで構わないのならSGMLReaderが一押し
82デフォルトの名無しさん:2011/08/06(土) 06:44:15.07
というか何がしたいのかよくわからんがなんにもMatchしてねーじゃん
83デフォルトの名無しさん:2011/08/06(土) 06:48:11.76
http://ideone.com/0Kyy6
まずは正規表現周りを直せw
8475:2011/08/06(土) 06:48:53.37
>>79で解決しました ありがとうございます

>>82
すみません 元のコードが長かったので少し改変してます
なのでミスが多いです ごめんなさい
85デフォルトの名無しさん:2011/08/06(土) 06:57:43.22
>>81
やっぱそれになるか・・・サンクス
86デフォルトの名無しさん:2011/08/06(土) 08:33:12.88
>>58
想定ないのものは例外で取るなってヘルプで見た
87デフォルトの名無しさん:2011/08/06(土) 11:08:27.22
>>61
そんなこと言わないで教えてください
88デフォルトの名無しさん:2011/08/06(土) 13:16:56.41
webbrowser.documenttextに、htmlを流し込んでるんだけど、
html内のテーブルタグ内でフォント指定してるのに反映されない

なんで?
89デフォルトの名無しさん:2011/08/06(土) 22:17:13.02
いま2chに書き込みするツールを作ってるんだけど
Cookieで躓いてしまったんだ
2回目のPOSTのときにCookieを渡すところがうまくいってない気がするんだが、
何で駄目なのか、どうすればうまくいくのかがどうしてもわからん

頼む、哀れな子羊を助けてくれ(´・ω・`)


■現状
「書き込む」
 ↓
クッキー確認画面が出てはじかれる
 ↓
クッキーセットして「上記全てを承諾して書き込む」
 ↓
なぜかまたクッキー確認画面が出てはじかれる


■ソース
・Form1 ・・・フォーム
http://ideone.com/F5aGL
・StringCreate・・・URL分解して、いろんなURL作る
http://ideone.com/MYOiR
・WebAccess・・・レスをサバにPostする
http://ideone.com/OXjoc

どう考えても「WebAccess」に爆弾があるんだ・・・
でもなにが悪いのかわからない・・・


■プロジェクト
http://www.rupan.net/uploader/download/1312636484.zip
90デフォルトの名無しさん:2011/08/06(土) 22:37:55.89
>>88
どうやってフォント指定してるのさ?
それは普通にhtmlファイルに書いてIEで表示した場合は有効なの?

>>89
レスポンスに入ってきたCookieを再リクエストに反映させてないように見えるが?
91デフォルトの名無しさん:2011/08/06(土) 22:47:14.79
>>90
http://ideone.com/g1dPa


cc.Add(res.Cookies);を追加したけど変化なしだったぜ・・・
92デフォルトの名無しさん:2011/08/07(日) 01:37:59.61
http://www.monazilla.org/index.php?e=199
こことWiresharkでリクエスト確認して完全に同じものが投げられるように修正しろ
93デフォルトの名無しさん:2011/08/07(日) 01:41:39.62
命令口調クンって馬鹿だな、まで読んだ。
94デフォルトの名無しさん:2011/08/07(日) 01:50:12.77
テスト
95デフォルトの名無しさん:2011/08/07(日) 01:51:29.00
どう見てもsuka=pontanが原因
いつの情報参考にして書いてんだ

今はkibi=dango
96デフォルトの名無しさん:2011/08/07(日) 02:08:07.68
>>95
    人
凸(´・ω・`)凸 ありがとう、いけたで
  とo oつ   ほんまにありがとうな
97デフォルトの名無しさん:2011/08/07(日) 02:08:53.65
>>96
すげぇ、書き込めた
さすがプロだな
98デフォルトの名無しさん:2011/08/07(日) 02:14:07.87
なんのプロだw
99デフォルトの名無しさん:2011/08/07(日) 02:17:01.35
>>98
初心者救済のプロ集団さ
100デフォルトの名無しさん:2011/08/07(日) 07:21:55.67
>>96
unkoのAA?
101デフォルトの名無しさん:2011/08/07(日) 08:20:54.77
夏休みにあふれるゆとり集団の相手するプロじゃないの?

>>95
しかし相変わらずだな>2ch
小学生レベルw
102デフォルトの名無しさん:2011/08/07(日) 09:39:59.53
やんのかこら?
103デフォルトの名無しさん:2011/08/07(日) 17:11:18.98
Visual Studioのフォーマット整形ってref/outと変数名の間のスペース数は直してくれないんですか?
104デフォルトの名無しさん:2011/08/07(日) 17:31:58.16
>>103
ほんとだww 整形されないw
refとかめったに使わないし、1スペース以外入れたことないから気付かなかった。
105デフォルトの名無しさん:2011/08/08(月) 18:39:35.36
画像をスクロールバーを使わずに
PreviewKeyDownイベントでスクロールさせたいんだが…
(ピクセル単位で)
106デフォルトの名無しさん:2011/08/08(月) 19:52:36.98
させればいいじゃん
107デフォルトの名無しさん:2011/08/09(火) 04:49:25.32
comboBox内のテキストをデフォルトで右寄せにしたいのですが、教えていただけないでしょうか…
 this.comboBox1.TextAlign = Right;
や、
this.comboBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
など試してみましたが出来なかったのでどうかご教示お願いします。
108デフォルトの名無しさん:2011/08/09(火) 04:54:52.81
109デフォルトの名無しさん:2011/08/09(火) 07:09:10.62
ハンドルリークって起こる?
110デフォルトの名無しさん:2011/08/09(火) 07:13:18.39
参照持ちっぱなしにしてればそりゃリークするがな

後はP/Invokeで取ってきたハンドルとか
111デフォルトの名無しさん:2011/08/09(火) 08:32:10.12
何、ハンドルリークって?
112デフォルトの名無しさん:2011/08/09(火) 10:44:00.50
Keysで管理してるデータをSendKeys.SendWait()で送りたいんですけど
ベストな方法って何になりますか?
113デフォルトの名無しさん:2011/08/09(火) 16:09:25.84
今現在考えてるコードを書いてみてよ

そしてそれが「どうしてベストじゃないのか」を説明してくれ
114デフォルトの名無しさん:2011/08/09(火) 17:11:47.66
特別なキー(ex:Space)など、そのままSendKeysで送れないキーを
switchで1つずつ変換、と言う方法しか思いつかないので質問させて頂きました。

結構需要がありそうな機能なので見落としてるメソッドや方法があるのかなー、と。
115デフォルトの名無しさん:2011/08/09(火) 20:03:51.37
プログラミング勉強中のど素人です。
Excelで作ったcsvファイルのデータの一部をある指定した値の時、
csvのデータを抽出し表示したいのですが、どのようにすればいいのかわかりません
わかる方おられましたら教えていただけませんでしょうか?

【環境】
VS2010

【実行動作】
comboBoxに1〜99の数字があり、値を指定した時にcsv内にある指定した値を同フォーム内のTextBoxへ返す

comboBox → TextBox
1 → 0
2 → 9
3 → 16
4 → 25
5 → 36
...
99 → 99,999,998

【備考】
・データ元はcsvにこだわりはなく、代替できるものがあればそちらでも可能です。
・comboBoxはレベル、TextBoxはレベルアップに必要な経験値と思って下さい。
116デフォルトの名無しさん:2011/08/09(火) 20:18:39.81
C# csv でググレ
117デフォルトの名無しさん:2011/08/09(火) 20:21:10.94
ファイルから文字列として一行読み取ってカンマで分割すると数字の形をした文字列が2つできるわけだ。これを構造体なりの配列に保存していく。
で、全行にたいしてそれをする。

そして、表示時にはそれを参照して数字と比較して同じものがあったら経験値の方をテキストボックスに書きだす。

これだけかな??
118デフォルトの名無しさん:2011/08/09(火) 20:24:35.30
あらかじめcsvファイルを読み込んで一行ずつ配列に入れておき、
comboBoxに数値が指定されたときにその数値をキーにして配列から一行のデータを取り出して、
そのデータをカンマで分割して表示したい値をTextBoxに表示する。
119115:2011/08/09(火) 21:36:27.53
>>117,118
レスありがとうございます
助言を頼りに1時間散々検索しましたが解決に至りませんでした

>ファイルから文字列として一行読み取ってカンマで分割すると
ここでつまずいてしまいます…csvのデータすべてが出力されてしまい、1行ごと、カンマごとに分割ができません
知識がなさすぎてGoogle先生の言っている事が理解できていないだけだと思いますが、
参考になるURLやアドバイスをいただけないでしょうか
120デフォルトの名無しさん:2011/08/09(火) 21:44:34.65
>>119
google「C# 1行ずつ読み込み」
google「C# split」

このあたりでできんじゃねーか?
121デフォルトの名無しさん:2011/08/09(火) 21:59:48.60
ここの下の方に一行ずつ読んでく方法が書いてある。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/036fileread/fileread.html
122デフォルトの名無しさん:2011/08/09(火) 22:19:08.37
TextReaderが難しいならFile.ReadAllLinesで一発
123115:2011/08/10(水) 02:04:11.19
結論から言いますと、今の自分には理解が難しかったので
comboBoxがもし1の時にTextBoxに0を、2の時に9を返す...とswitch文でその場しのぎをしました。

switch (comboBox1.Text)
{
 case "1":
  TextBox1.Text = "0";
  break;

 case "2":
  TextBox1.Text = "9";
  break;

 case "3":
  TextBox1.Text = "16";
  break;

(中略)

 case "99":
  Number3.Text = "99999998";
  break;

  default:
  Number3.Text = "0";
  break;
}

という具合です。
今回はとりあえず結果を急ぎましたが、csvのやり方も覚えたいのでもう少し理解を深めてから再チャレンジしようと思います。
皆様ご教示ありがとうございました。
124デフォルトの名無しさん:2011/08/10(水) 02:05:13.79
訂正です

(中略)

 case "99":
  TextBox1.Text = "99999998";
  break;

  default:
  TextBox1.Text = "0";
  break;
}
125デフォルトの名無しさん:2011/08/10(水) 03:25:16.73
初めのうちは目的さえ達成できればそれでいいと思うよ
一年後に見直して酷いと思えればそれだけ成長したってことだ
126デフォルトの名無しさん:2011/08/10(水) 07:39:17.27
>>114
SendInput
127デフォルトの名無しさん:2011/08/10(水) 08:19:55.25
>>126
SendInputで検索して実際に使えそうな事を確認しました。
これから確認しますが教えて頂きありがとうございました!

ttp://damiproductions.darkbb.com/t504-c-sending-keys-with-the-sendinput-api

128デフォルトの名無しさん:2011/08/11(木) 14:29:32.24
using System;
using namespace System;

はどちらが正しい書き方でしょうか? 両方正しいとすると、意味の
違いはありますか?
129デフォルトの名無しさん:2011/08/11(木) 15:13:59.40
後者はC#では不正
130デフォルトの名無しさん:2011/08/11(木) 15:38:10.25
>>129
なるほど。逆に、C++では、前者が不正、ということなんでしょうか?
131デフォルトの名無しさん:2011/08/11(木) 19:25:20.95
仕様書読めば理解できる
132デフォルトの名無しさん:2011/08/11(木) 20:26:06.25
仕様書など存在しねぇし。



   /⌒\
  (;;;______,,,)  このスレに松茸が生えたようです
   丿 !
   (__,,ノ
133デフォルトの名無しさん:2011/08/11(木) 20:31:42.02
すでにあるものに習うというのも手ですよね
using System.・・・・
というのがC#のサンプルコードにでてきますよね
134デフォルトの名無しさん:2011/08/12(金) 00:54:56.74
サンプルコードというかVSのテンプレートに任せればそれが答え
135デフォルトの名無しさん:2011/08/12(金) 15:06:27.91
プレイリストを利用した動画ファイルの再生方法について。
デザイナにwindows media playerを貼り付けて、Formがloadされたときに5つの動画ファイルをプレイリストに登録しました。
このときに再生ボタンを押すと1番目の動画ファイルが再生されますが、
3番目の動画ファイルをピンポイントで指定して再生する方法はございませんか?
プレイリストを追加した後にaxWindowsMediaPlayer1.Ctlcontrols.next();を2回実行すると3番目の動画ファイルの位置に移動しますが
今後listboxなどで選択した動画ファイルを再生させたいのでaxWindowsMediaPlayer1.Ctlcontrols.next();を使わずピンポイントで指定位置の動画を再生させたいです。
どうかアドバイスお願いいたします。
http://ideone.com/8303o
136デフォルトの名無しさん:2011/08/12(金) 15:27:52.40
currentPlaylistからget_ItemでIWMPMediaとってきて
CtlcontrolsのcurrentItemにセット
playも必要かね
137デフォルトの名無しさん:2011/08/12(金) 16:53:02.28
Byte[] data = new byte[25];
Byteとbyteと色が違うんだけれどどう違うの?
138デフォルトの名無しさん:2011/08/12(金) 17:21:29.76
byteは組み込み型のキーワードで、実体はSystem.Byte型
だから色が違うけどビルドしてできるアセンブリは変わらない
139デフォルトの名無しさん:2011/08/12(金) 22:03:23.55
int unit byte double とかあるのにSingleはsingleがないんだよな
140デフォルトの名無しさん:2011/08/12(金) 22:05:02.68
>>139
Single->float
141デフォルトの名無しさん:2011/08/12(金) 22:34:41.30
>>140
勉強になったぜ、サンクス
142デフォルトの名無しさん:2011/08/12(金) 22:35:55.51
Int32の数字が取れてるのは気にしないのか
143デフォルトの名無しさん:2011/08/12(金) 22:49:34.51
DD 誰でも大好き♪
144デフォルトの名無しさん:2011/08/12(金) 22:56:13.49
>>142
気にならないが
64bitの開発環境だとint64はintになるのか?
うちはまだまだ32bitが現役
145デフォルトの名無しさん:2011/08/12(金) 22:59:52.88
たぶん大半の環境下でintは32bitとして認識されるでしょ
64bit以上は別途識別可能な文字を付け加えるとか
146デフォルトの名無しさん:2011/08/12(金) 23:06:39.86
まあint→Int32もfloat→Single同様名前が違うって言いたかっただけだが、どの環境でもintはInt32だよ
147デフォルトの名無しさん:2011/08/12(金) 23:32:42.13
言語仕様で決まってることだから
intが32ビットでlongが64ビットでない実装はC#ではない
148デフォルトの名無しさん:2011/08/13(土) 00:17:22.02
そのへん曖昧なのはCだよね
149デフォルトの名無しさん:2011/08/13(土) 00:26:21.25
だねえ
16bitマシン上でも一応使える言語だし
まあ16bit環境を今でも使ってるかといえば・・・
組み込みでも32bitが普通なのかな?
150デフォルトの名無しさん:2011/08/13(土) 08:43:04.73
>>149
炊飯器とかは16
携帯とかは32

組み込みはオーバースペックなcpu載せる事まず無いから
151デフォルトの名無しさん:2011/08/13(土) 10:39:34.32
VC#で、特定の関数でだけ、デバッガが例外捕まえるのを抑制する方法ってありますか?
WebClient をサブクラス化して、GetWebResponse をオーバーライドしてるんですが、
304 Not Modified 等で GetWebResponse が例外を吐くので、それをいちいち捕まえてくれるのが邪魔くさいです...

protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result)
{
WebResponse webResponse = base.GetWebResponse(request, result);
return webResponse;
}
152デフォルトの名無しさん:2011/08/13(土) 10:42:53.11
>>150
まだ16bitって存在するのか

>>151
try catchで囲ってcatchしても何もしないとか?
153デフォルトの名無しさん:2011/08/13(土) 10:43:59.90
>>151
DebuggerStepThrough属性付けてみたら
154デフォルトの名無しさん:2011/08/13(土) 10:56:46.47
>>153
ありがとうございます。できました。

>>152
try catch で握りつぶすと、WebClient としての動作が違ってくるので、
それはできませんでした。
155デフォルトの名無しさん:2011/08/13(土) 11:11:51.16
携帯電話付き炊飯器は何bit?
156デフォルトの名無しさん:2011/08/13(土) 11:26:40.79
48bit
157デフォルトの名無しさん:2011/08/13(土) 11:27:25.77
>>155夏だなぁ。
158デフォルトの名無しさん:2011/08/13(土) 12:36:37.60
>>150
> 組み込みはオーバースペックなcpu載せる事まず無いから

って書くなら 8bit も忘れないでくれ。

って言うか、普通の炊飯器だとまだ 8bit のほうが多いんじゃね?
http://www.semicon.toshiba.co.jp/product/micro/appli/app04/1187923_7183.html

さすがに 4bit のやつはなくなる方向みたいだが。
http://www2.renesas.com/micro/ja/product/17k_dts/legacy.html
159デフォルトの名無しさん:2011/08/13(土) 12:45:42.48
ウチの炊飯器はサーモスタットだから1ビットだな
160デフォルトの名無しさん:2011/08/13(土) 13:12:57.72
C# で、Dictional<Key, Value> の Key だけのやつってないのかなぁ。

たとえば、文字列の追加、削除、存在確認ができればいい。

ただ存在確認はハッシュとか B-Tree とかでそれなりの速度が欲しい。

また、同一の値を複数格納するのはなし。
161デフォルトの名無しさん:2011/08/13(土) 13:22:23.90
.NET3.5からHashSet<T>がある
2.0ならMSDNでISet<T>のインターフェイス見て
それと全く同じの定義した上でDictionaryのラッパーとして実装したら
162デフォルトの名無しさん:2011/08/13(土) 13:29:49.10
163デフォルトの名無しさん:2011/08/13(土) 13:45:19.17
FormからForm2をshowDialog()で呼ぶ。
Form2内でmessageBox.show(MessageBoxButtons.OKCancel)を呼ぶ。

この時、キャンセルを選ぶと、Form2ごと消えていまいます。
これはForm2をshowDialog()で呼ぶ場合、どうしようもないでしょうか。
164デフォルトの名無しさん:2011/08/13(土) 13:47:32.38
>>158
そんなニッチなマイコンよく見つけてきたなw

ここ数年はローコスト向けの16bitMCUもいろいろ出てきてるんで(TIのMSP430とか)、
>>150の言うこともそう間違ってるわけじゃないけどね。
165デフォルトの名無しさん:2011/08/13(土) 13:55:12.88
>>161-162
なるほど、HashSet<T> いいね。

サンクス。

ない時は、Directory<Key, Value> の Value にダミーで null 入れて代用しようと思ってた。
166デフォルトの名無しさん:2011/08/13(土) 13:56:39.76
>>163
再現しないから答えられない

showDialog読んでるイベントハンドラのコード貼れや
167デフォルトの名無しさん:2011/08/13(土) 13:57:38.89
あとMessageBox.Showを読んでる部分も

貼る時は>>2使って貼ってね
168デフォルトの名無しさん:2011/08/13(土) 13:59:50.67
>>165
うん。HashSetがなかった頃はnull入れてやってたよ、それでも全然問題ないしね。
169デフォルトの名無しさん:2011/08/13(土) 14:00:11.09
>>164
> そんなニッチなマイコンよく見つけてきたなw

この業界にいれば普通に知ってると思うぞ。

まあ、スレチだからどうでもいいことだが。
170デフォルトの名無しさん:2011/08/13(土) 14:02:40.28
そんなガラパゴス日本のなかでもさらにニッチな世界を知ってるのが当然って、
あんたも相当精神病んでるな。

むしろこの業界(ってどの業界だよ)に居れば、日本のマイコンなんか世界的には
まったく相手にされていないことこそ常識なんですが。
ルネサスですらほとんど国内向けのものしか作ってない。
171デフォルトの名無しさん:2011/08/13(土) 14:05:28.08
2chブラウザを一度、自分で作ってみようと思うんですが、何を勉強すればいいですか?お勧めの本などがあれば御紹介願います。(基本的なC#の記述は勉強済み)
172デフォルトの名無しさん:2011/08/13(土) 14:10:26.21
プログラミングより大事なグーグルで効率よく検索する技術
173デフォルトの名無しさん:2011/08/13(土) 14:30:12.77
>>166
//form1.cs
private void button8_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.f1 = this;
if (f2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//処理を記述
}

}

///Form2.cs
public Form1 f1
private void button1_Click(object sender, EventArgs e)
{

DialogResult dr = MessageBox.Show("以下で登録します。よろしければOKを押してください。" , "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

if (dr == DialogResult.OK)
{
//処理を記述
}
}
174デフォルトの名無しさん:2011/08/13(土) 14:50:59.01
>>173
>>2をご利用になってお貼り下さいますよう申し上げたじゃねえかこのゴミクズ

再現しない
175デフォルトの名無しさん:2011/08/13(土) 14:55:09.31
そのコードだけだとその症状は出ないような・・・と思いつつ俺も試してみた。
やはり当然ながら発生しない。
176デフォルトの名無しさん:2011/08/13(土) 14:55:36.69
イデオン使うかどうかはともかく、アホみたいにコード貼り付ける前に
それが問題を再現するかどうかを確認することも怠る人間は、本質的にプログラミングに
向いてないとしか言いようがない。
177デフォルトの名無しさん:2011/08/13(土) 15:06:29.37
>>174
たいした量じゃねーから使わなかったんだよ

>>176
現状問題が発生してるから質問してるわけです。
178デフォルトの名無しさん:2011/08/13(土) 15:07:39.94
>>170
>むしろこの業界(ってどの業界だよ)に居れば、日本のマイコンなんか世界的には
>まったく相手にされていないことこそ常識なんですが。
>ルネサスですらほとんど国内向けのものしか作ってない。

何を言いたいのかさっぱりわからん。

海外の状況はよく知らんけど、ルネが国内向けに作ってるやつを普通に
使ってるだけだよ。

まあ、ニッチな世界というのは認めるけど、そもそも組み込み業界なんて
狭いから、各社のマイコンのシリーズぐらいは押さえとくのは普通だと思
うけどね。
179デフォルトの名無しさん:2011/08/13(土) 15:11:54.50
>>177
そのコードで発生するかどうかは真っ白のプロジェクトに同じコードを貼り付けて実行すれば分かるでしょう?
なぜそれをしない?

ここは初心者スレではあるが、手取り足取りスレとは違うぞ
180デフォルトの名無しさん:2011/08/13(土) 15:13:53.02
頭の悪そうな奴には説教するよりスルーしろ
181デフォルトの名無しさん:2011/08/13(土) 15:17:06.44
>>179
新規プロジェクトにその部分だけ引っこ抜いて実行したら再現しませんですた。。。

くそ。。。なんでだ。。。
182デフォルトの名無しさん:2011/08/13(土) 15:17:47.17
C#を今から勉強していくところなんだが、
ここのスレ、C#の初心者用で問題ない??
ちょっと質問したいんだが・・・・・・。
183デフォルトの名無しさん:2011/08/13(土) 15:19:47.28
>>181
Form2の中でClose呼んでねえかClose
あるならブレークポイント貼ってみろ

無いならもう分からん
184デフォルトの名無しさん:2011/08/13(土) 15:21:23.49
>>181
ボタンにDialogResult設定してるだろ?
それNoneにしてみ
185デフォルトの名無しさん:2011/08/13(土) 15:27:22.19
>>184
確かにDialogResultにOKを設定しています。
そして外したら期待する動作になりました。

ただしf2をよんだ側でDialogResult.OKが返ってこなくなったので実装し直しです。
186デフォルトの名無しさん:2011/08/13(土) 15:28:23.55
>>185
早まるな
this.DialogResultに入れてやれば良いだけだ
187デフォルトの名無しさん:2011/08/13(土) 15:29:37.65
要するにこう

this.DialogResult = MessageBox.Show("以下で登録します。よろしければOKを押してください。"

if (this.DialogResult == DialogResult.OK)
{
this.Close();
}
188デフォルトの名無しさん:2011/08/13(土) 15:36:09.76
そんな基礎中の基礎も書籍じゃ教えてくれないコンナ世の中じゃ ヘブン
189デフォルトの名無しさん:2011/08/13(土) 15:40:53.05
だがポイズン

>>182
問題ないよ〜
けど煽り屋がいるから心して質問してくれ

変な人だと思ったら返事をしない触らない
190デフォルトの名無しさん:2011/08/13(土) 16:37:33.49
>>189
それでは心して質問させて頂きます(笑)

初心者(C#未経験者)向けの書籍などの
最低限度の知識は全て習得するのが当然ですので、その件は置いといて、
次のステップで、みなさんが御使用された書籍を御教え頂ければと思います。

「書籍名」と、「何に役立ったのか」など具体的な内容をお聞かせ頂ければ、大変参考になります。
もちろん、みなさんの中でもレベル感(どこまでが初心者?・最低限度の知識とは?)や
プログラムに対する使用目的などが異なることも十分承知しておりますので、
みなさんの思うがまま、お聞かせいただければ思います。
191デフォルトの名無しさん:2011/08/13(土) 16:45:27.67
プログラム歴とか、やりたいことの違いで、ここで聞いても答えでないと思うの。。。
最低限の知識も、仕事なのか趣味なのかでも違うと思うし。。。
オライリーにアレルギーがないなら、オライリー買っておけ!
192デフォルトの名無しさん:2011/08/13(土) 17:08:16.13
て言うか、C++ から移行組みの俺は C# の本なんて買ったことない。
193デフォルトの名無しさん:2011/08/13(土) 17:25:15.53
俺もJavaから移行組みだから買ってない

強いて言えばEssentialWPFだが、これは初心者が読んでも仕方ないだろう
194デフォルトの名無しさん:2011/08/13(土) 17:52:46.81
他言語からの移行組ならMSDNで十分
ただしLL、テメーはダメだ
195デフォルトの名無しさん:2011/08/13(土) 17:55:02.41
C#でAccess2000形式のmdb生成から、テーブル生成、データの書き込みと表示までしたいんですが、参考になるような良い書籍などありますか?
196デフォルトの名無しさん:2011/08/13(土) 19:17:24.10
昔溢れてたVB6やVBAでAccess触る系の本
COMだから一緒
197デフォルトの名無しさん:2011/08/13(土) 20:41:48.94
C#.netに関しての質問ですが、
Sendinputを代用する.netの関数とか無いんですかね。
198デフォルトの名無しさん:2011/08/13(土) 20:49:27.60
無いみたいよ今のところ
199デフォルトの名無しさん:2011/08/13(土) 23:29:58.32
SendKeysじゃダメなの?
200デフォルトの名無しさん:2011/08/14(日) 00:08:59.13
Form上にgroupBoxが4つあり、それぞれのgroupBoxの中に1つずつ
ラジオボタンを設置しました。

で、こいつらを排他にしたいのですが、方法ありますか?
201デフォルトの名無しさん:2011/08/14(日) 00:27:18.16
そういやKeys.Helpってどこのキーに対する定義なんだろう
202デフォルトの名無しさん:2011/08/14(日) 00:27:34.84
IPアドレスとかサブネットマスクとかの入力欄てどうやって作りますのん?
テキストボックス4つ並べてとか、素人ですって感じがするのだけれど
どうしたもんだか・・・
203デフォルトの名無しさん:2011/08/14(日) 00:50:15.94
204デフォルトの名無しさん:2011/08/14(日) 00:57:14.59
>>200
方法1
AutoCheck = falseにして手動で。

方法2
RadioButtonをGroupBoxの中ではなく上に配置する。

でもそんなウィンドウズアプリの標準的な作法に反する動作はそもそも採用しないのが一番正解。
205デフォルトの名無しさん:2011/08/14(日) 01:36:38.68
public class student
{
public string name="";
public int number;
}


というクラスの配列
student[] st;

があったとして、配列の中身をnumber順にソートしたいのですが
どうすれば簡潔に書けますか?
206デフォルトの名無しさん:2011/08/14(日) 01:59:48.98
>>205
var list = new student[10];
var result = from s in list orderby s.number select s;
207デフォルトの名無しさん:2011/08/14(日) 06:12:02.59
C#を学びたいのですが、最初は何からやったら良いですか?
MSのサイトにあるリファレンスでも見ながらサンプルPGでも組んでみるべきですかね。
208デフォルトの名無しさん:2011/08/14(日) 06:28:51.84
>>206
配列の中身をソートしたいならArray.Sortでよくね?
Array.Sort(st, (x, y) => x.number < y.number ? -1 : 1);
209デフォルトの名無しさん:2011/08/14(日) 10:26:41.81
2chのレス差分をGZipで取得するときにAddRangeに指定するByteサイズって
解凍後のdatのByteサイズでいいんですよね?
ローカルdatサイズ > サーバーdatサイズになって、416 HTTP_RANGE_NOT_SATISFIABLEで返ってきてしまうんですが
もしかして圧縮状態のサイズを指定しなきゃいけないんですか?
HEPL!
210デフォルトの名無しさん:2011/08/14(日) 10:33:59.52
rangeとgzipって排他じゃなかったっけ?
211デフォルトの名無しさん:2011/08/14(日) 10:36:29.97
YES
gzipを指定している場合はRangeを打っては”いけない”

http://www.monazilla.org/index.php?e=198
>(但し、差分を圧縮して受け取ることはできないためAccept-Encoding: gzipは付けません。)
212デフォルトの名無しさん:2011/08/14(日) 10:41:44.70
Array.Sort(st, (x, y) => x.number.CompareTo(y.number));
213デフォルトの名無しさん:2011/08/14(日) 11:01:59.38
>>210-211
受け取れない・・・だと・・・
1回目:Gzip全レス受け取り
2回目:text/plane, AddRange指定(datサイズ(GZip解凍後))
3回目以降:text/plane, AddRange指定(取得済datサイズ)

だったのか
だからあかんかったんや・・・
                   人
ありがとう、これで救われる(´・ω・`)
214デフォルトの名無しさん:2011/08/14(日) 11:23:30.98
>>212
intだから引き算でよくね?
215デフォルトの名無しさん:2011/08/14(日) 11:34:30.98
>>214
アンダーフローするかもしれないよ。
216デフォルトの名無しさん:2011/08/14(日) 12:27:54.68
結局、ラムダ式も匿名関数もとりあえず置いといて、
ジェネリックFunc<...>だけで、Cでいう関数へのポインタ部分って記述できるって解釈でいいんだよな。コンパイルは通ったし。
こんな感じ↓

void Y( Func<int, double> f){
 double Z = f(10);
...
}

static double X(int a){...}

static void Main(){
Y( X );
...
}

delegate、匿名メソッドとかまじめに読んでたら、
3.0になって、ラムダ式がでてきてせっかく覚えたdelegateが不要になって、式木にまで説明が及んで、おつむが死にかけた。
delegateはこれから書くコードとしてどりあえず要らない子でいいの?
217デフォルトの名無しさん:2011/08/14(日) 12:31:33.62
outやrefは自分でdelegate定義しないと
218デフォルトの名無しさん:2011/08/14(日) 12:38:11.36
>>215
横からだが、整数の演算で下限値を振り切っても、その呼び方は「オーバーフロー」だぜ

アンダーフローは浮動小数点演算時に指数表現できなくなる現象
floatなら2の-130乗くらい
219デフォルトの名無しさん:2011/08/14(日) 12:38:13.33
>>216
staticでなくてもいいのが関数ポインタと違うところ
デリゲートのコンストラクタは実際には
new Func<int, double>(呼び出し先のオブジェクト, 関数ポインタ)
のようになっている
220デフォルトの名無しさん:2011/08/14(日) 12:39:42.41
桁あふれだからな
221215:2011/08/14(日) 12:47:08.39
>>218
だな、指摘サンクス。
222デフォルトの名無しさん:2011/08/14(日) 13:04:17.79
>>219

レスthx,
メンバ関数でもいけるのが味噌だね。動的にインスタンス関数をアドレッシングできる。
結局、過去バージョンとの互換性以外で、delegateは完全に忘れてはいけない例ってある?

例えば、

static double hh(double x){ .... }
Func<double, double> z = hh;

という具合に、ジェネリックだけで記述できるよね。裏方でどーなってるかは置いといて。
delegateキーワードがないと記述できない例ってあれば教えてください。
223デフォルトの名無しさん:2011/08/14(日) 13:15:57.92
>>222
ない
複数ステートメントの匿名メソッド delegate(x) { ... } は x => { ... } で代用できる
ただ、匿名メソッドの引数は省略できるので、イベントハンドラ書くときには便利かもしれないが
一貫性と引き換えにするほどのものではないと思う
224デフォルトの名無しさん:2011/08/14(日) 13:16:11.82
ジェネリックだけで記述できるって意味判らんが、Action<>とFunc<>があればOKって意味?
delegateキーワードはデリゲート型の定義と匿名メソッドの使用って2つのケースで使用される
匿名メソッドとしては完全にラムダ式で置き換えられる
デリゲート型の定義としては>>217のためにAction<>/Func<>では足りない
225デフォルトの名無しさん:2011/08/14(日) 13:28:50.80
>>217

あっと見落としてたレスthx
そーかrefやoutはFunc内の引数に書くとエラーになるのか・・・
226デフォルトの名無しさん:2011/08/14(日) 13:31:28.95
delegateに拡張メソッド作るのは俺だけだろうな
227デフォルトの名無しさん:2011/08/14(日) 13:35:22.22
ActionやFuncが用意されているからな
225のようなケースを除けばそれでほとんど事足りる
228デフォルトの名無しさん:2011/08/14(日) 14:42:11.43
C#ってunsafeコードで関数へのポインタって記述できたっけ?
229デフォルトの名無しさん:2011/08/14(日) 14:45:47.44
ちょっとやってみたけど(*pf)() と書くと*の前の(がエラーとか言われる
230デフォルトの名無しさん:2011/08/14(日) 14:55:29.52
>>226
IComparerとかIEqualityComparerを作る拡張メソッドなら
231デフォルトの名無しさん:2011/08/14(日) 15:00:35.08
Comparer<T>.DefaultはあるのになぜEqualityComparer<T>.Defaultはないのか
そもそもEqualityComparer<T>クラス自体が存在しない訳だが
232デフォルトの名無しさん:2011/08/14(日) 15:01:08.35
と思ったがEqualityComparer<T>.Defaultとか存在してもobject.Equalsを呼ぶだけっぽいな
233デフォルトの名無しさん:2011/08/14(日) 20:37:25.65
ラムダ式で複文はシンタックス的に気持ち悪いので使ってない。
匿名メソッドでも型推論してくれりゃいいのに。
234デフォルトの名無しさん:2011/08/14(日) 20:53:29.07
匿名メソッドなんてはじめから後で捨てる気満々じゃん
なるべく将来的に邪魔にならないようにdelegateなんて冗長な変な目印付けたんだろ
235デフォルトの名無しさん:2011/08/14(日) 21:02:54.72
win7環境だとなんでmessageBoxのOKボタンが右寄りなの??
236デフォルトの名無しさん:2011/08/14(日) 21:40:10.71
>>235
win7はネトウヨなんだよ
237デフォルトの名無しさん:2011/08/14(日) 21:52:10.74
>>236
わかんねーならレスすんなハゲ
238デフォルトの名無しさん:2011/08/14(日) 21:53:37.38
右手でする人は右寄りになりがち
239デフォルトの名無しさん:2011/08/14(日) 21:54:33.19
そんな右寄りだったっけ?
1年以上使ってるがそう感じたことは一度もないけどな
240デフォルトの名無しさん:2011/08/14(日) 22:05:31.66
どっかのスレであったボタンをセンターにしたいってやつだろ
241デフォルトの名無しさん:2011/08/14(日) 23:07:12.90
文章が左から右に流れるからじゃね?
242デフォルトの名無しさん:2011/08/14(日) 23:28:39.47
>>232
EqualityComparer<T>は存在してるし、DefaultはちゃんとTがIEquatable<T>実装してるか確認してるけど?
243デフォルトの名無しさん:2011/08/15(月) 01:13:05.61
WAVファイルを指定時間でちょん切るにはどうすればいいのでしょうか
ググってもWAV再生に関するページばかりで困っています
ヘッダ解析してバイナリいじるしかないのかな
244デフォルトの名無しさん:2011/08/15(月) 01:27:57.37
うろ覚えだけども。
一秒のデータ量は、「チャンネル数*ビット数(をバイト換算)*周波数」だったと思うので、
2ch、16bit、44.1khzだったら、「2*2*44100」が一秒のデータ量だったと思う。
だからそのデータ量をほしい時間あたりで割ってやれば取れるんじゃないかな。
圧縮されてたらこのとおりではないかもしれん。
245デフォルトの名無しさん:2011/08/15(月) 09:08:54.38
>>243
SamplitudeかAudition立ち上げて
所望の時間にカーソル持って行ってコピペでせーぶ
246デフォルトの名無しさん:2011/08/15(月) 09:15:27.98
冗談はさておき、
まぁバッチ処理としてやりたいんだろうけど、
音声でも映像でも一応データになにがしかのデータ破壊がおこってないか
確認の意味でも目視チェックはやっといた方がいいかと。
247デフォルトの名無しさん:2011/08/15(月) 09:24:52.80
ffmpegにオプション付けて実行とか…
248デフォルトの名無しさん:2011/08/15(月) 10:34:04.73
>>243
OpenCVSharpでも使え
249デフォルトの名無しさん:2011/08/15(月) 17:21:23.67
VS2010を使用しています。
インストーラを作成しているのですが、アプリケーションフォルダと同じ階層にフォルダを作成し、
デスクトップにそのショートカットを作成することは可能でしょうか?

┼AplicationFolder
└Hoge

よろしくお願いします。
250デフォルトの名無しさん:2011/08/15(月) 18:30:33.56
>>249

Visual studioで出来るインストーラって本当にオマケぐらいの機能しかないので
細かいことをしたいなら「orca」というキーワードでググッてみてください。
Visual studioで作成したmsiを編集するツールです。
251デフォルトの名無しさん:2011/08/15(月) 20:19:07.34
いやいくらなんでもその程度のことはVS単体でもできるよw
やり方も普通にググれば見つかるはず。
>>249は何も調べずに質問してるな。
252デフォルトの名無しさん:2011/08/16(火) 09:11:20.13
XmlSerializerで作成したXMLファイルの中の配列の要素数を増やしたい場合
どの様にすればいいのでしょうか?

たとえば
public class xmlData
{
public int[] intData = new int[5] {0, 0, 0, 0, 0};
}
private xmlData scls = new xmlData();


XmlSerializer serializer = new XmlSerializer(typeof(xmlData));
FileStream fs = new FileStream("data.xml", FileMode.Create);
serializer.Serialize(fs, scls);
fs.Close();

でできたXMLのint配列を後からint[10]に変更した場合
xmlDataを以下に変更しても
public int[] intData = new int[10] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};;

Deserializeで読み込んだ段階でint[5]に変更されてしまいます。
XmlSerializer serializer = new XmlSerializer(typeof(xmlData));
FileStream fs = new FileStream("data.xml", FileMode.Open);
scls = (xmlData)serializer.Deserialize(fs); // ←ここでint[5]になっている
fs.Close();
253デフォルトの名無しさん:2011/08/16(火) 09:19:13.58
そうですか。
254デフォルトの名無しさん:2011/08/16(火) 09:24:48.27
System.Runtime.Serializationの属性やインターフェイスを貼って制御するのが正攻法だろうが、
別にArray.Resizeでいいでしょ
255デフォルトの名無しさん:2011/08/16(火) 09:55:45.33
>>254
ありがとうございました。Array.Resize()でうまくいきました。
後から配列のサイズを変更できるなんて初めて知りました。
256デフォルトの名無しさん:2011/08/16(火) 10:03:11.27
>>255
後から配列のサイズは変更できないよ
Array.Resizeは新しい配列を作ってそこに元の配列の内容をコピーしてるだけ
List<T>なんかとは違うので区別してないとハマる
257デフォルトの名無しさん:2011/08/16(火) 11:23:30.78
…というようなことがあるんで、配列をパブリックフィールド/プロパティにしてはダメ
258デフォルトの名無しさん:2011/08/16(火) 11:43:20.76
XmlSerializerなら配列じゃなくてList<T>使えばいいのに
259デフォルトの名無しさん:2011/08/16(火) 12:03:07.98
会社や学校など関係無く、趣味でC#されてる方は、このレス内におられますか?
また、周りにC#をしている知人がおらず、独学でされている方はおられますか?
一度、みなさんの学習方法を参考までにお聞かせ願いたいのですが……。
260デフォルトの名無しさん:2011/08/16(火) 12:09:36.50
>>259
うい

最初からwebで独学
初期段階は、コマンドラインコンパイラで素数と公約数とか求めるプログラムをスクリプト感覚で
VSのExpressが手に入るようになってからは個人的なツール(Windowをアプリ)を何個も作った
261デフォルトの名無しさん:2011/08/16(火) 12:26:32.80
>>259の意図とは違うかもしれんが、仕事はVB.NETで趣味はC#
262デフォルトの名無しさん:2011/08/16(火) 13:47:24.78
プログラムは完全趣味。最初はC#2.0くらいまでの機能に限定して覚えたと思う。非ジェネリックのコレクションは軽く触る程度
イテレータ、ジェネレータ、ジェネリックあたりを理解できてから3.0以降の機能に手を出し始めた。
263デフォルトの名無しさん:2011/08/16(火) 15:12:14.45
>>259
「作って覚える〜」シリーズを中心に、とにかく作りまくる。
理論、文法は後からついてくる。
雑誌の付録、入門記事なんかは似たような内容ばかりだが、
同じ内容でもプログラムの書き方が筆者によって違うから、
その違いを味わいながらコーディングを学ぶ。(真似する)
264デフォルトの名無しさん:2011/08/16(火) 15:24:53.21
>>259
C++やってたから、C#は文法覚えれば割と簡単に使えた。
C++自体はほぼ独学。
C言語は学校通ってたけど、その学校もいまでは潰れた。

自分の学習方法は、やっぱなんか作ることだね。
ライブラリでこういうのがあったら面白いかも?とおもったら、作ってみる。
あとは、グチャグチャにならない程度にショートコーディングを意識してる。

C#だとGUI周りが充実してるから、想像を形にするのは結構向いてると思う。
265デフォルトの名無しさん:2011/08/16(火) 15:26:30.00
2chの専ブラでも作ってみるといいかもね
クライアント側をそこそこ学べるんじゃないかな?
266デフォルトの名無しさん:2011/08/16(火) 16:06:36.80
プログラミング自体が初めてなのか、他言語の経験あるのかで回答は変わる
267デフォルトの名無しさん:2011/08/16(火) 16:11:28.93
言語を誰かに教わらないと出来ないような人間だったら、
プログラミングには手を出さないほうが良い
基本的には全て独学で覚えていかないといけない世界だからな
268デフォルトの名無しさん:2011/08/16(火) 16:32:33.50
おまえはウザイ
269デフォルトの名無しさん:2011/08/16(火) 18:06:50.67
プログラムなんて、やってるうちにできるようになるよ。
教室で興味のないコード書かされるより、自分で気楽に書いたほうが勉強になる。
270デフォルトの名無しさん:2011/08/16(火) 18:37:12.19
C#で仮装マシンなしのピュアコンパイラとして仮に動作させるとすれば、
ネックになるのはやっぱオートのおデストラクタとガベコレ?
271デフォルトの名無しさん:2011/08/16(火) 18:40:19.38
C++からは格段にスマートになってるとは思うんだけど、
C++使いながらC#言語仕様書読んでるとほんと混乱するんだな。
272デフォルトの名無しさん:2011/08/16(火) 18:54:29.91
C++も相当ボリュームあって、美しくなく、難しい言語だと思うけど、
C#はスマートでもさらにボリュームが増えて難しくなったな。
これいきなり読んで今の子はプログラムするのか?
C→C++で段階踏んできた俺等からすると
C#でいきなりプログラムは相当敷居が高そうだけど。
273デフォルトの名無しさん:2011/08/16(火) 18:56:48.53
英語のカリキュラムを完全に終えてないと喋れないわけじゃないだろ
プログラミングだって同じ
274デフォルトの名無しさん:2011/08/16(火) 19:08:59.12
敷居が高いとか、何かお前はC#に不義でも働いたのか?
275デフォルトの名無しさん:2011/08/16(火) 19:16:05.29
高いのは敷居じゃなくてハードルだろ
無学なのが一番の問題なんじゃね?
276デフォルトの名無しさん:2011/08/16(火) 19:16:06.22
>>256
そうなんですか?
>>252のやつは
Array.Resize(ref scls.intData, 10);
でうまく動いたけど・・・

>>258
すでに配列で確保した奴のメンテなので・・・
277デフォルトの名無しさん:2011/08/16(火) 20:24:25.50
>>275
お前
敷居が高い、とハードルが高いを
どう使い分けるのか言ってみろこのゴミカス高卒が。
278デフォルトの名無しさん:2011/08/16(火) 20:46:41.51
>>277
暴言吐く前に辞書引くなりしろよ…
279デフォルトの名無しさん:2011/08/16(火) 20:48:19.69
そこで罵倒を入れるとお前は高卒未満になってしまうぞ
280デフォルトの名無しさん:2011/08/16(火) 20:53:08.04
その「未満」の使い方も問題だと思うけどね
恐らく意図的にその言葉を選んだんだろうけど、だからこそ余計に。

しかし、誤用厨って馬鹿っぽいな。
281デフォルトの名無しさん:2011/08/16(火) 20:55:14.29
プログラム言語の話にしましょうや。
日本語の誤用にやたら厳しくしてると嫌われちゃうよ。
自然言語なんて誤用からスタンダードに変わっていくものなんだからさ。
282デフォルトの名無しさん:2011/08/16(火) 21:02:21.88
ガベージコレクションって簡単にメモリリークするし結局いつも明示的に使ってる…
283デフォルトの名無しさん:2011/08/16(火) 21:05:13.14
どうしてその誤用が定着しつつあるのか興味はあるなw
敷居なんて普段の生活でそんなに意識してないだろうに
284デフォルトの名無しさん:2011/08/16(火) 21:07:44.98
敷居〜とハードル〜ってそんなあからさまな誤用じゃないような
広義の意味では似通ってるし
煮詰まる、とか役不足なんて真逆の間違い多いしよっぽどだと思う。
真逆については(ry
285デフォルトの名無しさん:2011/08/16(火) 21:17:05.68
2chなら誤用なんてどうでもいいw
基本バカだし
286デフォルトの名無しさん:2011/08/16(火) 21:34:51.16
ねらーリアルでやるから
287デフォルトの名無しさん:2011/08/16(火) 21:38:06.38
>>282
GCでメモリリークする原因ってただ一つ、
「明示的に参照を切らないといけない状況で放置」だぞ
GCを理解してない証拠
288デフォルトの名無しさん:2011/08/16(火) 21:43:26.00
FMFM
DisposeのみでオールOK
そう思っていた時期が俺にもありました
289デフォルトの名無しさん:2011/08/16(火) 21:45:27.72
え、どういうこと(汗
290デフォルトの名無しさん:2011/08/16(火) 21:47:22.38
Disposeすれば何でもメモリが開放されると思ってたw
291デフォルトの名無しさん:2011/08/16(火) 21:56:28.51
Disposeとメモリの解放は直接関係ないよ
たとえばメインウィンドウがList<T>を持っていて、
子ウィンドウを開くたびにそこにオブジェクトを追加して、
使わなくなっても削除しなかったらメモリリークだよ
292デフォルトの名無しさん:2011/08/17(水) 00:24:52.95
>>290
え?っと思ったらDisposeはリソースを開放するだけなのか
また一つ勉強になったわw
293デフォルトの名無しさん:2011/08/17(水) 01:50:09.63
リソースってメモリだろ?
って思ってる奴には目から鱗だよな。まぁ勉強不足なだけだが
294デフォルトの名無しさん:2011/08/17(水) 09:27:17.85
タスクマネージャ走らせて、メモリリークしてないようなら放置してる
295デフォルトの名無しさん:2011/08/17(水) 09:32:13.87
>>293
おまえがそう思ってたんだろ。ごまかすな。
CPUから見てポートとバスにつながってるモノはみんなリソース
296デフォルトの名無しさん:2011/08/17(水) 09:38:13.56
メモリリークしてそうなら、再起動する
どんなに注意深く設計しても、リークするときはリークするし
297デフォルトの名無しさん:2011/08/17(水) 10:05:56.30
C++と違い、>>291のようなタイプのメモリリークやDispose忘れやハンドル漏れは
プロファイラ使えば簡単に見つけられるぞ
298293:2011/08/17(水) 11:52:32.44
>>295
まさにそうだけど、ごまかしたつもりはないんだが、、勉強不足ってのも自分のこと
それにしても、Disposeでポートとバスにつながってるものが解放されるってか?
299デフォルトの名無しさん:2011/08/17(水) 12:00:36.74
>>266
259の書き込みをした者です。
一応、COBOLで社内の基幹システムを、ゴリゴリと開発しております。
表現は曖昧になってしまいますが、販売管理システム・生産管理システムなど、COBOLでは難なく(?笑)構築はできます。
COBOLでは……。
300デフォルトの名無しさん:2011/08/17(水) 13:47:11.25
>>299
COBOL出来るなら大丈夫
とりあえずフォームにコントロールをペタペタ張って遊んでみ
COBOL使うのがバカらしくなるぜw

IDENTIFICATION DIVISIONとか、打つだけでもめんどくせぇ
301デフォルトの名無しさん:2011/08/17(水) 13:51:13.83
>IDENTIFICATION DIVISIONとか、打つだけでもめんどくせぇ

いくらコボラーだってコピペぐらい知ってるだろ
302デフォルトの名無しさん:2011/08/17(水) 14:41:33.53
真のコボラーは、ENVIRONMENT DIVISIONとか手が勝手に打つ
303デフォルトの名無しさん:2011/08/17(水) 14:48:16.31
Emacsのマクロに登録してあるに決まってるだろ
304デフォルトの名無しさん:2011/08/17(水) 15:01:58.13
初歩的な質問で申し訳ありませんが
以下のコードで
obj.B();
のような呼び出しが可能になるのはどうしてでしょうか?

static class A
{
public static void B(this C obj)
{
}
public static void hoge()
{
C obj = new C();
obj.B();
}
}

class C {

}
305デフォルトの名無しさん:2011/08/17(水) 15:09:27.53
>>304
拡張メソッド
306デフォルトの名無しさん:2011/08/17(水) 15:09:20.18
どうしてって言われても、そういう風に作ったからとしか
インスタンスメソッド風に静的メソッドを呼べるように作られたのが拡張メソッド
質問意図が分からない
307デフォルトの名無しさん:2011/08/17(水) 15:11:15.27
拡張メソッドでしょ
コンパイラが
obj.B();

B(obj);
に置き換えてるだけ
308デフォルトの名無しさん:2011/08/17(水) 15:15:39.30
>>305
>>306
>>307
ありがとうございます。
309デフォルトの名無しさん:2011/08/17(水) 16:08:00.36
>>274

お前は単に"難しくてとっつきにくい"意味で使うマスコミに対して
いちいちいちゃもんつけてんのか馬鹿たれ。お前新聞読んだことあるんかい。
アホにつける薬ないな。

http://www.nikkei.com/life/family/article/g=96958A88889DE2E4E1E3E3EBE5E2E0E7E2E6E0E2E3E2E2E2E2E2E2E2;p=9694E0E3E2E0E0E2E3E2E6E6EBEB
310デフォルトの名無しさん:2011/08/17(水) 16:35:47.43
昨日の話にいちゃもんつけてんのかw
311デフォルトの名無しさん:2011/08/17(水) 17:40:21.13
体を張ってアホに付ける薬が無いことを示してくれるなんて
312デフォルトの名無しさん:2011/08/18(木) 03:49:19.23
あるクラスにたいして特定の拡張メソッドがあるかどうかを判定するには
どうすればいいんでしょうか?

たとえばどこかでFoo()みたいな拡張メソッドが定義されていて
クラスBarにたいしてBar.Foo()と呼べるかどうかを判定したいんです

もしかして<T>で受けたクラスは拡張メソッド呼べなかったりします?
313デフォルトの名無しさん:2011/08/18(木) 04:17:50.47
>>312
Bar.Fooってことは静的メソッド?それは拡張メソッドでは無理じゃね?
314デフォルトの名無しさん:2011/08/18(木) 05:51:40.98
>>312
実行時に特定の拡張メソッドがあるかどうかを取得してみた。
http://ideone.com/OK0PN
315デフォルトの名無しさん:2011/08/18(木) 10:22:32.84
>>312
ジェネリック型は当然無理だしもちろんdynamicでも無理
拡張メソッドは単なるシンタックスシュガー
ソースファイルのusingに依存するから、リフレクションでも正しく判断するのは不可能
316デフォルトの名無しさん:2011/08/18(木) 11:10:37.74
パネルのVerticalScroll.Valueに代入しても反映されないで値が0のままなのは何故でしょうか
その直前ではHorizontalScroll.Valueに代入出来てるのに…
317デフォルトの名無しさん:2011/08/18(木) 11:20:42.46
あ、AutoScrollPositionで指定すんですね
失礼しました
318デフォルトの名無しさん:2011/08/18(木) 12:13:02.97
圧縮されたファイル(zip、rar、7z)の中にある画像ファイルを表示させたいのですが、
今考えているのは対象の圧縮ファイルを解凍してテンポラリフォルダ下に置き、見ようと思うんですが
この処理だと解凍するときに重くなるし、テンポラリフォルダの容量もバカ食いするので現実的に無理そうです
仕様としては一定のメモリの中で、画像ファイルをロードしてメモリのサイズが超える場合古いやつから削除って感じです
319デフォルトの名無しさん:2011/08/18(木) 12:15:28.28
で?
320デフォルトの名無しさん:2011/08/18(木) 12:16:15.36
それでいいんじゃないとしか言い様がないのだが

何を求めているのかを本文の最初に書かないと
321318:2011/08/18(木) 12:45:30.12
説明不足でした。>>318に書いてあるとおりでいいライブラリ知らないでしょうか?
322デフォルトの名無しさん:2011/08/18(木) 12:47:06.96
今は何使ってやってるのさ
隅々まで探せばバッファに展開する機能くらいあるんじゃねえの
323デフォルトの名無しさん:2011/08/18(木) 13:37:39.36
Susieプラグイン対応にすればいいんじゃない?
324デフォルトの名無しさん:2011/08/18(木) 15:36:15.34
そっちの方面はあんまり詳しくないけど、rarとかって、ファイルごとの解凍ってできるんだっけ。
325デフォルトの名無しさん:2011/08/18(木) 15:43:23.83
ヘッダ暗号化とかソリッド圧縮じゃなければね
326デフォルトの名無しさん:2011/08/18(木) 15:58:25.76
そうなのか。サンクス。
327デフォルトの名無しさん:2011/08/18(木) 16:51:51.76
>>314
Reflectionで拡張メソッド探すんですね、どうもありがとう。
328デフォルトの名無しさん:2011/08/18(木) 18:54:16.11
NET Framework 3.5や4から新しく追加されたクラスなどの一覧は
どこかにまとめてあったりするでしょうか?
329デフォルトの名無しさん:2011/08/18(木) 18:59:53.88
いいえ
330デフォルトの名無しさん:2011/08/18(木) 23:13:50.29
Dotnetzipで作成したzipファイルって、Lhacaとかのツールでも解凍できますか?
それとも解凍用プログラムも作っておかないといけない?
331デフォルトの名無しさん:2011/08/18(木) 23:34:23.91
試せよ
332デフォルトの名無しさん:2011/08/18(木) 23:39:01.18
やってみりゃいいじゃん!
そんな手間でもなかろうに。
333デフォルトの名無しさん:2011/08/19(金) 00:35:51.70
圧縮して解凍するプログラム作ろう。無駄に洗練された無駄の無い無駄機能として。
334デフォルトの名無しさん:2011/08/19(金) 00:48:38.10
わかった明日試すよ!ありがと!
335デフォルトの名無しさん:2011/08/19(金) 00:58:47.80
WebClient の、DownloadDataAsync() を呼び出した場合でも、
DownloadDataCompleted イベントが呼ばれないことはあるんですが、どこか間違ってるんでしょうか。
それとも確実に呼ばれることを期待しない方がいいんでしょうか。
336デフォルトの名無しさん:2011/08/19(金) 01:04:00.43
DownloadDataCompleted設定する順番が間違ってるとか
確かDownloadDataAsync()を呼び出したらdownloadをはじめてるはず
その辺は間違ってないよね?
337デフォルトの名無しさん:2011/08/19(金) 01:13:10.97
はい。WebClientのリクエストヘッダのの設定、イベントハンドラの設定、DownloadDataAsync の呼び出し
の、順でやってます。
338デフォルトの名無しさん:2011/08/19(金) 04:48:18.84
とりあえずソース載せろよ
339デフォルトの名無しさん:2011/08/19(金) 13:00:42.45

すみません。自己解決しました。

根本的な理解はまだなのですが、非フォームスレッドでPictureBoxコントロールを
動的に作成した場合に問題が起こっていたようです。
PictureBox の作成後に作成したWebClient で問題が起こっていました。

別スレッドでPictureBoxを作成し、親フォームへの追加だけをデリゲートを使って、Invokeしていた部分を、
PictureBoxの作成および追加の動作をInvoke するようにしたところ、
問題なくDownloadDataCompleted を受け取ることができるようになりました。

WebClientの動作以外不審な点がなかったので、なかなか気づくことができなかったのですが、
フォーム系統のスレッドの問題が、別の部分で現れるということはあるのでしょうか。
それとも、今回の件に関しては、まだ別の問題点があるのでしょうか。
340デフォルトの名無しさん:2011/08/19(金) 13:42:34.01
Windows7のタスクバーのアイコンにプログレスバーを重ねたりしたいのです
TaskbarItemInfoを使えばいいことはわかったんですが
ひょっとしてこれはWPFで組み直さないと無理なのでしょうか?
341デフォルトの名無しさん:2011/08/19(金) 13:52:19.01
>>340
たぶん。
それが嫌ならP/Invokeじゃないかな。
342デフォルトの名無しさん:2011/08/19(金) 19:21:05.41
ピンボケvsインボケ
343デフォルトの名無しさん:2011/08/19(金) 19:37:18.27
>>330やってみたが、パス無しzipはツールやWindows標準でも展開できたけど、
パス有りだと正しいパスワード入力しても弾かれたり、パス入力ダイアログが表示されなかったりだった。
Dotnetzipはパスワードの掛け方が違うのかな…よくわからない。
344デフォルトの名無しさん:2011/08/19(金) 21:13:19.71
Windows Api Code packでいけるんじゃね。
345デフォルトの名無しさん:2011/08/20(土) 03:38:37.32
>>344
軽くやってみたが駄目だった。やり方が悪かっただけかも知れんが
346デフォルトの名無しさん:2011/08/20(土) 07:53:13.70
usingってDisposeはやってくれるけどCloseはしてくれないですよね?
347デフォルトの名無しさん:2011/08/20(土) 08:01:19.18
>>344
TaskbarManagerの話ならあれもWPF前提みたいだよ
348デフォルトの名無しさん:2011/08/20(土) 08:03:39.76
>>346
うん
まあまともな実装者ならCloseとDisposeは等価になるように実装するけどね
349デフォルトの名無しさん:2011/08/20(土) 08:29:07.38
SqlConnectionとか CloseしてもOpen出来るのはまともな実装じゃないよなwww
350デフォルトの名無しさん:2011/08/20(土) 08:32:36.10
>>348 どもです
例外起きたらcloseされないとかなったらusingのうまみがなくなりますしね
.NET FrameworkのDBだかファイルだかストリームのDisposeとCloseが等価じゃないようなこと聞いたんだけど
デマすかね
351デフォルトの名無しさん:2011/08/20(土) 13:46:07.16
352デフォルトの名無しさん:2011/08/20(土) 14:37:22.30
関西人?
353デフォルトの名無しさん:2011/08/20(土) 20:20:29.02
>>349
CloseやDisposeした後で再使用できるようにするのは
推奨されてないが一応アリだ
多くの場合は再びnewするのと変わらんので実装が面倒なだけだからわざわざやらないが
354デフォルトの名無しさん:2011/08/20(土) 21:02:13.63
Disposeはともかく、Closeについては別に再Openできても何も不自然に感じない....
というか、むしろそうできないことこそ手抜きのように感じないでもないが
355デフォルトの名無しさん:2011/08/20(土) 21:40:43.29
再Openできるメリットが見つからないんだけど何かある?
356デフォルトの名無しさん:2011/08/20(土) 21:47:47.23
オブジェクトの生成にコストがかかる場合があるかもしれない
でもほとんどのCloseやDisposeできるオブジェクトって単にアンマネージリソースのラッパーで
new→アンマネージリソース確保、Dispose/Close→アンマネージリソース解放
なので意味無いんだよな
357デフォルトの名無しさん:2011/08/20(土) 22:14:12.25
>>355
ファイルや通信チャンネルなど、頻繁にアクセスするが常時占有したくはない
共有リソースは普通にあると思うが。

もちろんその都度インスタンス生成しても良いかもしれんが、
別にそうしなければいけない理由もない
358デフォルトの名無しさん:2011/08/20(土) 22:27:49.77
VC# 2010 Express で、ブレークポイントの条件を設定することはできませんか?
359デフォルトの名無しさん:2011/08/20(土) 22:29:04.49
>>357
パラメータを使い回すだけならFileInfo.Openでストリーム返すみたいにクラス分けりゃいいんだよ
意味的には少々不自然でもオブジェクトが状態を持たなくて済む方法があるならそっちが好まれる
360デフォルトの名無しさん:2011/08/20(土) 22:31:17.27
>>358
Professionalをお買いください
361358:2011/08/20(土) 22:34:45.81
そうですか。わかりました。
362デフォルトの名無しさん:2011/08/21(日) 00:06:52.31
次のコードのジャグ配列で配列の長さ(.Length)を使って配列の中身をすべて表示させたいのですが
どうすればよいのか分かりません。


int[,][] a = new int[2, 2][]{
{
new int[2] {1,2},
new int[2] {3,4}
},{
new int[2] {5,6},
new int[2] {7,8}
}
};

for(int i=0;i<a.Length;i++){
for(int j=0;j< ;j++){
for (int k = 0; k < ; k++)
{
Console.WriteLine(a[i, j][k].ToString());
}
}
}
363デフォルトの名無しさん:2011/08/21(日) 00:21:33.68
>>362
for (int i = 0; i < a.GetLength(0); i++) {
for (int j = 0; j < a.GetLength(1); j++) {
for (int k = 0; k < a[i, j].Length; k++) {
ていうか矩形の場合でも2次元配列使わなないで[][][]でいいよ
この場合速度もそのほうがだいぶ速いはず
364デフォルトの名無しさん:2011/08/21(日) 12:58:14.86
Javaの

public bool isCollision (List<? extends BaseSprite> BaseSprites){}

をC#に移植するにはどうすりゃいいの?
365デフォルトの名無しさん:2011/08/21(日) 13:08:50.26
public bool IsCollision<T>(IList<T> baseSprites) where T : <BaseSprite>
366デフォルトの名無しさん:2011/08/21(日) 13:10:31.05
・ジェネリックメソッドbool IsCollision<T>(List<T> ...)where T: BaseSprite{}にする(2.0以降)
・IEnumerable<BaseSprite>型にする(4.0)
・IEnumerable<BaseSprite>型にして、呼び出し元で引数を.Cast<BaseSprite>()する(3.5)
367デフォルトの名無しさん:2011/08/21(日) 13:50:03.23
bool isCollision <T> (List<T> baseSprites) where T : BaseSprite{}

解決した
どうも

>>365 は最後に<BaseSprite>を<>で囲めないんじゃないか?知らんけど
>>366 の下2つはなんだ?Enum?
368デフォルトの名無しさん:2011/08/21(日) 14:10:55.84
IEnumerable<T>はコレクションが実装する基本的なインターフェース
これがあるとforeachやLINQが使える
列挙型とは全く無関係
369デフォルトの名無しさん:2011/08/21(日) 14:20:35.13
>>363

うまく動きました。

ありがとうございました。
370デフォルトの名無しさん:2011/08/21(日) 14:59:54.19
>>367
それJavaのコードと等価じゃないぞ
.NETのList<T>はJavaのArrayList<E>に相当する
具象型でコレクションを受け渡しするのは嫌われるのでインターフェイス通してる
JavaのList<E>に近いのはIList<T>インターフェイスだけど、
とにかく複数の値を受け渡ししたい時は大抵IEnumerable<T>で十分なので
特に理由が無ければIEnumerable<T>で受け渡ししたほうがいい
371デフォルトの名無しさん:2011/08/21(日) 19:02:03.39
すみません、質問です。

SHDocVwにてInternetExplolerを起動し、mshtmlにてformに文字をセットしたりしています。
ほとんどのhtmlファイルに関しては思った処理が出来ているのですが、下記の場合のみうまく拾えません。
解決方法をお持ちの方、教えてください。

【現象】
formにid、nameがなく、submitにもid、nameがない。
ページ内にformが複数あり、対象formは2つめ。
下記のソースでformは拾えなかった。
// ieはInternetExplolerインスタンス
HTMLDocumentClass doc = (HTMLDocumentClass)this.ie.Document;
mshtml.IHTMLElementCollection elements = (mshtml.IHTMLElementCollection)doc.forms;
HTMLFormElement element = (HTMLFormElement)elements.item(Type.Missing, 1);
372デフォルトの名無しさん:2011/08/21(日) 19:25:56.33
第一引数の方じゃね?
373デフォルトの名無しさん:2011/08/21(日) 19:33:45.72
>> 372
マジか…と思って確かめたらそうでした orz
第1引数ってname名じゃないんですか?
374デフォルトの名無しさん:2011/08/21(日) 19:38:03.16
> name
> [in] VARIANT of type VT_I4 or VT_BSTR that specifies the object or collection to retrieve.
> If this parameter is an integer, it is the zero-based index of the object.
> If this parameter is a string, all objects with matching name or id properties are retrieved,
> and a collection is returned if more than one match is made.
>
> index
> [in] VARIANT of type VT_I4 that specifies the zero-based index of the object to retrieve when a collection is returned.

パラメータの名前だけ見ちゃうのはよくないことですよー
第二引数は第一引数で複数引っかけた時用
375デフォルトの名無しさん:2011/08/21(日) 19:39:45.92
>> 374
見落としてました。勉強になりました。
どうもです。
376デフォルトの名無しさん:2011/08/21(日) 21:34:53.92
C#について何も分からない頃はどういった勉強をすればいいのでしょうか?
377デフォルトの名無しさん:2011/08/21(日) 21:37:21.02
>>376
ネットでも本でも良いけど、入門する
378デフォルトの名無しさん:2011/08/21(日) 21:40:15.43
>>377
分かりました。ご回答ありがとうございました。
379デフォルトの名無しさん:2011/08/21(日) 21:55:25.04
>>376
最初はコンソールで言語のことを知る。
フォームはその次。最初に触ってもカオスなだけだし。
380デフォルトの名無しさん:2011/08/21(日) 21:56:21.01
>>379
言ってる意味がわからねえ。
381デフォルトの名無しさん:2011/08/21(日) 22:02:20.59
おーそーり。
最初からGUIは諦めろって話だ。
382デフォルトの名無しさん:2011/08/21(日) 22:08:54.40
フォームはGUIなのか。
383デフォルトの名無しさん:2011/08/21(日) 22:12:07.45
windowsFormの事だとエスパーしてみる
384デフォルトの名無しさん:2011/08/21(日) 22:13:26.29
プログラミング初学者向けのVisualC#のチュートリアル本見ながらWinFormsで遊んで、
限界を感じてから言語の勉強するのもいいと思うよ
言語の機能を何に使うのか想像できないと勉強しても身にならん
385デフォルトの名無しさん:2011/08/21(日) 22:14:28.66
ウインドウをだして任意の処理を入れたくても、お作法が必要なんだよ。
先に下地がないと、思考爆発するからね。下地を最初につくるんだ!!
386デフォルトの名無しさん:2011/08/21(日) 22:17:44.75
>>384
基本文法の機能を知るのにGUIは要らんだろw
最初からGUIじゃ、コードが長くなって初心者が解読出来んわw
387デフォルトの名無しさん:2011/08/21(日) 22:23:12.56
それはLabelに出力するよりConsoleに出力する方が簡単ってだけで、
入力が絡むような例になればGUIとボタンイベントで説明した方が楽だよ
どうせ.Designer.csの中身なんて解説しないし
388デフォルトの名無しさん:2011/08/21(日) 22:24:00.80
でも、ゆとりにタマ拾いばかりさせてるとすぐに辞めちゃうから見た目も少しは教えてあげないとナ。
でも、そんな子供だましで釣られるかよってキレるんだよな
ちったぁ教える方の身にもなってみろってんの・・・はぁ
とウチの上司が頭抱えてます。
俺?カエルのツラになんとやら。けろっ。
389デフォルトの名無しさん:2011/08/21(日) 22:36:33.19
ブラック企業乙
390デフォルトの名無しさん:2011/08/22(月) 00:24:16.72
コンソール進める人多いけど、GUIではじめてもいいと思うがなぁー
複数のラベルを使い分けたほうが、ダダ漏れなコンソールみるより楽だし。
イベントの概念を早めに掴んで、言語仕様は必要なものから勉強するほうが飽きないよ。
391デフォルトの名無しさん:2011/08/22(月) 00:35:32.37
コンソールって
console.writelineのあのコンソール?
392デフォルトの名無しさん:2011/08/22(月) 00:40:01.30
>>390
言語仕様全部覚える必要は無いよ
基本の文法と入出力、ファイル操作、オブジェクト指向の基礎さえ押さえればGUIにいって構わないと思う

ただ、基礎は大事だよ

そもそも飽きやすい人には向かないんだし、ここで飽きるなら、プログラマ諦めた方が良い
393デフォルトの名無しさん:2011/08/22(月) 00:42:01.54
お前らってあの複雑怪奇な継承とか全て把握してるの?
それとも、たまには確認したりする?
394デフォルトの名無しさん:2011/08/22(月) 00:44:28.70
>>391
さすがにシリアルポートでどうのとかそういうのはハードル高くね?
395デフォルトの名無しさん:2011/08/22(月) 00:50:42.45
>>393
複雑怪奇な継承をまず教えて
多重継承できないのに複雑になるか?
396デフォルトの名無しさん:2011/08/22(月) 01:00:57.24
よく使うやつは使ってるうちに覚える。
他のは必要になったらIDEかMSDNで確認。

C++やJavaよりはシンプルなんだから贅沢言うなって
397デフォルトの名無しさん:2011/08/22(月) 01:59:03.57
C#の継承は単純な方だと思うけどね・・・


javaディスってんの?
398デフォルトの名無しさん:2011/08/22(月) 02:03:45.14
javaは死ねばいいと思うよ
399デフォルトの名無しさん:2011/08/22(月) 03:20:01.72
トップダウンとボトムアップ両方やるのが正しいってのはあたりまえだが
今どきC言語やれってのはいないよね。
CよりVerilogHDLでCPU作るのが面白いと言いたい。
400デフォルトの名無しさん:2011/08/22(月) 07:30:47.47
bitmapにgraphicsで線を描いて、ピクセル操作(setpicxel)したんですけど、
graphicsに描いた線が反映されません
そこで、お聞きしますが、graphicsはbitmapのピクセルデータを変更しているのでしょうか?
ご教授お願いします
401デフォルトの名無しさん:2011/08/22(月) 07:35:52.57
してるよ
402デフォルトの名無しさん:2011/08/22(月) 07:37:12.13
>>394スレッドとデリゲートとinvokeを駆使する初心者って初心者って言うかなぁ?
403デフォルトの名無しさん:2011/08/22(月) 08:01:31.67
>>401
解決しました
ありがとうございます
404デフォルトの名無しさん:2011/08/22(月) 15:01:30.78
System.IO.FileStream のコンストラクタで

http://msdn.microsoft.com/ja-jp/library/47ek66wy.aspx
このページの「バッファー サイズは、既定のサイズである 4096 バイト (4 KB) に設定されます。」
というときのバッファーサイズと、

http://msdn.microsoft.com/ja-jp/library/d0y914c5.aspx
このページの「バッファー サイズを示す 0 より大きな正の Int32 値。」
というときのバッファーサイズとでは、

まったく別のバッファーについて述べているんでしょうか。
4096という規定値と、「bufferSize 値には 1 から 8 を設定します。」という記述に差があり過ぎて、
どういうことなのかよくわからんです
405デフォルトの名無しさん:2011/08/22(月) 15:29:33.87
悩んだときは英語版
406デフォルトの名無しさん:2011/08/22(月) 15:54:27.33
英語も得意でないし
>The buffer size is set to the default size of 8192 bytes (8 KB).
となってることくらいしか、違いが判りません。

>A positive Int32 value greater than 0 indicating the buffer size.
>For bufferSize values between one and eight, the actual buffer size is set to eight bytes.
というのは、キロがついてませんが実際には0〜8KB ということなんでしょうか。

ファイルへの書き出しで言うと、FileStreamはどんな時も8KBのメモリを確保して、
指定した0〜8KBのデータがバッファにたまると、実際にHDD等への書き込みが起こるみたいな
407デフォルトの名無しさん:2011/08/22(月) 16:36:45.33
> For bufferSize values between one and eight, the actual buffer size is set to eight bytes.
bufferSizeの値が1〜8の場合、実際のバッファーサイズは8に設定されます。
408デフォルトの名無しさん:2011/08/22(月) 16:41:14.98
誤記っぽ〜い
409デフォルトの名無しさん:2011/08/22(月) 16:41:25.26
誤訳だろうね。

> For bufferSize values between one and eight, the actual buffer size is set to eight bytes.

Excite 翻訳だと

1と8の間のbufferSize値において、実際のバッファサイズは8バイトに設定されます。
410デフォルトの名無しさん:2011/08/22(月) 16:44:05.05
訳じゃなくて英語版のMCDNが既に変だべ
411デフォルトの名無しさん:2011/08/22(月) 17:29:09.47
(´・ω・`)…
412デフォルトの名無しさん:2011/08/22(月) 17:39:55.62
WPFのTextBoxでIMEを使って入力してると、たまに入力がおかしくなって、挙句の果てに

System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 System.Windows.Documents.ImmComposition.get_RenderScope()
場所 System.Windows.Documents.ImmComposition.InternalMouseEventHandler()
場所 System.Windows.Documents.ImmComposition.OnMouseEvent(Object sender, MouseEventArgs e)

みたいな感じで落ちるのは何なの?バグなの?
ググっても何のドキュメントも出てこないし…

どなたか似た現象に遭遇して対処できた!って方いらっしゃいます?
413デフォルトの名無しさん:2011/08/22(月) 17:42:13.57
>>402
見よう見まねでやってるけど、おれは初心者だな。
まだプログラム歴1年未満だし。分からないことだらけ。
でも何とかなってしまうのがC#・・・というかVSのインテリセンスのおかげか?
414デフォルトの名無しさん:2011/08/22(月) 21:27:43.52
415デフォルトの名無しさん:2011/08/22(月) 21:29:58.72
VC#2010 WPF で開発しています。
(内容はC#です)

下記をMainWindow.xaml.cs に記述してProcTest() を
実行すると、notepadを閉じた後に「閉じた」と表示されます。
ですが、下記を別ファイルのクラスCProcMngr に記述して
MainWindow.xaml.cs にて CProcMngr cPm = new CProcMngr; cPm.ProcTest();
としますと、notepad を閉じてもイベントが発火しません。

この理由と、どうすればイベントを発火するようにできるのか
ご教授願えないでしょうか。よろしくお願いいたします。

private void ProcTest() {
Process hProc = new Process();
hProc.StartInfo.FileName = "notepad.exe";
hProc.StartInfo.Arguments = "";

// プロセス終了後にイベントを点火させる
hProc.EnableRaisingEvents = true;
hProc.Exited += new EventHandler(processExited);

// プロセス開始
hProc.Start();
}

private void processExited(object sender, EventArgs e) {
MessageBox.Show("閉じた");
}
416デフォルトの名無しさん:2011/08/22(月) 21:41:08.25
GCされてるんじゃないの?
プロセスが終了するまではスタックから辿れる場所で
Processオブジェクトへの参照を掴んどかないと
どうでもいいけど気持ち悪い名前やめろよC++かよ
417デフォルトの名無しさん:2011/08/22(月) 22:14:17.93
while (true)
{
label1.Text = cnt.ToString();
cnt++;
}
これでテキストが変更されず,プログラムが固まるのはなぜ?
プログラムが固まるのはわかるけど、何故変更されないかわからない
418デフォルトの名無しさん:2011/08/22(月) 22:16:53.92
プログラムが固まってるから
UIの更新処理だってプログラムだよ?自分で書いてないだけで
419デフォルトの名無しさん:2011/08/22(月) 22:17:52.87
ステップ実行で、変更されているのは確認できるんじゃないか
420デフォルトの名無しさん:2011/08/22(月) 22:20:42.76
なるほど
label1.Refresh();
をいれれば、更新されました。

しかし、threadを使って上の文を実行すると、勝手に変更されますが、
何故ですか?
421デフォルトの名無しさん:2011/08/22(月) 22:29:04.29
GUIの描画を行うスレッドとイベントハンドラを実行するスレッドは同じだから
そのスレッドを通せんぼすると当然描画も止まる
マウスやキーボードの入力も受け付けられなくなるので、原則として
GUIのイベントハンドラは重い処理をしないですぐに処理を返さないといけない
それはそうと他のスレッドからコントロールを直接触ってはいけない
たまたま動いてるかもしれんが間違い(BeginInvoke使う)
422デフォルトの名無しさん:2011/08/22(月) 22:50:45.14
>>420
そりゃUIスレッドは
>threadを使って上の文を実行すると
これを行ったことでUIの更新専属になれたから

先のコードのままだとUIスレッドがUI更新をそっちのけで
与えられた処理に没頭してたからだよ

>label1.Refresh();
この一文を入れることで提示報告するようになっただけ
423デフォルトの名無しさん:2011/08/22(月) 23:02:28.60
通常あるタイミング(ポイントA)でlabel.textはform上に更新される。
while文内部にはポイントAは存在せず、refleshによって明示的に更新しなければならない
でよろしいのでしょうか?
424デフォルトの名無しさん:2011/08/22(月) 23:08:03.36
>>423
はい
まあこんなお行儀の悪い方法もあるし古いVBサンプルなんかだと
これが多いかもね
http://www.atmarkit.co.jp/fdotnet/dotnettips/136doevents/doevents.html
425デフォルトの名無しさん:2011/08/22(月) 23:13:05.06
いろいろありがとうございました。
自分なりに改めて整理したいと思います
426デフォルトの名無しさん:2011/08/23(火) 00:01:10.06
operator=オーバーロードできないとかどうなってるんだ・・・。うむー。Orz
427デフォルトの名無しさん:2011/08/23(火) 00:02:23.15
もしかして:operator ==
428デフォルトの名無しさん:2011/08/23(火) 00:10:47.93
>>427
いやー、違うのよ。以下のようなクラスを書いたんだよ。
で、参照属性を持った基本型と同じような挙動にしたかったんだけど、=をオーバーロードできなくて多少不便な感じになっちゃた。
まー、よく考えたら参照と=の用途がかぶるんだけど、ちょっとまいった。

class TypeReferencer<T>
{
public T Value { get; set; }

public TypeReferencer(T Val){
Value=Val;
}

public TypeReferencer<T> Clone(){
return new TypeReferencer<T>(Value);
}

public static explicit operator T(TypeReferencer<T> Obj)
{
return (T)Obj.Value;
}
/*
public static TypeReferencer<T> operator =(T Val){
this.Value = Val;
return this;
}*/
}
429415:2011/08/23(火) 00:11:39.73
>>416
ありがとうごさいます。
usingでGCしているのがまずいのでしょうか?

名前は、気分を害されたようなら
すみません。
ずっとcppで書いていて急にWPFに
手を出したもので。
430デフォルトの名無しさん:2011/08/23(火) 00:44:00.05
>>429
usingは関係ない
誰も参照しなくなったオブジェクトは勝手に消滅してしまうので
CProcMngrをnewした後ウィンドウクラスのメンバ変数に代入しておく
それが原因かどうかは知らん
431デフォルトの名無しさん:2011/08/23(火) 00:47:33.03
継承関係の関係図のようなものがまとめられてるサイトとかありませんか?
432デフォルトの名無しさん:2011/08/23(火) 01:04:51.18
>>431
基本クラスライブラリの?
http://msdn.microsoft.com/ja-jp/library/system.object_derivedtypelist.aspx
Objectから派生するクラスだけで最低でもこんだけあるんだけど
433デフォルトの名無しさん:2011/08/23(火) 01:06:00.18
>>432
いや、もっと基本的な概念図を
434デフォルトの名無しさん:2011/08/23(火) 01:10:14.73
>>433
意味が分からん
概念図ってなに
435デフォルトの名無しさん:2011/08/23(火) 01:17:36.79
>>434
図形でよこせとかじゃないの?
436デフォルトの名無しさん:2011/08/23(火) 01:33:42.80
>>434-435
えっと、初心者向けの派生クラスやらなんやらを分かりやすく図にまとめたものがあればほしいなと…
437デフォルトの名無しさん:2011/08/23(火) 02:31:14.33
>>414
.NET Framework 4.0 (WPF4) なんです。

でも、なんだかそれに近そう。
438デフォルトの名無しさん:2011/08/23(火) 04:23:27.82
大昔、クラス一覧のポスター付いてきたのがあったなぁ
VC1.0だったかな?
439デフォルトの名無しさん:2011/08/23(火) 05:55:17.52
VC1.0っていうと、32bit対応になった頃か。
440デフォルトの名無しさん:2011/08/23(火) 05:58:43.44
Delphiにもポスターはあったよ
今はクラスが増えすぎて全部は網羅できないだろうね
441415:2011/08/23(火) 10:21:47.79
>>430
hProcをメンバ変数にして、
条件付けて自前でdispose+closeするようにしたら
イベントが発火されました。
ありがとうございました。
442デフォルトの名無しさん:2011/08/23(火) 10:23:43.06
>>438
vc6に付いてて嬉しかった記憶が
443デフォルトの名無しさん:2011/08/23(火) 15:13:02.70
最初に買ったVC6アカデミックにもついてて、ワケワカメだった。
これもおぼえるかー!!と軽く絶望してた。MFCは使ったことないけど。
444デフォルトの名無しさん:2011/08/23(火) 20:14:25.70
確認したらVS2005もポスターセット付いてきていたんだな
445デフォルトの名無しさん:2011/08/23(火) 21:46:20.56
マルチスレッドについて勉強したいけど、いい題材がないでござる(´・ω・`)
ツールとかでマルチスレッド処理が必要になるアプリはないでござるか
446デフォルトの名無しさん:2011/08/23(火) 21:53:22.91
>>445
ファイルコピー高速化ツールはマルチスレッドのが有ったな

動画変換や音楽ファイル変換の方がマルチスレッドの恩恵受けるが
447デフォルトの名無しさん:2011/08/23(火) 22:11:31.39
>>445
マルチスレッドでテキストをソートするアプリとかどう?
448デフォルトの名無しさん:2011/08/23(火) 22:13:57.34
>>447
ソートして、何をするアプリだよ
449デフォルトの名無しさん:2011/08/23(火) 22:17:20.43
例えば、MMOの発言禁止リストをソートすると色々おもしろいぞ。
あー、ファイル読んで行をソートしてファイルに書きこむってやつね。
450デフォルトの名無しさん:2011/08/23(火) 23:38:53.98
苦労してソートを1.5倍速にして嬉しいケースなんてものすごくレアだよ
並列処理というより、ダウンローダとか非同期処理系のほうが簡単に大きな恩恵が受けられるよ
451デフォルトの名無しさん:2011/08/24(水) 00:57:53.47
"勉強の題材"としてマルチスレッドでソートするのは悪くないんじゃないか?
452デフォルトの名無しさん:2011/08/24(水) 01:31:04.19
ダウンローダー作れよマルチスレッドだと捗るぞ
あんまりマルチスレッドし過ぎると繋がらなくなったりするからそれもそれで面白い
453デフォルトの名無しさん:2011/08/24(水) 09:45:58.04
N体問題の物理シミュレーションでもやれば?
GPGPUどころか数百コアでもスケールするぞ
何の役にも立たんがな
454デフォルトの名無しさん:2011/08/24(水) 12:57:48.60
.NET3.5で
・バッテリー搭載機かどうか
・スクリーンセーバータイムアウト時間
・ディスプレイタイムアウト時間
などを取得する関数やプロパティってありますか?

調べてもWin32のPowerManagementAPIや
SYSTEM_POWER_CAPABILITY構造体を利用する
方法しか見つかりませんでした。

バッテリー状態を取得するだけでしたらSystem.Windows.Forms.SystemInformation
で良いのですが、これでは不十分なのです。

Win7を使っているので、7以降のみのもので構いません。
よろしくおねがいします。
455デフォルトの名無しさん:2011/08/24(水) 13:08:47.15
APIあるなら、C#から使えるようにすればよい。
456デフォルトの名無しさん:2011/08/24(水) 13:13:18.19
457デフォルトの名無しさん:2011/08/24(水) 17:52:35.26
>>455
それでも良いのですが、.Netで用意されているのなら
そちらを使う方が気持ちがよいので。

>>455
ありがとうございます。
コードパックにありましたか、調査が足りませんでした。

registryから取得するのも、
MSが公開している情報ではないので
あまり好きではありません。
DllImportしか無いですかね。

あ、文句たれているのではなく、
便所の落書きです。すみません。
ありがとうございました。
458デフォルトの名無しさん:2011/08/24(水) 20:33:50.70
一回の処理に0.1秒程度かかるものを一分周期で実行させたいのですが、
Sleepを使ってループさせると、その処理分0.1秒+αずつずれていきます。
何回実行してもずれないような方法なにかありますか?
459デフォルトの名無しさん:2011/08/24(水) 20:40:24.52
Sleepの引数から処理にかかった時間を引くとか、Timer使うとか
460デフォルトの名無しさん:2011/08/24(水) 21:11:05.66
byte配列を連結させたい
Buffer.BlockCopyより簡単な方法ってある?
461デフォルトの名無しさん:2011/08/24(水) 21:28:11.12
a.Concat(b).ToArray()
462デフォルトの名無しさん:2011/08/24(水) 23:12:05.48
>>458
別スレッドにしてスリープ時間微妙に短くして残り時間をビジーループで消化。
463デフォルトの名無しさん:2011/08/24(水) 23:51:53.32
>>458
サーバータイマー使うとか
464デフォルトの名無しさん:2011/08/24(水) 23:59:42.57
動的にListView を貼ったり、消したりしたいんだけど、
デザインツールを使わずに手書きでプロパティを設定するのは面倒だよね

こういう時は、ListView だけを貼りつけたユーザーコントロールを作って、
そのユーザーコントロールごと貼ったり消したりすればいいの?

なんか、行儀的に良いのかどうか不安が残る
465デフォルトの名無しさん:2011/08/25(木) 00:03:10.46
普通にコントロールのvisibleをfalseに設定すればいい話だと思うんだけど。
複数だったらグループボックスに突っ込んでそっちのvisibleいじればいいと思う。

なんか問題ある?
466デフォルトの名無しさん:2011/08/25(木) 00:04:23.09
>>464
普通にVisibleをトグルでよいのでは?
467デフォルトの名無しさん:2011/08/25(木) 00:18:19.03
おおよそ100個くらいまでの範囲で、増やしたり減らしたりしたいんです
468デフォルトの名無しさん:2011/08/25(木) 00:36:52.55
レイアウトが固定であるなら、
コントロールを配列などに突っ込んで、新しい方からvisibleいじりつつ内容更新してけばいい。
その際にグループボックスに突っ込んでおけば楽な場面もあるかもしれん。

で、100こ扱うことになったら、デザイナで貼るにしろ自分でNEWするにしろ、結構根気いると思うんだけど。
469デフォルトの名無しさん:2011/08/25(木) 00:37:10.02
>>467
ListViewをサブクラス化して、必要な初期化をそれのコンストラクタに書いちまえばいいだろ
ユーザーコントロール下など無駄でしかない
470デフォルトの名無しさん:2011/08/25(木) 01:02:56.58
>>467
俺はユーザーコントロールにする方がいいと思うよ。

デザインだけでなく、表示の更新やユーザー操作への応答部分のコードも
ユーザーコントロールに分割できるから。

100個が種類のことを言ってるのか同時に表示する数の事を言ってるのか分からんが、
いずれにせよそれを制御するコードを全部formに突っ込むなんて想像したくもない。
471デフォルトの名無しさん:2011/08/25(木) 02:27:58.13
アクティブなウインドウの画面キャプチャを取るアプリを作ろうとしています。

Formの上のボタンを押すとGetForegroundWindowが走るようにしたのですが、
自分自身のFormがアクティブなため、自分のキャプチャが取れてしまいます。

画像を取りたいアプリは決まっているので、そいつをSetForegroundWindowでアクティブにしようと思ったのですが、
毎回タイトルが変わってしまうため上手くいきませんでした。

そこで、自分の次にアクティブな画像を取るにはどのようにすればよいでしょうか?
472デフォルトの名無しさん:2011/08/25(木) 03:21:37.56
質問させてください。
ASP.NET .net Framework4にて
App_Codeディレクトリ配下にビジネスロジックを記述したfacadeクラスと、さらにフォルダを切ってXMLを格納してあります。
このfacadeクラスから、とあるdllの処理を呼んでXMLの解析を行わせます。
dll内の解析処理にXMLファイルへのパスを渡すため、現在は下記のように引数で渡しています。
「HttpContext.Current.Server.MapPath("App_Code以下、XMLファイルまでのパス")」

で、気になるのがビジネスロジック層でHttpContextって使っていいの?と、App_Code以下のパスがfacadeクラスごとにベタ書きになっている点です。
もっとエレガントにdll内の処理へXMLのパスを渡してやる方法がありましたら教えていただけますでしょうか。
よろしくお願いします。
473デフォルトの名無しさん:2011/08/25(木) 11:10:57.71
C++でプログラムしてる奴ら
C#の仕様が頭に入ると混乱しないか?
C#の方が理にかなってるからC++の方で間違ってしまう
474デフォルトの名無しさん:2011/08/25(木) 11:24:44.56
そこでC++/CLIを・・・
475デフォルトの名無しさん:2011/08/25(木) 11:38:57.21
それは風邪引いた時に水風呂に入るようなもんだw
476デフォルトの名無しさん:2011/08/25(木) 11:51:13.87
脳内プロファイル切り替えてるから問題ない
477デフォルトの名無しさん:2011/08/25(木) 12:49:10.77
>>461
サンクス
それでうまくいったわ
478デフォルトの名無しさん:2011/08/25(木) 13:09:47.17
>>475
合理的だと言う事か?
479デフォルトの名無しさん:2011/08/25(木) 13:19:35.72
>>472
app.configから読み出したら
480デフォルトの名無しさん:2011/08/25(木) 14:28:58.08
>>458
ThreadTimerじゃいかんのか?
481デフォルトの名無しさん:2011/08/25(木) 17:12:07.33
メトロノーム君と同じ対処で良いだろ>>462
482458:2011/08/25(木) 20:35:43.39
いろいろとありがとうございます
とりあえずタイマーあたりを試してみます
483デフォルトの名無しさん:2011/08/25(木) 22:17:31.59
>>473
うーん、せいぜい this-> の代わりに this. 打っちゃうくらい。
あと、一発書きでメモリリークする率(もちろんテストしてデバッグするけど)上がった。
484デフォルトの名無しさん:2011/08/25(木) 23:01:16.62
>>473
クラスや構造体がnewしなくてもインスタンスが生成されていることに気付かない
485デフォルトの名無しさん:2011/08/25(木) 23:28:33.54
構造体はC#でも一緒でしょ
Javaで小さい値オブジェクトを大量に使い捨てにするようなの書いてると
スタックにオブジェクト置けなくてすごくイライラする
エスケープ解析も馬鹿だし、参照渡しだらけでCより汚い…
486デフォルトの名無しさん:2011/08/26(金) 07:41:51.39
ハァ?C#とC++じゃ構造体が一番違うだろが。
お前、ぱっと見ただけでは気づかない、バグ満載のプログラム書いてないか
487デフォルトの名無しさん:2011/08/26(金) 09:19:20.90
エロい話しようぜ
488デフォルトの名無しさん:2011/08/26(金) 10:40:31.63
Insertしたいです
489デフォルトの名無しさん:2011/08/26(金) 11:09:39.72
WebClient を使っていれば、単一HTTPサーバに対して最大同時接続数2だとかの
決め事は勝手にやってくれるんでしょうか
それとも、アプリケーション側で実装すべきことなんでしょうか
490デフォルトの名無しさん:2011/08/26(金) 11:11:02.23
自力でやらないと駄目
491デフォルトの名無しさん:2011/08/26(金) 11:15:34.63
わかりました
ありがとうございます
492デフォルトの名無しさん:2011/08/26(金) 19:07:27.85
同じ処理ずっと続けてるとどんどん処理が重くなるんですが原因がわかりません

ためしに
for(i=0; i <=10000; i++)
{
sw.start();
for(i=0; i <=10000; i++)
{
なんか処理
}
sw.stop();
}
で計測してみたらどんどん処理時間が加算されてってしまうのですが
どうすれば解決するでしょうか
493デフォルトの名無しさん:2011/08/26(金) 19:11:03.20
sw.Reset()を
sw.Stop()の後に入れて
494デフォルトの名無しさん:2011/08/26(金) 19:11:04.70
その「試し」の言わんとする所が意味不明
495デフォルトの名無しさん:2011/08/26(金) 19:20:17.24
すみませんreset入れてませんでした
496デフォルトの名無しさん:2011/08/26(金) 19:26:02.89
よくある
497デフォルトの名無しさん:2011/08/26(金) 21:08:30.73
>>486
構造体は変数自体がインスタンスだけど?
498デフォルトの名無しさん:2011/08/26(金) 22:39:45.91
DownloadFileAsyncメソッドを使ってて思ったんですが、
ThreadクラスとDownloadFileメソッドを使ってダウンロードの進行率を取得する方法ってないんですか?
499デフォルトの名無しさん:2011/08/26(金) 22:44:24.36
ないよ
やりたければHttpWebRequest使って
500デフォルトの名無しさん:2011/08/26(金) 23:27:47.43
次期バージョンで追加される DownloadFileTaskAsync になら、
進行率取得のためのオーバーロードが存在するんだけどもねぇ。
501デフォルトの名無しさん:2011/08/26(金) 23:29:33.62
dobonあたりにサンプルコードなかったっけ?
まあ.netって超簡単だけど端折ってるか、そうじゃないかで
中間みたいなのがなかったりするよね
502デフォルトの名無しさん:2011/08/26(金) 23:32:25.90
それやりだしたら、Java みたいに「開発者の数だけどころか、その2倍くらいの数フレームワーク乱立してんじゃないか」状態になりかねない。
503デフォルトの名無しさん:2011/08/26(金) 23:33:28.71
WebClientはUIスレッドで始めたら勝手にバックグラウンドで処理されて
結果がこれまたUIスレッドに返ってくることに意味があるんで
明示的に別のスレッドで動かすんなら別にWebClient使う必要ないと思う
504デフォルトの名無しさん:2011/08/26(金) 23:40:48.77
WebClientとWebRequestが全く独立してる(内部実装は別)のはMSらしいよな
Javaなら確実にWebClientにWebRequestオブジェクトを渡す設計になる
ずっと柔軟だけどそれが使いやすいかというと…
505デフォルトの名無しさん:2011/08/26(金) 23:49:09.69
>内部実装は別
ちがうの?
506デフォルトの名無しさん:2011/08/26(金) 23:58:55.96
内部実装はともかく、って意味でしょ
まあprotectedでWebRequest取得メソッドがあるから全く独立とまでは言えない
507497:2011/08/27(土) 00:01:27.81
>>499
ありがとうございます。
どうしてもDownloadFileメソッドだと不具合が起きるみたいなのでひとつ聞かせてください
htmlソースだけ取ってくる場合でも、HttpWebRequestって使えるんでしょうか?

508デフォルトの名無しさん:2011/08/27(土) 00:08:19.20
使えるよ
でもhtmlレベルだと一瞬で終わりそうだな
509デフォルトの名無しさん:2011/08/27(土) 00:10:51.29
Javaのライブラリって過剰にメンバの重複を嫌うよね
で結局.NETのWebClientみたいなものが至る所で再発明される
510デフォルトの名無しさん:2011/08/27(土) 00:13:03.35
JAVAの好きにさしたらええがな
511デフォルトの名無しさん:2011/08/27(土) 00:33:31.16
Javaの再発名大好き文化は別にWebアクセスに限らないしねー。
512デフォルトの名無しさん:2011/08/27(土) 02:56:07.14
C#に限った話ではないのですが、

bool[] hoge = new bool[10000];
//中略・・・hogeの各要素は幾度となく更新される
//一万の要素のうちtrueになってるのは数十から数百個程度とする

ここからすべての要素をfalseにしたいのですが
for(int i = 0; i < 10000; i++){
hoge[i] = false;
}

for(int i = 0; i < 10000; i++){
if(hoge[i]){
hoge[i] = false;
}
}
のどちらが速いですか?実際にはただのbool配列ではなく、もう少し複雑なクラスのリストです。
513デフォルトの名無しさん:2011/08/27(土) 03:00:38.65
>>512
そのループの外にjでさらにダミーのループ作って
時間計測してみればいいんでね?
514デフォルトの名無しさん:2011/08/27(土) 03:09:18.93
やはり計測してみるのが一番早いんですかね
515デフォルトの名無しさん:2011/08/27(土) 03:39:02.15
多分インスタンス再生成するのが早い
516デフォルトの名無しさん:2011/08/27(土) 03:39:21.68
要素一億で計測してみました。あくま自分の環境下のことですが、後学の為に結果残しておきます。
前者:0.120秒
後者(trueの割合100%):0.216秒
後者(trueの割合10%): 0.189秒
後者(trueの割合1 %):0.184秒
後者(trueの割合0 %):0.150秒

後者はtrueの割合が少ないほうが速く成るのは予想通りでしたが、それでも前者の方がずいぶん速いようです。
余計なこと考えないほうがよさそうです。
517デフォルトの名無しさん:2011/08/27(土) 06:21:41.16
bool[] hoge = new bool[10000];
518デフォルトの名無しさん:2011/08/27(土) 09:31:23.42
スピード気になるなら並列処理
でも、I/O伴わない1万程度の処理なら速度気にならないと思うけどね
519デフォルトの名無しさん:2011/08/27(土) 09:34:27.89
あ、処理が単純すぎるから並列は無駄なだけだなw
520デフォルトの名無しさん:2011/08/27(土) 10:20:30.33
Array.Clear使えよ
CLRに組み込まれてるから爆速だぞ
521デフォルトの名無しさん:2011/08/27(土) 11:29:21.28
Javaの

interface{
int TILESIZE = 16;
}

みたいな定数を集めたインターフェイスは通常どう移植するのがベターなの?
522デフォルトの名無しさん:2011/08/27(土) 11:45:22.85
.NETではそういう名前が被りやすい機能は排除されてる
独立したクラスにしてpublic const intかpublic final int
定数名はTILESIZEじゃなくてパスカルケースでTileSize
523522:2011/08/27(土) 11:51:19.67
Javaとごっちゃになってた
×final ○readonly
524デフォルトの名無しさん:2011/08/27(土) 12:02:29.18
staticもねえぞ
525デフォルトの名無しさん:2011/08/27(土) 13:26:04.88
class Constants
{
public const int TileSize = 16;
}

かな。

てか、無名インターフェイスとかキモいのぅ。
526デフォルトの名無しさん:2011/08/27(土) 17:18:36.77
WebBrowserコントロールで10minutemail.comを開いて
メールが届いたらMessageBoxとか表示したいんですけど
DocumentCompletedが発生しないのですがどうしたらいいですか
527デフォルトの名無しさん:2011/08/27(土) 19:06:42.83
>>497
お前はC++とC#のStructの違いを100万回勉強し直せ
528デフォルトの名無しさん:2011/08/27(土) 19:15:22.94
>>527
なら逆に聞くがC#のClassとStructの違いって何だ?
>>484が正しいとすると両方ともnewしないとインスタンスが作られないんだろ?
529528:2011/08/27(土) 19:29:56.76
ああ>>484ってインスタンス生成時のnewの構文的な意味の話?
それなら理解できる。すまん。
C#はわかりやすいように統一してるんだろうが、
意味的にはC++の方が理にかなってると思う。
530デフォルトの名無しさん:2011/08/27(土) 22:58:00.71
Debug.Assertはありますが、MFCのVERIFYマクロのようなものはないのでしょうか?
531デフォルトの名無しさん:2011/08/27(土) 23:47:34.09
Trace.Assert
でもTrace.AssertもDebug.Assertも直接呼ぶより自分でクラス用意して
Conditional属性付けたメソッドでラップして使ったほうがいいんでないかな
532デフォルトの名無しさん:2011/08/28(日) 00:05:51.15
パブリックメンバの引数のチェックにAssertは使うなよ
その場合は普通にif+throwだよ
533デフォルトの名無しさん:2011/08/28(日) 01:49:56.50
c#の機能などを駆使したアルゴリズム辞典なんかはないでしょうか?
534デフォルトの名無しさん:2011/08/28(日) 03:52:40.64
C#でDirectX使ってゲーム作ろうと思ってるんだけど、
XNAってゲームで遊ぶ側に何かランタイムか何か入れなければいけないの?
.NETとDirectXだけでおk?
535デフォルトの名無しさん:2011/08/28(日) 04:21:46.27
for (int i = 0; i < nCount; i++){
Console.Write("{0}", BitConverter.ToUInt16(Data, i * 2)*0xff + BitConverter.ToUInt16(Data, 1+i * 2));

Data[]配列の中身を2byteの数字で取り出したいんだけど、もうちょっとマシな書きかたってありますよね?
536デフォルトの名無しさん:2011/08/28(日) 05:30:04.07
>>532
意味わからん。

Debug.Assert(), if + throw, if + 戻り値 ... 普通にケースバイケースだと思うが。
537デフォルトの名無しさん:2011/08/28(日) 08:10:15.41
TraceSource使おうぜ
538デフォルトの名無しさん:2011/08/28(日) 08:23:32.34
こうか?
for (int i = 0; i < nCount; i=i*2){
Console.Write("{0}", BitConverter.ToUInt16(Data, i )*0xff + BitConverter.ToUInt16(Data,i+1 ));
539デフォルトの名無しさん:2011/08/28(日) 08:42:47.90
iが0のままだぞ
540デフォルトの名無しさん:2011/08/28(日) 08:47:03.10
だなw寝起きで頭廻ってないわw誰だよ早起きは3文の徳って言ってた奴は
541デフォルトの名無しさん:2011/08/28(日) 09:12:56.05
8時が早起きとか
542デフォルトの名無しさん:2011/08/28(日) 09:19:02.29
>>536
引数に限ってはDebug.Assert()はない
[ConditionalAttribute("DEBUG")]だからリリースビルドに残らない

引数はリリースしても定まった値でないから引数なんであって
どうせif throwを書くことになる
543デフォルトの名無しさん:2011/08/28(日) 09:33:22.77
>>534
XNAのランタイムが必要
配布物にXNAランタイムのインストーラを同梱することはできる
でも昔と違って今のDirectXはバージョンが細かいから、C++でも新しいDirectX使ったらランタイムの配布は必要だよ
544デフォルトの名無しさん:2011/08/28(日) 14:57:25.67
>>533
大昔にあったようなアルゴリズム辞典に書かれてるようなのは、たいてい標準ライブラリ内にそろってるのよね。
545デフォルトの名無しさん:2011/08/28(日) 15:18:04.34
>>544
そうなんですよね。
車輪の再発明はしたくない。
546デフォルトの名無しさん:2011/08/28(日) 15:32:27.89
C言語によるアルゴリズム辞典持ってるけど、あまり役立ちはしなかった
機能からアルゴリズムが引けないから

もっぱら読み物としてだ
547534:2011/08/28(日) 18:41:48.34
>>543
解答ありがとうございます。XNAのランタイムが必要なんですね
やっぱりC++で作ることにします・・・
548デフォルトの名無しさん:2011/08/28(日) 19:18:44.19
>>535 BitConverter.ToUInt16(Data, i )で2バイトとれてるじゃん。後ろ+のは要らん。
つか、そういうのはC#じゃなくてC++でやるべき。
549デフォルトの名無しさん:2011/08/28(日) 20:10:03.40
C#の標準ライブラリって、VB.netとか他の.netの言語と共通なの?
違うなら相互に利用できるような仕組みって用意されてるの?
550デフォルトの名無しさん:2011/08/28(日) 20:14:48.03
共通
551デフォルトの名無しさん:2011/08/28(日) 20:15:25.37
VB.NETの方がオマケ機能が多少ついてるが、C#からでも使える
C#独自ライブラリも僅かに存在するけど、コンパイラが使うための機能しかない
552デフォルトの名無しさん:2011/08/28(日) 20:53:47.06
>>548
それくらい普通にC#でやるだろ
つか、C++でもファイルからバイナリ読んだりするときはバイト配列を直接数値の配列に
キャストしたりはしないで同じように計算するぞ?
553デフォルトの名無しさん:2011/08/28(日) 20:54:57.74
>>550,551
ありがとう。安心しました。
554デフォルトの名無しさん:2011/08/28(日) 20:56:44.25
>>552
uint16のポインタにすれば関数も要らない
555デフォルトの名無しさん:2011/08/28(日) 21:02:01.10
>>554
エンディアン依存だしそれでいいならC#でもポインタで同じことできるよ
556デフォルトの名無しさん:2011/08/28(日) 21:03:54.02
パンツの呪い!
557デフォルトの名無しさん:2011/08/28(日) 21:04:50.79
>>535
つか何で*0xffなんだ?0x100じゃないとおかしいだろ
558デフォルトの名無しさん:2011/08/28(日) 21:13:48.04
LINQ to SQLないしLINQ to Entitiesを動かしてみたいんだけど,
サーバエクスプローラ(Expressのデータベースエクスプローラ)介さないと動かないのかな?

完全に学習というかお試しというかなんだけど,
以前いじったMySQLは環境整え易かったんでそれ+VC#2010Expressで試そうとしたんだ

LINQのサンプルはサーバエクスプローラを介してるものばかり,
Expressの制限でデータベースエクスプローラからは
AccessかMicrosoft SQL Serverくらいにしか繋げないんでそれは直接参考に出来ず.
VC#ExpressからMySQLに繋いでるサンプルは,
直接SQLベタ書きで投げるようなものばかりしか見つからず.

まずはサンプル動かして理解したいと思ってた段階なんで
LINQでのデータベース操作がサーバエクスプローラへの登録無しでは
使えないものなのかどうかも判断できず.

それじゃできないとばっさり言ってくれるか,
可能なはずの物なら方向性だけでも示してもらえないだろうか
559デフォルトの名無しさん:2011/08/28(日) 21:24:11.53
お試しならSQL Server Compactでいいじゃないか
560デフォルトの名無しさん:2011/08/28(日) 21:33:09.91
MySQL は Entity Framework で使える DB プロバイダー提供されてなかったっけ?

てか、まあ、自分も SQL Server Compact でいいと思うけども。
561558:2011/08/28(日) 23:36:30.03
そりゃそうだね.ちょっと意地になってMySQL繋ごうとしてたけれど,それがいいか
MySQL Connector/.NETは入れてある.
これがDBプロバイダでいいはずだけど,ちゃんと調べて理解しなきゃだめだな

とりあえず
ttp://d.hatena.ne.jp/taknb2nch/20100711/1278871810
ttp://blogs.wankuma.com/kazuki/archive/2009/04/06/170812.aspx
この辺りでサーバエクスプローラ介さずつないでいるようなので,追いつつやってみてる
埋め込みリソースにアクセス出来ないって,直接関係なさそうなエラーで詰まっているけれども.

これでだめだったら諦めてSQL Server Compactでやってみるよ,ありがとう
562デフォルトの名無しさん:2011/08/28(日) 23:55:54.24
>>528
>>>484が正しいとすると両方ともnewしないとインスタンスが作られないんだろ?

お前はなんでそんなに底のあさーい解釈しかできないんだ。
インスタンス生成の構文なんかあさーい話だ。
スタックにつくられるか、ヒープに作られるか仕様にきちんと謳われているかどうかが最も違う点ってことにすら気づかない
お前はカスだな。
563デフォルトの名無しさん:2011/08/29(月) 00:06:46.96
>>528
>なら逆に聞くがC#のClassとStructの違いって何だ?

おまえ底が浅いも何も皆目わかってないな。
C#はC++と違いclassとstructで参照渡し、値渡しがデフォルトで規定されてる点も異なる
564デフォルトの名無しさん:2011/08/29(月) 00:53:13.49
ListViewのSortって一度SortingをNoneにしないと、再ソートできないんですか?
AscendingとDescendingでトグルしたいだけなんですが、一度Noneを挟まないと、うまくいかないのですが、
そういうもんなんでしょうか。それともなにか間違ってるんでしょうか。

こんなコードでやってます。ちなみに、Sort()を呼んでも同じ結果でした。

void listView_ColumnClick(object sender, ColumnClickEventArgs e)
{
ListView listView = (ListView)sender;
SortOrder oldOrder = listView.Sorting;
//listView.Sorting = SortOrder.None;
listView.Sorting = oldOrder == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending;

listView.ListViewItemSorter = new ColumnSorter(e.Column);
//listView.Sort();
}
565デフォルトの名無しさん:2011/08/29(月) 01:05:49.12
すいません。忘れてください。
566デフォルトの名無しさん:2011/08/29(月) 01:59:54.15
許します。でも忘れない。
567558:2011/08/29(月) 09:33:51.62
結局解決したので一応報告投げとく.

サーバエクスプローラのウィザードで吐き出すソース・リソースの内容
 ≒EntityFrameworkのEdmGen.exeで吐き出す内容なので
こっちで手動でやればExpressでも問題なかった.

あとは>>561とのバージョン違いからくる差かなと思うけど,
接続文字列のリソースのパスを合わせたり(名前空間の分が抜けててアクセスできてなかった)
データベースのユーザやらを今のDBプロバイダのに合わせたりするくらいの修正で
しっかりLINQでのデータ取得できた.
568デフォルトの名無しさん:2011/08/29(月) 10:17:23.99
>>542
>引数はリリースしても定まった値でないから引数なんであって
>どうせif throwを書くことになる

定まってないけど、(バグがなけりゃ) ある範囲に入るはずという引数があるだろ。
569デフォルトの名無しさん:2011/08/29(月) 10:50:51.30
>>568
だから「パブリックメンバ」なんだろ
アクセスレベルの問題ではなく
570デフォルトの名無しさん:2011/08/29(月) 11:38:02.80
>>569
パブリックメンバでも「ある範囲に入るはずという引数」はあるだろ。
571デフォルトの名無しさん:2011/08/29(月) 12:03:49.96
>>570
そうだね。
で、それは例外投げろと言ってるんだろ。何が問題?
ArgumentExceptionはキャッチしないもんだ。
572デフォルトの名無しさん:2011/08/29(月) 12:11:53.79
BinaryWriterにはSeekがあるのに、何故BinaryReaderには無いのでしょうか?
BaseStreamいじるとデータの損失や破損の原因になるって書いてあるし
シークするたびにBinaryReader作り直すしかないですか?
573デフォルトの名無しさん:2011/08/29(月) 12:23:55.06
>>571
もうその辺にしとけ
アホにつきあっても疲れるだけだぞ
574デフォルトの名無しさん:2011/08/29(月) 12:27:43.74
順当に考えればバッファリングの都合
575デフォルトの名無しさん:2011/08/29(月) 13:24:52.89
自分で素ストリームを扱えばいいだけ
576デフォルトの名無しさん:2011/08/29(月) 13:44:40.61
>>571
>何が問題?

実行速度に決まってる思うが。
何のために、リリースビルドでわざわざ「残さない」ようにしてると思ってるの?
577デフォルトの名無しさん:2011/08/29(月) 15:26:26.34
>>576
だからさ、そもそもの質問が「リリースビルドでAssert残したい」なんだよ。
それに対して、リリース時に残すならTrace.Assertじゃなくて例外投げろと
言ってるわけ。なんでそれが残す残さないの話になるの?
578デフォルトの名無しさん:2011/08/29(月) 16:35:30.00
>>577
>それに対して、リリース時に残すならTrace.Assertじゃなくて例外投げろと
>言ってるわけ。

だから、その理由は何だよ。
特に、「パブリックメンバの引数のチェック」にこだわる理由もわからんし。
579デフォルトの名無しさん:2011/08/29(月) 17:18:17.84
通りすがりだけど
アサーションは表明であってチェックではないよ
580デフォルトの名無しさん:2011/08/29(月) 17:34:11.28
で、それが何か?
581デフォルトの名無しさん:2011/08/29(月) 17:58:40.30
リリースビルドに残すってことは実行時に間違った状態になったり
間違った引数が来ることを想定してるんだろ?
普通は例外使うよね(場合によっては例外も不適切だが)。
それをあえてTrace.Assert使えって言うんだから理由を示すのは>>578の方だろ。
582デフォルトの名無しさん:2011/08/29(月) 18:12:45.17
assartって例外的構文だから、リリース時に正当性をチェックしたかったらif文使って条件を切るべきだろう。
if文で遅くなるとか変なこというのであれば書きなおせとしか言えないなー。
583デフォルトの名無しさん:2011/08/29(月) 19:19:09.90
>>581
>それをあえてTrace.Assert使えって言うんだから理由を示すのは>>578の方だろ。

だれも Trace.Assert 「だけ」使えとは言ってない (>>536 参照)
Assert は、「使うな」と言ってる奴がいるから、理由を示せと言ってるだけ。
584デフォルトの名無しさん:2011/08/29(月) 20:46:44.79
>>583
逆に聞きたいんだけどさ
Assertで不正値検出して、その後どうするの??
585デフォルトの名無しさん:2011/08/29(月) 20:53:16.15
>>584
Assert に引っかかるってことは何らかのバグなんだから、普通に修正すればいいでしょ。
586デフォルトの名無しさん:2011/08/29(月) 20:57:31.89
リリースビルドしてからAssertでバグ潰すとか信用無くすぜ
587デフォルトの名無しさん:2011/08/29(月) 20:59:05.41
たまにクラスライブラリでアサート失敗のダイアログが出てくることあるな
投げ捨ててやろうかと思う
強制終了するかどうかは利用者が判断することだ
588デフォルトの名無しさん:2011/08/29(月) 20:59:27.94
通常、Assert(Boolean) メソッドは、プログラム開発時の論理エラーを識別するために使用されます。
589デフォルトの名無しさん:2011/08/29(月) 20:59:31.86
質問してるのは俺だ!(憤)
590デフォルトの名無しさん:2011/08/29(月) 21:00:47.26
ん?
lリリースビルドで Assert に引っかかっても信用なくさない、いいアイデアでもあるんか?
591デフォルトの名無しさん:2011/08/29(月) 21:03:54.79
Assertが発生する箇所はリリース前に全部潰すんだよ
592デフォルトの名無しさん:2011/08/29(月) 21:08:38.21
引数にAssert使うのはおかしいって話だった気がするが
正しい値域は開発者が知ってるわけだからif書けるだろ

Assert に引っかかるってことは何らかのバグなんだから、普通に修正すればいいって
結局修正されるんじゃねえか
頭おかしいの?
593デフォルトの名無しさん:2011/08/29(月) 21:10:41.60
Javaのチェック例外と非チェック例外の議論を見ているみたいだ
594デフォルトの名無しさん:2011/08/29(月) 21:16:04.44
>>585
バグをどうするかはメソッドの利用者が決めるんです
勝手に終了させてはいけないよ

finallyを実行する機会をキミの裁量で奪わないでくれ
595デフォルトの名無しさん:2011/08/29(月) 21:17:26.51
>>583はパプリックメソッドで引数チェック代わりにTrace.Assertを使うって言ってるから
リリース後に残ったバグなんてもんじゃない
呼び方間違えたら強制終了もしくは不正値返却
596デフォルトの名無しさん:2011/08/29(月) 21:17:35.97
チェック例外なんて、Java屋さんが崇拝するScalaでも捨てられたからなw
597デフォルトの名無しさん:2011/08/29(月) 21:22:03.70
引数の異常ってバグなの?
正常系異常でしょ
予期できる復帰可能なエラーでしょ
バグとは言わないよ
598デフォルトの名無しさん:2011/08/29(月) 21:22:10.17
ドキュメントに引数aがnullの場合はArgumentNullExceptionを投げると書いたら
それはちゃんとした仕様だからな。バグでも何でもない。nullは定義域に含まれる。
599デフォルトの名無しさん:2011/08/29(月) 21:28:42.01
>>596
誰もがRuntimeException巻いて捨てるから
600デフォルトの名無しさん:2011/08/29(月) 21:42:07.19
>>591
まあ、それができてりゃ >>584 見たいな質問でないわけだけどね。

>>592
何を盛大に勘違いしてるのか知らんけど、引数チェックの Assert に引っかかるんだから、
普通修正するのは呼び出し側でしょ。頭大丈夫ですか?

>>594
> バグをどうするかはメソッドの利用者が決めるんです

だからそういう仕様にしたければ、そうすればいい。
>>595 もそうだが、ケースバスケースで Assert 使えばいい場合もあると書いてある
のに、「引数チェック代わりにTrace.Assertを使うって言ってるから 」とわざと曲解する
のはなんでなんだ?
601デフォルトの名無しさん:2011/08/29(月) 21:47:58.55
>>597
>バグとは言わないよ

なんでそんな決め付けするかなぁ?
バグかどうかは、仕様次第だろ。
602デフォルトの名無しさん:2011/08/29(月) 22:48:50.75
バグとは言わないようなバグはバグとは言いません!(キッパリ

なんかスゴイこと言ってそうだろ? なぁんにも意味が無いんだぜ?実はw
603デフォルトの名無しさん:2011/08/29(月) 22:54:25.04
> なぁんにも意味が無いんだぜ?実はw

うんうん、>>602 のアホレスと同じだよね〜
604デフォルトの名無しさん:2011/08/29(月) 23:01:34.20
今更割り込んで悪いけど、「ケースバスケースで Assert 使えばいい場合もある」
とはどうしても思えんなあ。

ちゃんと適切な例外を投げようよ。
605デフォルトの名無しさん:2011/08/29(月) 23:16:36.33
>>604
俺もケースバイケースって響きのいい言葉に騙された。
Assertの通知先って"ユーザー"だから、
いかなる状況においても巻き込んじゃいかんだろw
606605:2011/08/29(月) 23:18:39.25
「いかなる状況においても」
は、
「基本」
に言い直す
607デフォルトの名無しさん:2011/08/29(月) 23:19:40.31
そもそもAssertってデバッグしにくいから使わんわ
個人的には#if DEBUGでReleaseとは別にガッツリ検証するのが好みかな
608デフォルトの名無しさん:2011/08/29(月) 23:20:22.90
それは、引数の話?
それとも、すべての Assert の話?
609デフォルトの名無しさん:2011/08/29(月) 23:23:59.45
>>605
>Assertの通知先って"ユーザー"だから、

Assert の通知先は「開発者」でしょ?
ユーザーに見せるもんじゃないと思うが。

>>608>>604 宛て。
610デフォルトの名無しさん:2011/08/29(月) 23:26:44.75
リリース後に残す場合の話だろ? 結局見るのはユーザーじゃないか
あのいかにも間に合わせの妙なダイアログはインパクトあるだろうな
611デフォルトの名無しさん:2011/08/29(月) 23:43:45.75
ProcessWindowStyleを設定しても、Process.Startで実行したプロセスのWindow状態に反映されません。
これは仕様なんでしょうか?WindowsAPI等で最小化状態にする等すれば最小化はできますが、できれば
以下の様なコードで実現したいのです。ちなみにIExplorer等、一部のアプリケーションは以下の方法で最小化
できます。

ProcessStartInfo startInfo = new ProcessStartInfo("calc.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo)
612デフォルトの名無しさん:2011/08/29(月) 23:57:38.47
>>608
その「引数」と「その他すべて」に分けて考える考え方も正直意味不明。

確実にいえることは、百歩譲って確かにAssertはあなたが思っているような使い方が可能かも知れないが、
普通はそんなことしないのよ。ミスリードだから。
613デフォルトの名無しさん:2011/08/30(火) 01:29:06.73
>>607
テスト併用で?
614デフォルトの名無しさん:2011/08/30(火) 01:39:08.42
>>607
ガッツリねぇ
副作用が原因でバグ出したら即禁止になりそうだな。
615デフォルトの名無しさん:2011/08/30(火) 09:34:24.61
>>609
>>605の「ユーザー」はたぶん「動かしてる人」っていう意味で利用者でも開発者でもないと思う
616デフォルトの名無しさん:2011/08/30(火) 09:45:34.18
そもそもなんでArgumentExceptionとかInvalidOperationException使うの嫌がってんの?
Assertだと1種類で済むから?
617デフォルトの名無しさん:2011/08/30(火) 10:16:30.55
例外をドキュメントに書かなくていいしそのテストもしなくて済むからじゃね
例外だと仕様になっちゃうけどアサーションはあくまで「失敗した場合の動作は未定義」だから
618デフォルトの名無しさん:2011/08/30(火) 11:41:12.90
TortoiseGit を導入してみたんだけれど、
バージョン管理すべきファイル・フォルダと
しなくてよいファイル・フォルダを解説した
サイトがあったら、教えてください。
619デフォルトの名無しさん:2011/08/30(火) 11:45:55.37
binフォルダと、テキストエディタで開けないファイルは全部要らん
620デフォルトの名無しさん:2011/08/30(火) 11:48:55.77
レジストリなんて初めから要らなかったんや!
iniファイル最高や!!
621デフォルトの名無しさん:2011/08/30(火) 12:06:42.47
独習c#のp442なんですが、デリゲートからインスマンスメソッドを作成するには
so.メソッド名をデリゲートオブジェクト変数に代入する事で
メソッドの属するクラスのインスタンスが作成され、そこのメソッドに参照されるということで良いのでしょうか?
これってstaticなモノの他にメクラスを用意しなくていいというだけの事ですよね?
622デフォルトの名無しさん:2011/08/30(火) 12:09:55.28
独(特な学)習C#
623デフォルトの名無しさん:2011/08/30(火) 12:11:37.29
>独習c#のp442なんですが、
このスレの住人はその本をベースに勉強しろと言った教師なのか?
そんな本はみんな持ってるわけじゃねーぞ

>デリゲートからインスマンスメソッドを作成する
意味がわかりません
624デフォルトの名無しさん:2011/08/30(火) 13:48:44.18
クトゥルフかと思った
625デフォルトの名無しさん:2011/08/30(火) 14:38:41.59
そりゃインスマ(ウ)スだ
626デフォルトの名無しさん:2011/08/30(火) 15:00:22.64
「り しょうばん」の話がなんでこんなとこでって思ったわ!
627デフォルトの名無しさん:2011/08/30(火) 17:11:42.03
>デリゲートからインスマンスメソッドを作成する

ふんぐるい むぐるうなふ くとぅぐあ ふぉまるはうと んがあ・ぐあ なふるたぐん いあ! くとぅぐあ!

これで召喚出来た気がする
628621:2011/08/30(火) 17:50:10.08
なにこの流れ
629デフォルトの名無しさん:2011/08/30(火) 19:18:22.49
いい太鼓とは過剰夏季で書いて見なさい
630デフォルトの名無しさん:2011/08/30(火) 20:57:03.97
インスマウスメソッドのせいでスレのSAN値が下がってる
631デフォルトの名無しさん:2011/08/30(火) 23:03:47.04
>>610
普通見せないように作るんじゃないのか?

>>612
> その「引数」と「その他すべて」に分けて考える考え方も正直意味不明。

>>532 に言ってくれよ、俺も聞きたいんだからさ。

> 普通はそんなことしないのよ。ミスリードだから。

そんなことがどんなことかわからんし、この文脈で「ミスリード」って正直意味不明。
632デフォルトの名無しさん:2011/08/30(火) 23:09:15.36
>>616
>そもそもなんでArgumentExceptionとかInvalidOperationException使うの嫌がってんの?

逆に聞きたい、なんで Assert 嫌がってんの?
例外も Assert も、ケースバイケースで使えばいいと思うが。

>>617
ほぼ、そんな感じ。
633デフォルトの名無しさん:2011/08/30(火) 23:12:21.28
どうやって見せないように作るんだ?
リリースされたアセンブリに残ってる以上、アサート失敗のダイアログを見るのは確実にユーザーだろ?
絶対に実行時に失敗しないなら残す必要ないだろ。
デバッグ時のみのAssertは誰も否定してない。
634デフォルトの名無しさん:2011/08/30(火) 23:14:34.99
プロジェクト作成時のリリースビルドの既定は、Trace定数の定義が外れているけど大丈夫か?
635デフォルトの名無しさん:2011/08/30(火) 23:29:40.05
ほぼ、そんな感じ。

って手抜き自慢?
636デフォルトの名無しさん:2011/08/30(火) 23:30:31.93
>>632
Assertは開発中に使うもんだからだよ
決まってるがな
637デフォルトの名無しさん:2011/08/30(火) 23:33:14.16
論理的に条件が満たされていなければいけない事を宣言するのがAssertの用法だから、
通知に使ってる時点で頭がクルクルパーもいいところでしょ。
638デフォルトの名無しさん:2011/08/30(火) 23:36:08.28
そもそも>>617

>例外だと仕様になっちゃうけどアサーションはあくまで「失敗した場合の動作は未定義」

ってのも変な話で、ドキュメントに書いてない例外が投げられるケースなんていくらでもあるよ
未定義と称して例外投げても構わない
639デフォルトの名無しさん:2011/08/30(火) 23:44:36.21
表明をあらゆるエラー処理に使用するのは賢明ではない。
表明ではエラーからの復旧が考慮されておらず、表明違反は無条件でプログラムを停止させてしまう場合がほとんどである。
表明はユーザー向けのエラーメッセージも表示しない。
640デフォルトの名無しさん:2011/08/30(火) 23:46:51.20
そもそも>>530の質問はVERIFYだからTrace.Assertは違うな
Conditional使わないで
public static void Verify(bool cond) { Debug.Assert(cond); }
が等価かな
641デフォルトの名無しさん:2011/08/30(火) 23:58:24.70
Assertの人、さすがに間違いを認めたかと思ったがまだ粘ってるのかw

>>631
何でもそうだが、不適切な場面で不適切なものが使ってあると、それを見た他人は
その意図を誤って理解する可能性がある。
それがつまりミスリードということ。

他人をミスリードするようなコードを書くプログラマはダメグラマの烙印を押されても仕方ないね。
642デフォルトの名無しさん:2011/08/31(水) 00:07:28.87
誰かお答えいただけるとありがたいのですが、
ポストバック時のイベントの状態保持の方法について悩んでいます。

現在C#.netでWebページを作成しているのですが、



Button_Click1(object sender, EventArgs e)
{
 for文{
    Button[i].Click += new EventHandler(Button2_Click);
  }

}

Button_Click2(object sender, EventArgs e)
{
//Button2押下時の処理
}

汚いソースですが、ボタン1をクリックしたときボタン2を動的に作成し
表示させることはできるのですが、
ボタン2のイベントが発生せず困っています。

ポストバック時にイベントがきえるなどと書かれていたのは見たのですが、
どのようにすればいいのかまったくわかりません。

誰かわかる人はいませんでしょうか?



643デフォルトの名無しさん:2011/08/31(水) 00:17:08.17
それだけじゃあどこでミスってるかわからん
>>2のコード貼るサイト使って可能な限りコードみせてくれ
644デフォルトの名無しさん:2011/08/31(水) 00:38:22.38
わかりました。
これは便利ですね。
アドレスは以下になります。
http://ideone.com/NLBl5

わかっていないことは動的に作成したボタンイベントが動作しないことです。
どうかよろしくお願いします。
645デフォルトの名無しさん:2011/08/31(水) 01:00:16.03
ASP.netか
646デフォルトの名無しさん:2011/08/31(水) 01:14:21.86
.cs無しのaspxもくれ
647デフォルトの名無しさん:2011/08/31(水) 06:02:51.95
動的に追加したコントロールは
page_loadだがpage_initだかでイベントハンドラ追加しないとイベント起きないはずだった気がする
648デフォルトの名無しさん:2011/08/31(水) 14:22:19.06
イベント内でいちいち変数定義するのと、イベントの外で定義するのどっちがいいんんですか?
649デフォルトの名無しさん:2011/08/31(水) 14:29:40.35
ケースバイケース
好みの問題
うざい先輩の考えに合わせる
650デフォルトの名無しさん:2011/08/31(水) 14:49:32.70
ローカル変数とメンバ変数のこと?
651デフォルトの名無しさん:2011/08/31(水) 14:55:36.30
簡単に言うと
すでに定義されている変数を再定義するのと、最初から定義するのではどちらがいいのかということです
再定義すると読みやすくなるのですが、前に定義した変数がどうなるかわからないです
652デフォルトの名無しさん:2011/08/31(水) 14:58:05.54
スコープを最優先しろ
653デフォルトの名無しさん:2011/08/31(水) 15:06:20.44
>>644
ボタンが押された処理は、ボタンがなければ処理しない。
だから動的に追加したボタンは、ポストバックんときにまた自分で追加しとかなくちゃいけない。
654デフォルトの名無しさん:2011/08/31(水) 15:12:27.97
まあ結局のところその変数がどういう使われ方するか次第だよね
イベント処理だけで使用する場合はその都度でいいだろうし
655デフォルトの名無しさん:2011/09/01(木) 10:50:35.01
オブジェクト指向って初めてなんでいろいろいじって遊んでみたけど結局配列最強だな
656デフォルトの名無しさん:2011/09/01(木) 12:26:33.88
オブジェクト指向と配列を比べてる時点でお前は何も分かってないよ…
657デフォルトの名無しさん:2011/09/01(木) 12:30:26.05
思考が配列なんだろ
658デフォルトの名無しさん:2011/09/01(木) 13:19:34.33
最強はフォーム上に貼りつけられたテキストボックス
変数だけじゃなく、配列としても使うことも出来るぜ
659デフォルトの名無しさん:2011/09/01(木) 14:30:43.07
配列指向
660デフォルトの名無しさん:2011/09/01(木) 15:42:21.71
List<T>でええやん
661デフォルトの名無しさん:2011/09/01(木) 16:44:41.71
List<object>
662デフォルトの名無しさん:2011/09/01(木) 19:16:17.46
List<T>かな。
663デフォルトの名無しさん:2011/09/01(木) 22:31:24.67
System.IO.MemoryMappedFiles.MemoryMappedViewAccessor.ReadArray<T>かな
664デフォルトの名無しさん:2011/09/01(木) 22:32:00.01
>>641
結局、「普通はそんなことしないのよ。」のそんなことがどんなことかもわからんし、
ミスリード以前に単なる批判厨なのか。
665デフォルトの名無しさん:2011/09/01(木) 22:34:18.11
縁なき衆生は度し難しってこういう時に言うのかなw
666デフォルトの名無しさん:2011/09/01(木) 23:19:57.95
あおんな殺すぞ
667デフォルトの名無しさん:2011/09/01(木) 23:35:36.91
>>665
はいはい、具体的なこと語れないなら、もう出てこないでね。

「引数のチェックにAssertは使うなよ」とか言うから、なんかすごい理由が
あるのかと思ったら、どうも個人の思い込みみたいだったな。
668デフォルトの名無しさん:2011/09/01(木) 23:50:13.10
具体的な理由はいくつも出てきてるだろう
君はケースバイケースとしか言ってないよね
669デフォルトの名無しさん:2011/09/01(木) 23:54:46.01
>>667
君は自殺しない理由が無ければ自殺するのか?w

なんかとことん思考様式が倒錯してる人だな。
使ってはダメな理由があるから使わないのではなく、使う積極的理由が何もないから
普通の人は使わないんだよ。

いちおう卑近な例も挙げておくと、メソッド内のローカル変数は、少なくとも機能的には
フィールドで代替できる。

その意味ではローカル変数の変わりにフィールドを使ってはダメな理由はないが、
余程のアホ以外はそんなミスリーディングなことはしない。
670デフォルトの名無しさん:2011/09/01(木) 23:58:18.71
よそでやれ
671デフォルトの名無しさん:2011/09/02(金) 00:30:34.23
>>663 長げぇよ・・・
672デフォルトの名無しさん:2011/09/02(金) 00:34:33.50
会話内容がもはや初心者用じゃねぇ
他所でやれバカタレが
673デフォルトの名無しさん:2011/09/02(金) 00:53:54.19
>>670,>>672
いつも思うんだけど、こういうレスをする連中(命名:棚上げクン)って
そういうテメエのレスが一番スレッドのテーマと乖離してることに気が付いてないのかね。
674デフォルトの名無しさん:2011/09/02(金) 01:46:56.01
>>673
多分気づいてないね
頭悪そうだもん
675デフォルトの名無しさん:2011/09/02(金) 01:55:03.02
喧嘩はTwitterでやれ。
676デフォルトの名無しさん:2011/09/02(金) 07:01:40.90
>>673
死ね
677デフォルトの名無しさん:2011/09/02(金) 07:11:37.45
うわ、ついに「他所でやれ」って言ってる人に対して自演してまで牙を剥き始めたぞ
しかも自分がここに居座るのに都合が悪くなるとスレッドのテーマと乖離ですか
678デフォルトの名無しさん:2011/09/02(金) 07:20:24.32
初心者ばっかのキモイスレだな
679デフォルトの名無しさん:2011/09/02(金) 07:34:55.19
初心者用なんだから当たり前だろ
ついにはテンプレどころかスレタイまで読めなくなったのか
680デフォルトの名無しさん:2011/09/02(金) 08:46:57.81
DataGridViewで下記を試しているのですが、最終行だけ
値を入力後、Enterキーを押しても入力がキャンセルされてしまいます。
原因はDataGridView1_CellValidatingイベントが動作しないためと思われます。
最終行でEnterキーを押した場合でもDataGridView1_CellValidatingイベントが
実行される方法はないものでしょうか?

DataGridViewのコンボボックスにユーザーが文字列を入力できるようにする
http://dobon.net/vb/dotnet/datagridview/comboboxdropdownstyle.html
681デフォルトの名無しさん:2011/09/02(金) 11:08:22.09
>>680ですが、できました。失礼しました。
682デフォルトの名無しさん:2011/09/02(金) 22:44:57.47
>>680ですが、やっぱ出来ていませんでした。
683デフォルトの名無しさん:2011/09/02(金) 23:05:58.62
えっ?
684デフォルトの名無しさん:2011/09/03(土) 00:52:25.68
>>668
>具体的な理由はいくつも出てきてるだろう

と書く割には、その具体的な理由が書いてあるレス番すら書いてないのはなんで?

>>669
おいおい、使う積極的理由が何もないから「使うな」って言ってるわけ?
マジで頭大丈夫?

> メソッド内のローカル変数は、少なくとも機能的にはフィールドで代替できる。

メソッド再起呼び出しされたらどうするの?
スタックでシミュレートするの?

>>668 は理由があるって書いてるけど、>>669 によると積極的理由はないらしい。
まあ、どっちが正しいのか知らんけど、どっちにしてもまともな答えは返せそうにない
ことだけはわかったよ。
685デフォルトの名無しさん:2011/09/03(土) 01:09:58.20
マジ馬鹿ってこういう人のことをいうのか。
686デフォルトの名無しさん:2011/09/03(土) 09:00:34.34
はいはい、おじいいちゃん。来るところ間違えてますよ〜。
ここは介護施設じゃないですよ〜。
ここは幼稚園ですからね〜。
乗るバスを間違えちゃったのかな〜。
687デフォルトの名無しさん:2011/09/03(土) 09:05:53.53
なんか質問できる雰囲気じゃなくなったね
他のところで聞こう
688デフォルトの名無しさん:2011/09/03(土) 09:49:30.89
>>684
Publicでなければテストによって引数の妥当性は保証される為、
Debug.Assert、if-throw、if-returnケースバイケースで良いだろう。

Publicは外部に公開され、未知のアセンブリから利用される為、どんな引数で呼ばれるか分からない。
Publicにこだわったのはこのせいで、引数のチェックは必須となる。
この場合、Trace.Assertで済ませるのは間違い。
妥当性のチェックは出来ても、対処方法が強制終了、続行の二択である上に、どちらを選択するかはユーザー任せ。

しかしPublicであっても複数アセンブリから構成されるアプリで、
自アプリからしか呼ばれない場合、ケースバイケースで構わないと思う。
689デフォルトの名無しさん:2011/09/03(土) 10:24:33.24
馬に長文の念仏唱えて楽しいか?
いいんだよそんな基礎基本も知らずに訳知りぶってる奴なんざ世間で恥かけば
690デフォルトの名無しさん:2011/09/03(土) 22:19:00.99
>>688
やっとまともなレスがきたね。

>Publicは外部に公開され、未知のアセンブリから利用される為、どんな引数で呼ばれるか分からない。
>Publicにこだわったのはこのせいで、引数のチェックは必須となる。

>しかしPublicであっても複数アセンブリから構成されるアプリで、
>自アプリからしか呼ばれない場合、ケースバイケースで構わないと思う。

要するに下のケースを考慮せずに「使うな」って言ってたアホがいたったことでいいのかな?
なら、了解。

>>685-686
ねぇ、そんな無意味なレスしてて楽しいの?
691デフォルトの名無しさん:2011/09/03(土) 22:21:19.71
>>689
恥かいちゃったね (w
692デフォルトの名無しさん:2011/09/03(土) 23:00:09.35
初めからそう言われてるのに、5日に渡って見当違いな返答を続けたおバカさんの言うセリフじゃねえな
693デフォルトの名無しさん:2011/09/03(土) 23:09:55.26
>>692
>初めからそう言われてるのに、

へ〜、どのレスよ。
レス番示してみなよ。
694デフォルトの名無しさん:2011/09/03(土) 23:45:51.41
こう言っちゃなんだが、>>688もとてもまともな意見とは思えないけどね。
変則的な方法を、それを選択する積極的な理由もなしに選択するのを肯定してはだめ。

ケースバイケースというが、どんなケースなら「あえて」変則的方法を選択する必然があるというの?
ないでしょそんなケースは。じゃあケースバイケースじゃないじゃんそれ。
695デフォルトの名無しさん:2011/09/04(日) 00:03:08.21
>>536あたり?あくまで「パブリックメンバなら」の話だけど.

でもってそりゃあ>>688の後者みたいなのはあり得るだろうけど,
普通パブリックメンバなんて呼び方をしたら
コード上でのpublic修飾と完全一致するわけじゃなく
外部へ公開するもの,って意味合い含むんじゃないのかね

その前提でならそりゃあ,Assert残しちゃいかんよって話になるだろうさ
696デフォルトの名無しさん:2011/09/04(日) 00:53:07.22
もう>>268と思っても、以後 >180 でお願いします。 (もう既にとっくに>>401でしたらスミマセンねぇ)
697デフォルトの名無しさん:2011/09/04(日) 02:57:46.03
timeBeginPeriod使えばSleepの精度が上がるらしいですが、
Timer、つまりSystem.Windows.Forms.Timerクラスも精度上がるんでしょうか?
698デフォルトの名無しさん:2011/09/04(日) 07:38:45.52
>>694
>ケースバイケースというが、どんなケースなら

>> しかしPublicであっても複数アセンブリから構成されるアプリで、自アプリからしか呼ばれない場合

って書いてあるんだが、日本語わかりますか?

>>695
> >>536あたり?

それ、俺だ。
って言うか、スレの流れぐらい理解してから書いてくれよ。

> 普通パブリックメンバなんて呼び方をしたら
> コード上でのpublic修飾と完全一致するわけじゃなく

流石にその解釈無理じゃね?
699デフォルトの名無しさん:2011/09/04(日) 09:32:44.27
>複数アセンブリから構成されるアプリで、自アプリからしか呼ばれない場合
っInternalsVisibleTo
700688:2011/09/04(日) 10:21:20.94
>>694
2ch的回答としては間違っているけど、職場で聞かれたらこう答えると思う。
理想から言えばAssertは、、、というか公開するつもりのないメンバをPublicにする時点で無いわ。

でもチーム開発でこだわりだの理想を振りかざすと白い目で見られるよね。
ほら、ちょうど>>698がそんな目で見てる。
701デフォルトの名無しさん:2011/09/04(日) 10:29:10.14
>>696了解♪>>56です。
702デフォルトの名無しさん:2011/09/04(日) 16:53:10.31
メトロノーム作りたいんですけどなんか良いクラスありますか?
703デフォルトの名無しさん:2011/09/04(日) 16:55:54.11
つSystem.Windows.Forms.Timer
704デフォルトの名無しさん:2011/09/04(日) 17:48:07.81
メトロノームだと・・・どっかで聞いた話だな
705デフォルトの名無しさん:2011/09/04(日) 19:07:01.90
気のせいだ
706デフォルトの名無しさん:2011/09/04(日) 20:14:38.25
>>702
こったことをやりたかったら、System.Threading.Timerの方がいいかもよ
707デフォルトの名無しさん:2011/09/04(日) 20:56:29.94
まず精度を聞いておこうか
708デフォルトの名無しさん:2011/09/04(日) 21:05:32.14
                        ノ´⌒`ヽ
                    γ⌒´      \
                   // ""´ ⌒\  )
                    .i /  ⌒  ⌒  i )
                   .i  (ー)` ´(ー) i,/
                   .l .::⌒(_人_)⌒:: |   ループですか。僕の出番ですかね?
                 /⌒ \   ヽ_./  j⌒i、 
              /´     ・      |  |,. 
            _(__ l,       . ノ  ノ
           /´______`___ _´__ノ
709デフォルトの名無しさん:2011/09/04(日) 21:09:11.65
ヨハンメルツェルの娘
710デフォルトの名無しさん:2011/09/04(日) 22:36:10.41
野田め!管たぁビレ ぎゃほ〜
711デフォルトの名無しさん:2011/09/05(月) 10:31:40.73
>>706
俺はSysmte.Timers.Timer使ってる
712デフォルトの名無しさん:2011/09/05(月) 16:40:51.39
C#のクラスライブラリってどこのサイトにまとめられてるの?
713デフォルトの名無しさん:2011/09/05(月) 16:48:01.67
714デフォルトの名無しさん:2011/09/06(火) 03:23:01.67
List<T>をLINQで操作した結果がIEnumerable<out T>になって
シリアライズ出来なくなるんですが何かいい方法ありますか?
エラーの「Add(System.Object) が実装されていません。」がよくわかりません
715デフォルトの名無しさん:2011/09/06(火) 03:45:00.07
>>714
List に戻せばいいだけなら、LINQ の最後に ToList() ってつけるだけ。
716デフォルトの名無しさん:2011/09/06(火) 04:33:17.71
ありがとうございます
わからなくてとりあえず新しいList<T>にぶち込んでましたw
717デフォルトの名無しさん:2011/09/06(火) 08:36:20.47
まあ、ToListも新しいList<T>作られるけどね。
718デフォルトの名無しさん:2011/09/06(火) 08:48:46.80
たしか ToList<T>(this IEnumerable<T> source) { return new List<T>(source); }
じゃなかったか
719デフォルトの名無しさん:2011/09/06(火) 23:53:17.18
>>718
List自身をToListするとそうなるけど、Selectとか通した後だと別のList作られる。
720デフォルトの名無しさん:2011/09/07(水) 02:13:20.95
>>719
ん?Selectを通そうが通さまいが実装は718の通りで、どちらも別のListが作られるよ。
721デフォルトの名無しさん:2011/09/07(水) 10:18:32.17
C++で生成した文字列をC#に正確に渡すにはどうしたらいいのですか?
現状は、

C++側
__declspec(dllexport) char* test()
{
char buf[3]="ABC";
char* b = buf;
return b;
}

C#側
[DllImport("dlltest.dll")]
static extern char* test();

fixed ()
{
char* aa = test();
string aaa = new string(aa); // ←aaaには"ABC"が入っていない
}
722デフォルトの名無しさん:2011/09/07(水) 10:37:49.85
C++側をwchar_tに変換するか
C#側で変換するしかない
受け取ったデータをbyteでみるとABCに相当するコードが入ってるはず
723デフォルトの名無しさん:2011/09/07(水) 10:39:50.83
char*返値にするとか死亡フラグ
724デフォルトの名無しさん:2011/09/07(水) 10:41:36.02
相互運用以前にC++側の実装がありえない
C++から呼んでも失敗するぞそれ
C#側でAllocHGlobalしてポインタをtestに渡してそこに書きこんでもらうとかする
725デフォルトの名無しさん:2011/09/07(水) 10:44:15.73
まあ文字列のような長さが決まって無い物をやり取りする場合は
C++側で確保してもらってC++側で解放してもらう仕組みでもいいかもね
というかどういうコードのためにそんなことしてるの?
726デフォルトの名無しさん:2011/09/07(水) 10:45:19.31
void test(char *str, int size)

とかにしないと
727デフォルトの名無しさん:2011/09/07(水) 11:05:10.47
C#との連携を前提にするならcharじゃなくてwchar使ったほうが楽
というかC#との併用前提ならそもそもよっぽどでなければC#だけで書いたほうがいい
そんなに速くならないどころか>>721みたいなミスをしてるようなら確実に遅くなると思う
728721:2011/09/07(水) 11:21:17.88
>>721のソースでやろうとしてるのは、C++内部である計算をした結果を文字列として返して、それをC#で表示するものなんですが、
C++の計算部分は確立されたものですので、それをDLL化して引き継ごうと思っています。
C++自体初学者なので、提示された案で色々検討してみます。
729デフォルトの名無しさん:2011/09/07(水) 11:35:22.77
C++自体初学者なのに、C++の計算部分は確立されている?
730デフォルトの名無しさん:2011/09/07(水) 11:38:36.25
他の人が作ったんでしょう
731デフォルトの名無しさん:2011/09/07(水) 11:41:25.59
XMLファイルでやり取りすればおk
732デフォルトの名無しさん:2011/09/07(水) 11:44:48.11
クソ時間のかかる計算(もしくはそんなに頻繁に使わない計算)なら
別のプロセスにしてファイルでやり取りするのが簡単安心
733デフォルトの名無しさん:2011/09/07(水) 12:04:42.59
その例のC++側のプログラムはミスが何か所もあるし
本当に昨日始めましたレベルだからなあ、
かなり無謀なことやってる気がするぞ。
734デフォルトの名無しさん:2011/09/07(水) 12:27:37.35
文字列を受け取るんじゃなく、計算値を受け取るようにした方がみんな幸せになれるんじゃないかなぁ。
735デフォルトの名無しさん:2011/09/07(水) 13:02:36.81
あと32bitと64bitが問題になりそう
736デフォルトの名無しさん:2011/09/07(水) 14:31:54.35
それこそC++/CLIの出番じゃね?スレチだけど。
737デフォルトの名無しさん:2011/09/07(水) 14:42:21.56
漠然とした質問ですが、誰かヒントください。
C#でアプリを開発中ですが、いつの間にか文字入力部分(TextBoxやsaveFileDialogなど)で日本語が
入力できなくなりました。
IME(MS-IME2002)のバーを見ると、「入力方式」「入力モード」「変換モード」「IMEパッド」「ツール」がすべて固定
され、変更できません。入力モードは「_A」と表示されます。
開発用PCのOS:WindowsXP、IDE:VisualStudio2010
別のPC(Windows7、MS-IMEはOS標準)でも同じ症状です。

フォームやコントロールのプロパティでImeModeは、すべてNoControlでした。

よろしくお願いします。
738デフォルトの名無しさん:2011/09/07(水) 17:55:40.22
できた。

C++側
__declspec(dllexport)
int __stdcall test2(char *p)
{
lstrcpy(p, "てすと");
return 0;
}

c#側
[DllImport("csharp.dll")]
extern static int test2(System.Text.StringBuilder a);

static void Main(string[] args)
{
StringBuilder buff = new StringBuilder(256);
test2(buff);
Console.WriteLine(buff);
}
739デフォルトの名無しさん:2011/09/07(水) 18:00:20.33
こええ、、、
740デフォルトの名無しさん:2011/09/07(水) 18:09:38.15
もうちょい勉強したほうがいいぞ
そういうのはバグの温床になる
741デフォルトの名無しさん:2011/09/07(水) 18:10:59.77
うごけばいいよ。
742デフォルトの名無しさん:2011/09/07(水) 18:12:58.00
C#だけだとそれでいいがw
743デフォルトの名無しさん:2011/09/07(水) 19:54:50.56
結果を受け取る側のサイズを引数に渡してそれ以上書き込まないようにするのがセオリー
バッファオーバーランするよ
744デフォルトの名無しさん:2011/09/07(水) 19:55:31.81
それは当たり前すぎて省いただけだよ
745デフォルトの名無しさん:2011/09/07(水) 20:04:09.62
バッファオーバランもそうだがcharならマーシャリングの指定しないと文字化けしない?
746デフォルトの名無しさん:2011/09/07(水) 20:05:09.77
規定値はAnsiだから
747デフォルトの名無しさん:2011/09/07(水) 20:09:56.87
そのマーシャリングというのはなんだね?
748デフォルトの名無しさん:2011/09/07(水) 20:47:03.43
欧州復興計画のことだよ
749デフォルトの名無しさん:2011/09/08(木) 10:00:30.06
msdnライブラリ見ようと思ったんだが
The specified CGI application encountered an error and the server terminated the process.
と表示され見れないんだが なぜ?
750デフォルトの名無しさん:2011/09/08(木) 10:02:16.60
具体的にどのページがだよ
751デフォルトの名無しさん:2011/09/08(木) 10:05:28.62
yahoo検索→msdn→msdnライブラリ→エラー
752デフォルトの名無しさん:2011/09/08(木) 10:06:31.83
起きない
何度か試してみろ
753デフォルトの名無しさん:2011/09/08(木) 10:17:46.03
おおおおおおお!出た!ありがとう!!!
Internet Explorer, Opera Firefoxだと出た
Lunascapeだとやっぱり出ない
Lunascapeメインで使ってるけど今日はFirefoxでいくよ
ありがとう!君は命の恩人だ!
754デフォルトの名無しさん:2011/09/08(木) 10:24:08.19
情強はSleipnirを使う
755デフォルトの名無しさん:2011/09/08(木) 10:36:25.47
俺もFirefox6でhttp://msdn.microsoft.com/以下MSDN全部見れなくなった
仕方ないからIETabで表示してるけどジェスチャ効かないとか色々不便。
756デフォルトの名無しさん:2011/09/08(木) 10:38:12.16
そこでSleipnirの登場というわけだ
757デフォルトの名無しさん:2011/09/08(木) 10:38:29.04
あーみんな見れなかったのか
俺もChromeで無理だった
758デフォルトの名無しさん:2011/09/08(木) 10:38:46.02
MSDN オンライン、TechNet オンラインに接続すると、エラーメッセージのみが表示される - MSDN オンライン チームブログ - Site Home - MSDN Blogs
http://blogs.msdn.com/b/devamm/archive/2011/09/07/10207054.aspx
759デフォルトの名無しさん:2011/09/08(木) 10:46:11.48
Cookieと一時ファイル削除で見れるようになった。ありがとう
760デフォルトの名無しさん:2011/09/08(木) 16:15:38.74
    \     毛       /
  腿  \_  |   _/
          彡彡彡
          ミミミミ クリトリス
         ミミミミ / ̄ ̄ ̄ ̄    
         ノ σ ヽ 尿道
       / / ゚ヽ ̄ ̄ ̄ ̄       どういたしまして。
大陰唇 / //\\ \ 
 ̄ ̄ ̄ ̄  ( ( 膣 ) ── 小陰唇
      \ \\// /
         `   \/  '
\         *──アナル
  \_____/\_____/
761デフォルトの名無しさん:2011/09/08(木) 20:23:55.87
幼稚くさ。
中学生か
762デフォルトの名無しさん:2011/09/08(木) 20:48:03.80
雄臭さが足りない
763デフォルトの名無しさん:2011/09/09(金) 15:04:53.31
勉強できるサイト教えて
画像認識やキーボード、マウス操作のマクロツール作りたいです
764デフォルトの名無しさん:2011/09/09(金) 15:47:20.66
IPHostEntry iph = System.Net.Dns.GetHostEntry(127.0.0.1);
すると、iph.AddressList[]にはIPv6のアドレスとIPv4のアドレスが混じって入ってるんですが、
常に[0]にIPv4のアドレスを返してくれるようにはならないよね・・・

もしくは何番がIPv4かわかれば良いんだけど、
ToString()して一個一個文字列の長さ調べるしか無い?
もしくはピリオドの数数えるか

スマートな方法教えてください
765デフォルトの名無しさん:2011/09/09(金) 16:02:18.91
AddressFamily プロパティ見れ
766デフォルトの名無しさん:2011/09/09(金) 16:13:27.76
>>765
おぉ
ありがとう
767デフォルトの名無しさん:2011/09/09(金) 16:33:24.46
試しにプログラムを起動するプログラムを作るのに成功しました。
このプログラムをアクティブウィンドウにするプログラムを作るたいです。
「HWND SetActiveWindow(HWND hWnd);」を使用するみたいですが、
エラーが出ます。↓これのどこの部分にどういうふうに入れればいいでしょうか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication15
{
class Program
{
static void Main(string[] args)
{
// 規定のエディタで Bitmap ファイルを開く (関連付け起動)
System.Diagnostics.Process.Start(@"C:\○○○\○○○\○○○.exe");

}
}
}
768デフォルトの名無しさん:2011/09/09(金) 17:04:54.95
全然わからん
769デフォルトの名無しさん:2011/09/09(金) 22:56:54.85
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr SetActiveWindow(IntPtr hWnd);

SetActiveWindowの定義欲しいなら↑みたいな感じでclass内に入れる。

あるwin32apiの定義知りたい時は 「定義が欲しいAPI pinvoke」でググるといいよ
770デフォルトの名無しさん:2011/09/09(金) 23:01:53.58
C#の用語を正確に知ってるわけじゃないが、
そういうのはC#の世界でも恐らく定義ではなく宣言と言うんじゃないのか
771デフォルトの名無しさん:2011/09/09(金) 23:08:40.58
多分その通りです。定義はおかしいですね
772デフォルトの名無しさん:2011/09/09(金) 23:09:57.86
うん、それを定義と言う人は見たことない。

extern が付いてるものは「外部定義」とはいう。
外で定義したものを、extern 宣言でインポートする。
773デフォルトの名無しさん:2011/09/10(土) 08:59:05.45
>>769
「エントリポイントに適切な静的メソッドが含まれていません」と出るのですが、
どうすれば直せるのでしょうか?
774デフォルトの名無しさん:2011/09/10(土) 09:02:50.78
タブブラウザなんかではURL渡して起動させた時、
既に起動していた場合そちら側で開いてくれますが、
どうやってやってるんでしょうか?
775デフォルトの名無しさん:2011/09/10(土) 10:15:20.47
>>773
static void Main()が無いってことでしょ
776デフォルトの名無しさん:2011/09/10(土) 10:44:15.38
>>775
↓これでもさっきと同じエラーが出ます。どこが間違っているのでしょうか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication15
{
    class Program
    {
        static void Main();
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        static extern IntPtr SetActiveWindow(IntPtr hWnd);
        static void Main(string[] args)

        {
            // 規定のエディタで Bitmap ファイルを開く (関連付け起動)
            System.Diagnostics.Process.Start(@"C:\Nexon\MapleStory\MapleStory.exe");
            
        }

        CWnd* SetActiveWindow( );
    }
}
777デフォルトの名無しさん:2011/09/10(土) 10:48:16.47
どこから突っ込んでいいのか・・・
778デフォルトの名無しさん:2011/09/10(土) 10:57:44.76
(ノд`)アチャー
779デフォルトの名無しさん:2011/09/10(土) 11:10:11.76
もっと先に覚える部分がある
クラスの宣言の仕方とか
780デフォルトの名無しさん:2011/09/10(土) 11:14:13.40
適当すぐるw
781デフォルトの名無しさん:2011/09/10(土) 11:44:50.05
C#初めたてだった頃の俺でもさすがにこれはなかったわ

>>776
まず文法について勉強したほうがいい
やりたいことのレベルとやれるレベルが違いすぎる
782776:2011/09/10(土) 12:31:48.17
ではもっと勉強してみますね。文法とかを・・・。
783デフォルトの名無しさん:2011/09/10(土) 12:35:05.22
>>774
既に起動しているプロセスにURL渡して終了
784デフォルトの名無しさん:2011/09/10(土) 16:06:55.82
DDEコマンドだっけ、あれって一般的なの?
785デフォルトの名無しさん:2011/09/11(日) 00:14:36.08
byte[]の一部をstringにする方法は?
まず、byte[]の一部切り出し方法がよくわからない
786デフォルトの名無しさん:2011/09/11(日) 00:23:46.41
Encoding.UTF8.GetString(byteArray.Skip(x).Take(y).ToArray())
787デフォルトの名無しさん:2011/09/11(日) 00:31:52.99
いちいち切り出さなくてもGetStringにindex/count渡せる
788デフォルトの名無しさん:2011/09/11(日) 00:33:11.75
thxできた
789デフォルトの名無しさん:2011/09/11(日) 00:45:01.22
引数チェックをしてArgumentException等をthrowする処理は、全てのメソッドで書くべきなのでしょうか?
それとも、クラスライブラリで外部に公開するものだけでいいのですか?
790デフォルトの名無しさん:2011/09/11(日) 01:09:34.15
>>789
詳細な例外情報が必要かどうかは、コード書いてるあなた以外に判断できないのでは?

まあ、個人的には極力そのようにしてるが、それは例外の情報を通知する必要があるからというより、
そのコードを書いている時に、ちゃんと不適切な引数が渡されることを
想定して書いていることを表示するため。

本音を言えば、ぶっちゃけ例外情報が欲しいことなんてあんまりない。
791デフォルトの名無しさん:2011/09/11(日) 01:36:53.98
>>789
引数チェックの類の例外はテスト時に全部取るはずなので、
それが社内向けのメソッドだったら適当でOK。

社外向けでも、まあ、ArgumentException出てれば何のことか割と分かる気はする。

CodeContracts がもうちょっと使い勝手良ければねぇ
(静的解析ツールも Express 版でも標準搭載とか)。
そもそも引数チェックして例外投げるとか不要になるのに。
792デフォルトの名無しさん:2011/09/11(日) 01:45:30.92
例外情報がどうとかより、例外を投げるべきかどうかって話じゃないのか?

まあ設計次第なんで必要なら例外発生させろとしか言えないわけだが
793デフォルトの名無しさん:2011/09/11(日) 01:53:26.87
>>792
引数の値が不適切なのに例外を投げないのはただのバグでしょ。
それは論外。
794デフォルトの名無しさん:2011/09/11(日) 02:11:18.86
引数の値が不正なのがバグでしょう。おれは余分なチェックなんかしないよ。
795デフォルトの名無しさん:2011/09/11(日) 02:16:17.35
不適切の定義による
なるべく例外出さないで、不適切な値なら無視して処理を続ける設計とか
不適切な値なら正常でない値(-1とかNULLとか)を返す設計ってのある

まあ処理が続行されているのでそれは適切な引数だっていうなら
その場合は不適切な引数はないって話になるんだろうが
796デフォルトの名無しさん:2011/09/11(日) 02:35:53.23
雨が降ると困るので屋根のうえに屋根を作る設計のように思える。
797デフォルトの名無しさん:2011/09/11(日) 02:39:48.14
メソッドへの引数にrefかoutをつけると、参照渡しできるようですが、
この参照をメソッドが終了した後も、フィールド変数で覚えておくことはできますか?
以下はコンパイルできませんが、こんな感じで…

class Hoge {
  private ref int a; // コンパイルエラー
  public Hoge(ref int a) { this.a = a; }
  public void Foo() { a = 0; }
}

int a = 1;
Hoge h = new Hoge(ref a);
// a == 1
h.Foo();
// a == 0
798デフォルトの名無しさん:2011/09/11(日) 02:42:41.25
とあるクラスで共通のint変数を参照したりしたいの?
799デフォルトの名無しさん:2011/09/11(日) 02:54:16.15
>>797
無理
やりたければ参照型を使え
800デフォルトの名無しさん:2011/09/11(日) 04:13:11.34
public Vector3D[] Pos = new Vector3D[3];
実行結果↓
Pos[0]=null
Pos[1]=null
Pos[2]=null

newしたVector3Dが入ってない
801デフォルトの名無しさん:2011/09/11(日) 04:14:13.70
3個ちゃんと確保されてるじゃん
いろいろ勘違いしてる
802デフォルトの名無しさん:2011/09/11(日) 04:26:43.75
WPFかよ
WinFormとWPFとSilverlightで微妙に差があるので
ターゲットを書いてくれ

で、こう書くといい

public Vector3D[] Pos = new Vector3D[] { new Vector3D(), new Vector3D(), new Vector3D() };
803デフォルトの名無しさん:2011/09/11(日) 08:15:38.61
WPFのVector3Dなら値型だから、また違うVector3Dだな
804デフォルトの名無しさん:2011/09/11(日) 08:32:47.25
XNAはVector3でこっちもstructだし
というかstructじゃないの?
805デフォルトの名無しさん:2011/09/11(日) 11:51:44.15
>>800
C++からくるとやっちゃうよね。
javaから入ったらこれが普通とわかるけど。
806デフォルトの名無しさん:2011/09/11(日) 13:33:28.47
コンストラクタがまだ走ってないってことか...
807デフォルトの名無しさん:2011/09/11(日) 15:44:36.01
newしてね〜だろ
808デフォルトの名無しさん:2011/09/11(日) 15:57:17.28
値型でもないかぎり、配列はほんとに入れ物だけなので
それぞれnewが必要
809デフォルトの名無しさん:2011/09/11(日) 22:20:25.12
フォームのGUIコントロールそれぞれについて具体的に解りやすく網羅されてる書籍かurl知らない?
ラベルとボタンとテキストボックスから、そろそろ脱初心者してみたい
810デフォルトの名無しさん:2011/09/11(日) 22:24:56.18
dobon.net
811デフォルトの名無しさん:2011/09/11(日) 22:47:51.80
>>809
本は和書では恐らくないね。

今は亡きWindows Developer マガジンの連載でそういうのがあったけど、
時代的に.NET 1.xのものしかフォローしてない。
812デフォルトの名無しさん:2011/09/11(日) 23:17:56.33
値型が使える言語で3次元ベクトルを参照型にしてるライブラリなんて見たことないわ
813デフォルトの名無しさん:2011/09/11(日) 23:26:42.85
ポジションとか角度とか参照型にすると楽しいよ。
変更が即反映されるから、関節扱ったりするときは結構面白い。
まー、C#だったら値型をラップするクラス書けばいいんだけどね。
814デフォルトの名無しさん:2011/09/11(日) 23:29:55.96
そんなの参照型でベクトルや点を表していたとしても
防御的コピーするのが普通
815デフォルトの名無しさん:2011/09/11(日) 23:36:06.06
クラスの外にフィールドで持ってるVector3D(参照型)の参照をそのまま晒すとか
パブリックフィールドと一緒だぞ
後で実装変えられなくなる
816813:2011/09/11(日) 23:45:45.67
>>815
俺は個人開発だから視点がおかしいのかもしれんけど、プロパティ書いたらあんま変わらんきがする。
817デフォルトの名無しさん:2011/09/11(日) 23:52:15.23
設定時と取得時にコピーするのが重要なんだよ
コピーして返すなら、実装変えてもその瞬間だけ辻褄合わせすれば済むことだが
直接参照を漏らしてしまうと常に内部の細かい状態が晒されてしまう
818デフォルトの名無しさん:2011/09/11(日) 23:55:31.85
Javaでの失敗を思い出せ
819813:2011/09/11(日) 23:57:51.39
>>817
なるほどね。うーむ。
大きなオブジェクトを参照でだしちゃうとたしかに色々マズそうだ。
820デフォルトの名無しさん:2011/09/12(月) 00:04:24.60
むしろ小さい値オブジェクトの方が問題だろ
コピーしなくても、その外に出してるオブジェクトのクラスを弄ったり
多態使ったりすることで実装を変更することは可能だけど
ベクトルとか色とかいう普遍的なものは基本的に実装を変えないからな
821813:2011/09/12(月) 01:25:26.65
>>820
なるほど、次のプロジェクトやるときにはそういうことも考慮してみたいと思います。
822デフォルトの名無しさん:2011/09/13(火) 17:43:57.04
823デフォルトの名無しさん:2011/09/13(火) 17:53:40.95
>>817
んなことあるかよ。
コピーやってりゃそのまま実行速度が犠牲になる。
まともなコンパイラなら、実行速度を犠牲にしないために、
レジスタ渡しにするためには、関数引数に記述できる型と個数をちゃーんと明示してることを知ってるのかお前
悠長なプログラムのんべんたらりと組んで戯言ほざくな。

824デフォルトの名無しさん:2011/09/13(火) 19:40:59.34
はいはい100倍100倍
825デフォルトの名無しさん:2011/09/13(火) 20:12:13.07
難しくてよくわからんけど、APIとかラッパーの話なの?
それなら参照で外に出すのはイケテナイと思うが
それ以外ならどっちでもいいような気がする
826デフォルトの名無しさん:2011/09/13(火) 20:52:03.32
そりゃパブリックフィールドにも言えることだ
実装をさらけ出す(他のクラスが実装の詳細に依存してしまう)という点では特に違いはない
広く使われるわけじゃないならどうでもいいというのは必ずしも間違いではないが
パブリックフィールドを必死に嫌っておいて値オブジェクトの参照漏らすのは気にしないのは変
827デフォルトの名無しさん:2011/09/13(火) 21:00:30.81
いや俺はヒップホッパー

じゃなくて、例えばWindows Formでいったら、
Form.Location.X += 10;

みたいなことはできないわけだけれども、こういうのを許容していいかどうかって話でしょ。

個人的にはケースバイケース。
絶対許容できないのは、プロパティーが単なるフィールドの設定/取得以外の
処理を含む場合。
828デフォルトの名無しさん:2011/09/13(火) 21:05:44.58
>>827
将来的に>プロパティーが単なるフィールドの設定/取得以外の処理
を含むかもしれないからパブリックフィールドじゃなくてプロパティにするんだろ?
実装変えないと断言できるならやっぱりパブリックフィールドと同じでしょ
829825:2011/09/13(火) 22:04:25.11
ごめん、やっぱ何にこだわってるのかわからん
将来的に実装変えることとパブリックフィールドかプロパティ
どちらを選択するかは緊密な関係にあるのか?
830デフォルトの名無しさん:2011/09/13(火) 22:34:59.07
>>828
将来的ってのだけが問題なら、その将来にプロバティーに変更したら良いだけでは?
いや確かにプロバティーにすれば、セッターをプライベートに出来たりして嬉しいと言えば嬉しいが
831デフォルトの名無しさん:2011/09/13(火) 22:43:59.35
>>827のタイプは後になってコピーして返すようには変更できないよ
既存のコードが動かなくなる
Xが変更されたときになんか処理を入れるのも無理だし
832デフォルトの名無しさん:2011/09/13(火) 22:52:32.69
buildのKeynoteは中継ないの?
833初心者 ◆jPpg5.obl6 :2011/09/13(火) 22:53:35.62
CでUSBポートを遮断するプログラムを作りたいのですが、どう書けばいいでしょうか?

834デフォルトの名無しさん:2011/09/13(火) 23:00:46.43
ワタシ日本語初心者アルよ、まで読んだ。
835デフォルトの名無しさん:2011/09/13(火) 23:55:57.01
C#スレ的に考えるなら
CでUSBポートを遮断するDLLを作成して、C#からDllImportすればいいよ
836デフォルトの名無しさん:2011/09/14(水) 00:02:40.80
SetupDiAPIで無効にすれば
837デフォルトの名無しさん:2011/09/14(水) 01:46:21.90
C使わなくても、爪楊枝を挿して、折る!!。もう誰にもUSBポートは使わせない!
838初心者 ◆jPpg5.obl6 :2011/09/14(水) 01:48:22.30
>835
>836
やってみます。

>837
そうじゃねーよwww
839デフォルトの名無しさん:2011/09/14(水) 01:55:10.72
WPFでのSystem.Windows.WindowクラスのTopmostプロパティについて教えて下さい。
Topmostにチェックを入れると最前面になりますが、Topmost同士、または.Netではない
最前面ウィンドウに対して、それらより前面に表示するにはどのようにすればよいのでしょ
うか。
840デフォルトの名無しさん:2011/09/14(水) 05:55:26.08
using System.Printingってどうなったんでしょうか?
841デフォルトの名無しさん:2011/09/14(水) 07:14:13.49
現在TableLayoutPanel→GroupBox→TableLayoutPanel→コントロール
ってかんじにしてます
見た目は綺麗なんですがオブジェクトが多いのが気になる
すっきりさせるならGroupBoxやコントロールの位置を直接指定する方がいいのでしょうか
C#でレイアウトをする上手な方法があれば教えていただきたいです


あとForm.Shownでサーバーからテキストをうけとるようにしているんですが
レスポンス待ちの間LabelやGroupBoxのテキスト部分が真っ白になります
対策はありますでしょうか
842デフォルトの名無しさん:2011/09/14(水) 10:31:10.62
DockとAnchorで妥協する
TableLayoutPanelが好きならWPFに行くことをお勧めする

BackgroundWorkerでも使えば
843デフォルトの名無しさん:2011/09/14(水) 10:46:37.93
>>839
最前面の最前面があったとしたら、
最前面の最前面ウィンドウを他の最前面の最前面ウィンドウより前面に表示するには
ということになって果てしなく不毛

>>840
質問の意図が分からない
844デフォルトの名無しさん:2011/09/14(水) 19:18:18.74
>835
今思えばCでUSBポートを遮断するDLLを作成するスキルを持っていませんでした。
845デフォルトの名無しさん:2011/09/14(水) 22:44:26.84
C#でORMはみなさん何を使っていますか?
DI&AOPも含めてSeasar系がいいかな、と思ったのですが、
更新もあまりされてないようで、死にプロダクトなのかなぁと。
Javaと違ってあまりそういう需要がないのでしょうか。
そのままゴリゴリ書くのも面倒だし管理もし辛いので避けたいのですが・・・。
何かおすすめだったり、主流っぽいものとかあります?
846デフォルトの名無しさん:2011/09/14(水) 22:46:24.08
マイクロソフト謹製のやつがなかったっけ?
847デフォルトの名無しさん:2011/09/14(水) 22:48:36.90
EntityFrameworkとかあるべや
需要が無いというのもある意味正しい
848デフォルトの名無しさん:2011/09/14(水) 22:51:17.03
MEFもそうなんですけど、サンプルがあまりに少ないかなぁと。
日本語情報はほとんどなさそうですし。
EntityFrameworkはSQL Serverべったりじゃなかったでしたっけ。
SQL Server以外でも使いたいのです、って完全に後付情報でしたね、すみません。
DB周りがあまりに熟れてないように見えたので、みなさんがどうやってるのか気になりました。
849デフォルトの名無しさん:2011/09/14(水) 22:53:06.65
O/Rマッパーなんて使ったことないな

ASP.NET MVC には実装されてるんだっけ?
そんなの意識するくらいなら Rails とか Django で開発した方が良くね?
850デフォルトの名無しさん:2011/09/14(水) 22:54:45.25
まあ仕事の話だけど
.NETだと必然的にIISになって必然的にSQLServerになるからべったりでも誰も困らないんよ

結局の所どこのプロダクトだって、成長しているところは商用利用と少なからず繋がりがある
851デフォルトの名無しさん:2011/09/14(水) 22:59:35.84
>>841
>あとForm.Shownでサーバーからテキストをうけとるようにしているんですが
>レスポンス待ちの間LabelやGroupBoxのテキスト部分が真っ白になります

メインスレッドで通信をしてはいけない。いいか、絶対にだぞ。
BackgroundWorkerでも使えば
852デフォルトの名無しさん:2011/09/14(水) 23:14:30.44
ASP.NET MVC ってStrutsみたいなもの?
853デフォルトの名無しさん:2011/09/14(水) 23:17:12.79
そこでStrutsを挙げるのがマイノリティ
854841:2011/09/14(水) 23:17:24.00
回答ありがとうございました。
メインスレッドで通信してはいけないとのことですが
レスポンスが条件に合うまでTimerで通信しつづけるプログラムを書いたのですが
こういうのも別スレッドにうつしたほうが良さそうですね・・・

C#とはあまり関係なくなりますがクライアントからリモートサーバーのMySQLを使用する場合
・サーバーにアプリケーションをおいてそれを介する
・クライアントから直接発行する
クライアントアプリケーションを配布する場合、この両者でライセンスはどうなるのでしょうか。

また、サーバーアプリケーションにどのような通信方法が良いでしょうか。
http以外の通信は使ったことないので上記の通りphpで作っている状態です。

C#からずれてますがお答えいただけるとありがたいです。
855デフォルトの名無しさん:2011/09/14(水) 23:31:49.94
>>849
Ruby?Python?何言ってんだお前?と言われる世界もあるわけで・・・。
理想型はその手軽さを取り入れたいなとは感じています。

DB周りも楽勝だぜ!とか言われて見てみるとVBチックに一メソッドにもりもり書いて、
SQLもAppendAppendでGetString(0)だぜ!とか、もうゲンナリ・・・。

>>850
.NETだけどOracle一択です。

ASP.NET MVCは今主流のいわゆるWeb MVCかな、って感じですかね。
856デフォルトの名無しさん:2011/09/14(水) 23:46:27.94
HTMLの文字列をファイルに保存して、同じ内容のHTMLの文字列をサイトから取得して
比較しても同じものと判断してくれません。
857デフォルトの名無しさん:2011/09/14(水) 23:47:31.13
嵌っちゃってる所はOracleから二度と抜け出せないよなw
858デフォルトの名無しさん:2011/09/14(水) 23:50:43.94
>>856
文字コードが違うんじゃないの?
というかどういう比較コードなのかもさっぱりわからんし
859デフォルトの名無しさん:2011/09/15(木) 00:12:46.15
WPFですが、C#の話だと思いますのでこちらで質問します。
Win32 API である GetPwrCapabilities を P/Invoke して
ビルドすると、環境によって StackOverflowException が投げられます。

<ソリューション>
・WPF, C#, .Net3.5
・AnyCPU

<ビルドマシン環境>
・環境1: Win7 HP 32bit
・環境2: Win7 HP 64bit

環境1にてDebugビルド → 3/5程度の確率で StackOverflowException
環境1にてReleaseビルド → 問題なし
環境2にてDebugビルド → 問題なし
環境2にてReleaseビルド → 問題なし

GetPwrCapabilities() を実行する箇所を
try-catch で囲っても例外を catch できず VisualStudio の
例外表示が表示されます。

また、上記に書いてあるように、環境1のDebugビルドであれば
100% 例外が発生するわけではありません。

現象が再現するものをアップロードしましたので
見ていただけないでしょうか?よろしくお願いします。

ttp://www.dotup.org/uploda/www.dotup.org2022578.zip.html
PASS: sage
860859:2011/09/15(木) 00:13:51.98
すみません、開発環境は VisualStudio2010 です。
861デフォルトの名無しさん:2011/09/15(木) 00:31:46.79
>>843
.net Framework2.0でサポートしてるものらしいのですが
コンパイルしようとするとSystem.Printingがないよっておこられてしまいます。
VS2005なので2.0はサポートしてると思うのですが違うのでしょうか?
862デフォルトの名無しさん:2011/09/15(木) 00:39:08.53
サポートしてない
System.PrintingはWPFの一部なので.NET3.0から
MSDNにはなぜかWPF関係のページが.NET2.0のにもあるけど
863デフォルトの名無しさん:2011/09/15(木) 01:02:15.55
>>859
よくわからんけどスタックサイズの問題では?
64bit Debugだとたまたま起きてないだけだったりとか
GetPwrCapabilitiesで使う構造体も割りと大きめだし
864デフォルトの名無しさん:2011/09/15(木) 01:02:45.11
865デフォルトの名無しさん:2011/09/15(木) 02:02:50.72
アプリケーションで使うデータを DataContractSerializer を使ってシリアライズしようと思っています。

・ファイルを開いてみるまでどのバージョン用のデータファイルかわからない。
・バージョンアップにともなって、項目が追加されたり削除されたりする場合がある。

という条件に対応した実装例を紹介しているページがあれば教えてください。
866デフォルトの名無しさん:2011/09/15(木) 03:48:19.25
チャートコントロールについて詳しく解説しているサイトってどこかにあるでしょうか
株価チャート(Cnadlestick)を作りたいのですが中々いい情報が得られません
海外のサイトでもOKなのでいい所あったら教えてください
867デフォルトの名無しさん:2011/09/15(木) 06:12:33.53
>>862
ぎゃああああ
マジすか・・・
別の方法考えないと・・・

ありがとうございました
868デフォルトの名無しさん:2011/09/15(木) 06:56:52.41
>>850
EntityFrameworkはSQLServerべったりではないよ。
べったりなのはLINQ to SQLで、
EFはべったりじゃない中間層を設けることでうんたらかんたら、というのも売り文句ですから。
.NETだと今のところEFが気合入れて開発続いているので、他の選択肢はないなあ。
869デフォルトの名無しさん:2011/09/15(木) 12:09:29.04
>>866
.NET3.5時代のMSChartControlでググったほうが出てくるかもしれん
標準ライブラリでは無かったけど、機能は同じだし、その頃は親切な解説サイトが多かった
俺が昔お世話になった、背景が青のサイトがあったんだが・・・閉鎖したのかググっても出て来なかった

http://xptn.dtiblog.com/blog-entry-95.html
870デフォルトの名無しさん:2011/09/15(木) 14:09:46.91
>>869
ありがとうございます
色々探してもなかなかいいのが見つからなかったのでとりあえず
ChartSamplesのコードとリファレンスを照らし合わせて勉強してます
871デフォルトの名無しさん:2011/09/15(木) 16:24:00.53
>>869
http://www.kanazawa-net.ne.jp/~pmansato/index.html
背景が青のサイトは多分ここ。いつの間にかイメチェンしたみたいだ
872デフォルトの名無しさん:2011/09/15(木) 16:28:48.14
ソニー、PlayStation Suite SDKを11月提供。言語はC#、AndroidとVitaで動く仮想マシン
ttp://japanese.engadget.com/2011/09/14/playstation-suite-sdk-11-c-android-vita/
873デフォルトの名無しさん:2011/09/15(木) 16:37:43.72
お?と思ったけど

>ソニーの審査とライセンス契約が必要

この一文でもはやどうでもいい
ゴミ箱にポイだ
874デフォルトの名無しさん:2011/09/15(木) 16:56:56.57
VitaがVistaの誤植に見えてつらい
875デフォルトの名無しさん:2011/09/15(木) 17:30:17.89
赤間本に代わるいい勉強用の本ってあるかな?
昔「.NETエンタープライズWebアプリケーション開発技術大全」を使ってWebサイトの作り方を学んだんだけど、またWebサイトを作る仕事になったので復習したいんだよね。

「開発大全」はもう7年くらい前の本みたいだから、できれば新しい本で復習したいんだけど、他にいいのってある?
876デフォルトの名無しさん:2011/09/15(木) 17:42:05.20
ASP.NET MVCがいいよ
877デフォルトの名無しさん:2011/09/15(木) 18:49:53.56
C# .NET3.5で書いています。

[HKLM\SOFTWARE\HOGE]の下に
[ITEM1]
[ITEM2]
[ITEM3]
があるとします。実際は30個あります。

各ITEMは同じレジストリ値の項目を持っています。
例えば、それぞれ
IsActive (REG_DWORD)
を持っており、データは個別に設定されています。

この時に、
foreach (RegistryKey key in RegKyes) {
int value = (int)key.getValue("IsActive");

// value を使った処理
}

といったことが出来るとコードがすっきりするのですが
HKLM と @"SOFTWARE\HOGE" を指定するだけで
上記の RegKeys を取得する方法はありますでしょうか?
878877:2011/09/15(木) 18:54:25.66
後出しすみません。
ITEM1〜30の存在は可変で、
その名前も既知のものだけではない
可能性があります。

このため、ITEMの名前をListに持っていて〜
というのは難しいです。
879デフォルトの名無しさん:2011/09/15(木) 18:56:58.77
LINQでGetSubKeyNamesをOpenSubKeyに渡せばできそうだが
Disposeの問題があるから勧めない

そもそもお前さんDisposeしてなさそうだけど
880877:2011/09/15(木) 19:00:32.80
>>879
情報としていただきます。
あがとうございます。

最後の文ですが、.Close()では不十分ですか?
881デフォルトの名無しさん:2011/09/15(木) 19:13:26.42
メモ
RegistryKey への参照をすべて解放してしまう前に、必ず Dispose を呼び出してください。
882877:2011/09/15(木) 19:29:32.14
>>881
それは.Net4のみの話だと思います。
883デフォルトの名無しさん:2011/09/15(木) 19:48:13.46
お前がそう思うんならそうなんだろう、お前ん中ではな
884877:2011/09/15(木) 21:39:58.07
>>883
ご教授いただけるのは助かりますが、
MSDNを見る限り.Net3.5までは自動でDisposeは呼ばれます。
885デフォルトの名無しさん:2011/09/15(木) 22:23:39.82
3.5ではCloseとIDisposable.Disposeは等価と書いてあるんで、Closeだけでも可
Close=DisposeってのはRegistryKeyに限らないお約束
ただ例外とか考えると、通常はusingを付ける方が望ましい

自動でDispose云々は論外
デストラクタからDisposeを呼ぶのも標準的な実装だけど、これは「最悪アプリケーションを落とせばリソースは解放される」って程度の意味しかない
だから使い終わったら明示的にDisposeしないとダメ

4.0でDisposeが追加された理由は知らんが、MSDNを見るとCloseとは動作が違うように見える
886デフォルトの名無しさん:2011/09/15(木) 22:34:54.72
static void Main(string[] args)
{
string html = GetHTML();
string html2 = GetHTML();
if (html == html2) Console.WriteLine("等しい");
else Console.WriteLine("等しくない");

Console.ReadLine();

}

static string GetHTML()
{

WebClient wc = new WebClient();

Stream st = wc.OpenRead("http://www.google.co.jp/");

StreamReader sr = new StreamReader(st,Encoding.GetEncoding("Shift_JIS"));
string html = sr.ReadToEnd();

sr.Close();

st.Close();

return html;

}
---------------------------------------------------------------------

このメソッドから取得したHTMLのソースを二つの変数に代入して比較しても
等しくないとでるのですが。
887デフォルトの名無しさん:2011/09/15(木) 22:42:32.21
そりゃ等しくないんだろ。
比較ツールがあるから、それぞれを比較してみればいい(手動ではやるなよ)
で、まあ見てみたけど
window.google={kEI:"CgByTpeMKajkmAWzlLj2Dg",
と、もう一箇所がリクエスト毎に違う値になるから、絶対等しくならないんだろうね。
888デフォルトの名無しさん:2011/09/15(木) 22:42:54.05
htmlとhtml2をファイルに保存してwinmergeしてみよう
889デフォルトの名無しさん:2011/09/15(木) 23:08:30.30
Visual Studio 2010 C#で初めて印刷にチャレンジしました。
.NET Frameworkは3.5で作ってます。
2010からはクリスタルレポートが別ということでttp://www.businessobjects.com/jump/xi/crvs2010/us2_default.aspから
SAP Crystal Reports, version for Visual Studio 2010 - Standardをインストールしました。
四苦八苦しながらようやく簡単な印刷が完成したんです。
データはWindows Server 2008 R2 の SQL Server 2008 R2見にいってます。

これを別マシンで動かそうとしてるんですがうまくいきません。
.NET Framework 3.5をインストールして、上のページからSAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)
をインストールし、開発マシンからEXEをコピーして動かしてますが、なぜかデータベースログオン画面が出るんです。
・サーバー名(設定した表示あり)
・データベース(設定した表示がなく空白!!! しかもグレーで入力不可)
・ログインID(設定した表示あり)
・パスワード(設定した表示あり)

ちゃんとプログラムで、myReport.SetDatabaseLogon("User","Pass","ServerName","DatabaseName"); と入れてます。
これ入れないと同じように開発マシンでもデータベースログオン画面が出てました。

開発マシンだとログオン画面なんて出ずに動くのに、そうでないマシンだとログオン画面が出て、しかもデータベース名は
入力すら出来ないのでSQL Serverにログオンできなくて当然レポート出ません。

原因分かる人いるでしょうか?
890デフォルトの名無しさん:2011/09/16(金) 08:10:38.55
帳票ごときにツール使うなよJK
891デフォルトの名無しさん:2011/09/16(金) 09:14:05.41
えっw
892デフォルトの名無しさん:2011/09/16(金) 10:12:16.85
俺はActiveReport派だな
めんどくさい帳票サクサク作れるし

自分で線書いてとか時間的コストがかかりすぎるのでいやだ。
893デフォルトの名無しさん:2011/09/16(金) 12:08:51.11
>>876

「ASP.NET MVC実践プログラミング―.NET Frameworkによる標準Web開発技法」でいいのかな?
894889:2011/09/16(金) 12:50:07.56
回答ないのでとりあえず終了にします。
895デフォルトの名無しさん:2011/09/16(金) 12:56:24.98
終了ってどっからきたんだよw
896デフォルトの名無しさん:2011/09/16(金) 16:22:30.50
既存のコントロールクラスを継承して機能を付加するってのがやりたいんですけど、その機能を付加したコントロールクラスを
どうやったらツールボックス内に表示させることができるんですか?
897デフォルトの名無しさん:2011/09/16(金) 16:24:35.62
それ俺も知りたい
898デフォルトの名無しさん:2011/09/16(金) 18:05:46.93
>>896
ビルドしたら表示されない?

ところで
ServicePointManager.Expect100Continue = false;を入れても (417) Expectation Failedが帰ってくるんだけどなぜだ
417って100Continueがtrueだってことだよな?
899デフォルトの名無しさん:2011/09/16(金) 20:27:18.23
相手サーバが常にこちらの想定通りに動くとは限らない
まあとりあえず実際に送ってるリクエストの中身全部見直してみて
異常ないようならサーバ側に問い合わせんと解らんのじゃないかな
900896:2011/09/16(金) 21:17:43.00
>>898
返信ありがとうございます。
今自分のやり方としてわかるのは、派生クラス作ってForm1クラスでインスタンス化してやってます
デザイナーで左のツールボックスに追加されるようにはならないんでしょうか?
901デフォルトの名無しさん:2011/09/16(金) 21:21:02.02
>>900
このへんが参考になりそう
http://okwave.jp/qa/q5625919.html
902デフォルトの名無しさん:2011/09/16(金) 22:20:32.26
そんなことしないといけないなら追加できなくていいやw
903デフォルトの名無しさん:2011/09/17(土) 01:04:44.24
>>902
新規クラスに例えば

class MyTextBox : System.Windows.Forms.TextBox { }

って書いて、ビルドしたらツールボックスの一番上に出てこない?

そのクラスが同じプロジェクトじゃなくてdllなら、ツールボック上で右クリック->アイテムの選択でそのdllを選べば出てくる。
904デフォルトの名無しさん:2011/09/17(土) 10:09:11.13
>843
用事があり確認が遅れました。
最前面の保証は中々難しいものなのですね。
IMEの変換窓のようにできるのではないかと考えていたのですが、考えなおしてみます。
有難うございました。
905デフォルトの名無しさん:2011/09/17(土) 19:44:17.57
webclientでfc2ブログのソースを取得したいのですが、
・DownloadFileをすると文字化けでどのキャラクターセットにしてもダメ
・DownloadDataやStringでも取得できない(というか文字化けのせいか最初の2文字くらいしか認識できない)

これはどうすればいいのでしょうか?
WebBrowserを使ってソースを取得する方法もためしたのですが、フレーム等があるとCompleteイベントが複数回(不規則)発生するためどのタイミングでソースを取得すればいいのかわからないので出来れば避けたいです。
906デフォルトの名無しさん:2011/09/17(土) 19:50:52.56
ブラウザで開いてエンコーディング確認してみろよ
907デフォルトの名無しさん:2011/09/17(土) 19:52:15.13
>>905
>・DownloadFileをすると文字化けでどのキャラクターセットにしてもダメ
>・DownloadDataやStringでも取得できない(というか文字化けのせいか
>最初の2文字くらいしか認識できない)
適当にセットすればいいものじゃねえ
htmlの先頭あたりに文字セットを書いてあるだろ

>WebBrowserを使ってソースを取得する方法もためしたのですが、
>フレーム等があるとCompleteイベントが複数回(不規則)発生する
>ためどのタイミングでソースを取得すればいいのかわからないので出来れば避けたいです。
CompleteってDocumentCompletedでいいんだよね?
そりゃホームページを構成するhtmlやjsなど一つ一つがDocument扱いになるので
構成ドキュメント数回発生する
ページの取得とレンダリングが完了したタイミングを知りたい場合は
Navigatedイベント

ちなみにWinFormだよね?
908デフォルトの名無しさん:2011/09/17(土) 20:34:46.68
new WebClient() { Encoding = Encoding.UTF8 }.DownloadString(url)
で普通に取れたね。
909デフォルトの名無しさん:2011/09/17(土) 20:51:35.09
>>906-907
ブログの最初の方に
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
とあったのでeuc-jpにしてみましたけどダメでした
-----
System.Net.WebClient wc = new System.Net.WebClient();
byte[] b = wc.DownloadData("http://zipdeyaruo.blog42.fc2.com/");
System.Text.Encoding Enc = Encoding.GetEncoding("euc-jp");
string str = Enc.GetString(b);
textBox1.Text = str;
MessageBox.Show("ok");
-----
さっき試しにNavigatedイベントでやってみたのですが、やはり複数回発生してしまいます


WindowsFormsApplicationです
910デフォルトの名無しさん:2011/09/17(土) 21:24:34.08
>>2のサイト使ってコード晒してくれ
911デフォルトの名無しさん:2011/09/17(土) 21:39:31.23
>>908
自分の環境ではとれませんでした・・・
もしかして環境が悪いんですかね?
winXP VS2010なんですけど・・・

>>910
http://ideone.com/yORMb
これで大丈夫ですか?
912デフォルトの名無しさん:2011/09/17(土) 21:56:25.12
ウイルス対策ソフトによってはhttp通信も監視してて
変なサイトは遮断するからなあ・・・

そういうのを食らってない?

ちなみにwin7 64bit Enter + VC# 2010 express で問題なく取れたよ
913デフォルトの名無しさん:2011/09/17(土) 22:00:26.55
あ、fc2ならどれも一緒と思ってたけどブログによってエンコーディング違うのか。
908のはやらおん(UTF-8だった)で試して大丈夫だったのだけど。
で、確かにWebClientだと取れないっぽい?
WebRequestでやったら取れたので、分からないけど何かWebClientが悪さしてるのかも。

var req = WebRequest.Create("http://zipdeyaruo.blog42.fc2.com/");
var str = new StreamReader(req.GetResponse().GetResponseStream(), Encoding.GetEncoding("euc-jp")).ReadToEnd();
914デフォルトの名無しさん:2011/09/17(土) 22:01:42.89
>>912
もろ喰らってました・・・
セキュリティソフト切ったらばっちり取れました

お騒がせしてすいませんでした
ありがとうございます
915デフォルトの名無しさん:2011/09/17(土) 22:02:30.67
お、何回かアクセスしてたら再現したっぽいかも?
http://www.dotup.org/uploda/www.dotup.org2033225.png

fc2側のバグかアクセスコントロールかな?
916デフォルトの名無しさん:2011/09/17(土) 23:12:15.74
しかしこれはなんなんだろうな・・・
ウイルス対策ソフトに例外として教えると正常にデータを取れるが
例外指定しない場合は一応それなりのデータの長さがあるんだが
文字化けしまくってて元のデータの形してない・・・
917デフォルトの名無しさん:2011/09/17(土) 23:13:38.72
あとこういうのもあるらしい

[.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました
http://bluewatersoft.cocolog-nifty.com/blog/2011/08/net-webclient-e.html
918デフォルトの名無しさん:2011/09/18(日) 13:01:10.91
NTidyを使ってHTMLを解析してbody部だけ取り出そうとしています。



TidyDocument doc = new TidyDocument();
doc.SetCharEncoding("shiftjis");
status = doc.LoadFile(fname);

status = doc.CleanAndRepair();

ここまではわかるのですが、この後のbody部のタグを含めた文字の取得方法
がわかりません。
919デフォルトの名無しさん:2011/09/18(日) 18:02:45.58
NTidyみたいな馬鹿なライブラリ使うのを止める
920デフォルトの名無しさん:2011/09/18(日) 20:19:03.78
多分なぜバカなライブラリなのか説明してあげないとダメだと思う
921デフォルトの名無しさん:2011/09/18(日) 20:34:24.96
>>919->>920

じゃあよいライブラリとは?
922デフォルトの名無しさん:2011/09/18(日) 20:45:28.75
TidyNodeとかいう汎用性の無いクラスで返すから
HtmlAgilityPackも以下同文

一時期独自規格路線でつっ走ったウンコソニーみたいなもんだ
923デフォルトの名無しさん:2011/09/18(日) 21:16:03.37
いろんな所にやさしいものを使わないとね
924デフォルトの名無しさん:2011/09/18(日) 21:23:20.90
なんだかんだでスクレイピングは普通に正規表現を使うのが一番安定してていい
925デフォルトの名無しさん:2011/09/18(日) 21:52:55.57
正規表現は、ないな。少し複雑なことをやろうとするだけで破綻する。
926デフォルトの名無しさん:2011/09/18(日) 21:57:43.63
普通に考えてWebBrowserだろ
927デフォルトの名無しさん:2011/09/18(日) 22:14:29.97
>>925
俺は問題なくできてんだけど、どんなやり方したら破綻するの?

HAPとかは行儀の悪いHtmlで解析に失敗するから使えないんだよな
WebBrowserは使うこともあるよ。でも遅い
928デフォルトの名無しさん:2011/09/18(日) 23:21:33.32
と、いうコトを学ぶにはどういう風に勉強すればいいのでしょうかね?
929デフォルトの名無しさん:2011/09/18(日) 23:23:09.53
トライアンドエラー
しつつもたまにこのスレで聞いたりと

自分だけで篭ってぐぐってても探しきれない場合もあるし
かといって他人に聞くだけだと半分くらい身に付けばいいくらいだろうし
930デフォルトの名無しさん:2011/09/18(日) 23:27:21.59
苦肉の策だな>>929だけに
931デフォルトの名無しさん:2011/09/18(日) 23:28:26.68
でもさ
そうやって積み重ねた物をノウハウっていうんだし
実際プログラムにおいてもライブラリの癖があったりするし
言語だって下手に書くと遅かったりするしでね・・・
932デフォルトの名無しさん:2011/09/19(月) 01:01:39.75
バッドノウハウじゃないの
制御なりデータマイニングなり、他に積み重ねる知識なんていくらでもあるだろ
93374:2011/09/19(月) 02:32:14.48
SGMLReaderでXMLに変換してLINQなりXPathなりで処理すればいいんじゃないの
934デフォルトの名無しさん:2011/09/19(月) 16:29:43.25
toostrip上のtoolstripbuttonの大きさを

toolstripbutton1: 30%
toolstripbutton2: 70%
パーセントで指定したいのだがどうすればおk?
935デフォルトの名無しさん:2011/09/19(月) 18:14:29.69

http://www.itmedia.co.jp/promobile/articles/1109/15/news065.html

ソニー・コンピュータエンタテインメ ント(SCE)は11月から、Android端末で プレイステーション用ゲームをプレイで きる「PlayStation Suite」のSDKを開発者 向けに提供する。

PlayStation Suite SDKで開発したゲーム は、「PlayStation Certified」対応のデバ イス、「PlayStation Vita」でプレイでき る。プログラミング言語にはC#を採用 し、C#で書かれたプログラムをデバイス に搭載した仮想マシン上で動作させる。
936デフォルトの名無しさん:2011/09/19(月) 19:31:02.31
コピペ王に、俺はなる!まで読んだ。
937デフォルトの名無しさん:2011/09/20(火) 00:13:49.01
質問なんですが、TabControlのイベントでタブの順番を変えるものとタブをオーナードローするとタブが2個だけの時、例外が吐かれます
ソースは以下なんですが、どこが悪いか全然わかりません。まずDrawItemイベントがいつ起きてるんですか?
MouseUpの後に起きてるんですか?
後オーナードローについて、詳しく解説してるサイトがあったら教えて下さい

http://ideone.com/YXy6M
938デフォルトの名無しさん:2011/09/20(火) 00:27:45.01
>>937
Win7 64でVS2010だが再現せず
判らんけど、オーナードローの処理をlockで囲ってみたらどう?
939デフォルトの名無しさん:2011/09/20(火) 00:30:44.62
>>935
あれ、俺C#できるからSDK使えるってことか
940937:2011/09/20(火) 00:46:47.38
>>938
すいません、一部を書き忘れてました
タブが2個だけの場合、TabPage1を選択してTabPage2のほうにドラッグして
こうなってる状態で→TabPage2|TabPage1
TabPage1をドラッグして左に動かそうとするとエラーが起きるんです
図にするとこういう感じに→TabPage1|TabPage2
ArgumentOuntOfRangeException例外を吐くんです
941938:2011/09/20(火) 00:50:59.61
ごめんやっぱ出たわw
942デフォルトの名無しさん:2011/09/20(火) 04:30:44.48
【SCE】PlayStation Suite SDKのプログラミング言語にC#採用【PSVita】
http://jin115.com/archives/51811583.html
943デフォルトの名無しさん:2011/09/20(火) 11:07:45.55
大容量の動画ファイル(2G以上)を扱いたい場合、どのフォーマットが扱い易いのでしょうか?
現在はAVIを使用しているのですが、2Gの壁に阻まれています。
944デフォルトの名無しさん:2011/09/20(火) 11:15:12.61
どういう風に扱いたいのかさっぱりわからん
単なるバイナリファイルとして自前で覗くのか
何かのAPIなどに突っ込むとか
945デフォルトの名無しさん:2011/09/20(火) 11:22:44.44
言葉足らずですいません。
動画ファイルとして作成した後は、出来ればメディアプレイヤー等でも見えるようにしたいです。
パワーポイントで参照出来るのが理想です。
コーデックの追加等が必要になるかもしれませんが。
946デフォルトの名無しさん:2011/09/20(火) 11:40:10.42
それでもわからんww
947デフォルトの名無しさん:2011/09/20(火) 12:25:47.75
avi2
948デフォルトの名無しさん:2011/09/20(火) 13:08:11.35
AVI 2.0なんてのがあったんですね
ありがとうございました
http://homepage2.nifty.com/netwarp/format/indexm.html
949デフォルトの名無しさん:2011/09/20(火) 17:31:22.91
for (int i = 1; i < 10; i++)
{
pictureBox1.Image = null;
}


pictureBox1からpictureBox10までをnullにしたいんです。
1の部分をiに置き換えたいのですが、どのように記述すれば良いのでしょうか?
950デフォルトの名無しさん:2011/09/20(火) 17:33:18.94
pictureBox1からpictureBox10までをpictureBox[]という配列で
管理するしかないかも
951デフォルトの名無しさん:2011/09/20(火) 17:36:25.14
できた。

PictureBox[] pb = new PictureBox[10];
pb[0] = pictureBox1
pb[1] = pictureBox2
pb[2] = pictureBox3


for (int i = 1; i < 10; i++)
{
pb[i].Image = null;
}
952デフォルトの名無しさん:2011/09/20(火) 17:54:01.28
一応((PictureBox)コンテナ.Controls[string.Format("PictureBox{0}",i)]).Image=null;って感じでもできるよ
953デフォルトの名無しさん:2011/09/20(火) 17:55:37.03
素直に配列にした方がいいなw
954デフォルトの名無しさん:2011/09/20(火) 17:57:39.13
>>950-953
ありがとうございます。
955デフォルトの名無しさん:2011/09/20(火) 18:01:05.91
>>953
配列作るのに>>952かLINQを使うのが一番スマート
956デフォルトの名無しさん:2011/09/20(火) 18:07:47.83
手で配列に入れるのは、同じことを繰り返すなっていう基本に反する悪いやり方
>>955が一番
957デフォルトの名無しさん:2011/09/20(火) 18:13:18.70
同じ部品をいっぱい並べるならそもそもデザイナーを使わないで
動的にインスタンスも作っちゃうというのも手だけどね
958デフォルトの名無しさん:2011/09/20(火) 18:15:08.11
C#でODBC経由でDBからCSV出力するWindowアプリを作ってます(100〜1000万件程度)。
DataReaderを使ってますが、C++で作った同様のアプリより2倍ほど遅い場合があります。
調べてみると、DataReader.Read()が遅いようです(全処理の2/3程度)。
Readを早くする方法などないでしょうか?
Frameworkを使う以上、諦めなくちゃいけない所でしょうか。
959デフォルトの名無しさん:2011/09/21(水) 01:06:04.18
DataTableに一括で取得すれば?
960デフォルトの名無しさん:2011/09/21(水) 01:08:48.06
DBMSは何?ODBCしか選択肢はないの?
961デフォルトの名無しさん:2011/09/21(水) 01:43:28.09
こんばんは、質問があります。
64ビット(NETフレームワーク4)のDLLを
32ビット(NETフレームワーク4)のEXEで呼び出すことは可能でしょうか?
DLLの関数などを使うと例外:BadImageFormatExceptionがでてしまいます。
962デフォルトの名無しさん:2011/09/21(水) 01:45:51.19
無理
WOW64の仕組みについて勉強した方がいいな
963デフォルトの名無しさん:2011/09/21(水) 01:49:04.38
ちなみに64ビットDLLがアイコンなどのリソースだけで実行イメージを含んでない
場合は呼び出しというかロード可能
964デフォルトの名無しさん:2011/09/21(水) 02:01:12.54
>>962,963さん
早速の回答ありがとうです。
32ビットOS上でVS2010を使って開発してます。
EXEも32ビットのOSで動かす予定です。

NETフレームワークは64ビットで作成したDLLを
32ビットに変換し実行してくれないのですか?
965デフォルトの名無しさん:2011/09/21(水) 03:42:51.38
>>959
ちょっと試してみます。

>>960
色んなDBに対応するためにODBCを考えています。
966デフォルトの名無しさん:2011/09/21(水) 07:25:35.29
>>964

http://ja.wikipedia.org/wiki/WOW64

ここの"問題点"を見てみな

個人的には「わざとやった」感が否めない
967デフォルトの名無しさん:2011/09/21(水) 09:56:50.04
>>964
あえてx64を選択する理由は何?
それが何もないなら、Any CPUを選択すれば済む問題じゃないの?
そもそもそれが.NETの当初の存在意義の一つだったはずなんだから
968デフォルトの名無しさん:2011/09/21(水) 10:02:25.13
>NETフレームワークは64ビットで作成したDLLを
ドットなしで使うの初めて見た・・・
969デフォルトの名無しさん:2011/09/21(水) 13:03:33.38
フレームワーク4ってのも初めて見た
小数点が無いと別物に見える

つか、今から64BitのDLLを使用して開発するなら、64Bit専用で作ったほうが色々良いだろ・・・
640KBの壁を越えたと思ったら、3GBの壁にぶち当たると思わなかったぜ
970デフォルトの名無しさん:2011/09/21(水) 13:19:22.64

foreach (XmlNode node in baseNode.ChildNodes)
{
string innerXml = node.innerXml;
switch (node.Name)
{
case "created_at":
time = innerXml;
break;

case "text":
text = innerXml;
break;

case "source":
source = innerXml;
break;
....

ってXML解析やるの面倒で冗長なんだけど
source = node["source"]みたいにならないですか
971デフォルトの名無しさん:2011/09/21(水) 13:58:44.18
おいおい
972964:2011/09/21(水) 14:30:51.40
納品するEXEは32ビット環境で動かすので
ターゲットプラットフォームはX86かAnyCPUのどちらかになります。

DLLは64ビットのものしかありません。
ソースが無いので32ビットで再ビルドすることもできません。

WOW64は64ビットWindowsの環境で32ビットのEXEを動かすシステム
ですよね?
今回は32ビットWindowsで動かすのでこれは関係ないのでは?
973デフォルトの名無しさん:2011/09/21(水) 14:38:53.92
anyCPUにしてないのならご愁傷様
974デフォルトの名無しさん:2011/09/21(水) 14:48:02.30
>DLLは64ビットのものしかありません。
>ソースが無いので32ビットで再ビルドすることもできません。

誰を吊るし上げるか決めた方が速いなw
975デフォルトの名無しさん:2011/09/21(水) 14:51:36.90
new byte[N] で確保したbyte配列の中身は
0で初期化されている事が保証されるのでしょうか?
976デフォルトの名無しさん:2011/09/21(水) 14:52:08.47
される
977デフォルトの名無しさん:2011/09/21(水) 14:53:09.24
>>972
>WOW64は64ビットWindowsの環境で32ビットのEXEを動かすシステム
>ですよね?
>今回は32ビットWindowsで動かすのでこれは関係ないのでは?

32ビットexeは確かにそうだけど、C#の話でしょ?
AnyCPUでビルドしてあればexeは実行時に64bitにJITコンパイルされたのに
978デフォルトの名無しさん:2011/09/21(水) 14:57:38.92
http://msdn.microsoft.com/ja-jp/library/ms164699%28VS.80%29.aspx

これで何とかごまかし効かないのか
979デフォルトの名無しさん:2011/09/21(水) 16:51:51.07
937ですが理由がわかりました
95行目のTabControl1.TabPages.Remove(_buffer)の後にDrawItemイベントが起きているみたいで
DrawItemイベントが起きた時、描画するTabPageインスタンスがないのでArgumentOutOfRangeException例外を吐くみたいです
とここまではわかったんですが、どう回避すればいいのかわからないです
考えただけなのですが一番簡単なのはTabPageのコレクションのインスタンスをコピーしてそれを渡すってやつくらいでしょうか?
誰かご教示お願いします
980デフォルトの名無しさん:2011/09/21(水) 20:50:48.42
>>970
書いてるとおりnode["source"]で子要素取れるだろ
.NET3.5以降ならXmlNodeなんて糞は捨ててXElementで(string)node.Element("source")
981デフォルトの名無しさん:2011/09/21(水) 20:54:04.58
>>979
意図的に止める機能がなかったっけ?
982デフォルトの名無しさん:2011/09/21(水) 21:04:23.98
>>979
TabControl1.TabPages.Remove(_buffer);
TabControl1.TabPages.Insert(i, _buffer);
TabControl1.SelectedTab = _buffer;

TabControl1.SuspendLayout();
TabControl1.TabPages.Remove(_buffer);
TabControl1.TabPages.Insert(i, _buffer);
TabControl1.SelectedTab = _buffer;
TabControl1.ResumeLayout();
983デフォルトの名無しさん:2011/09/21(水) 21:06:24.34
あ、すまんだめだ
984デフォルトの名無しさん:2011/09/21(水) 21:26:29.13
次スレよろ
985デフォルトの名無しさん:2011/09/21(水) 21:36:27.66
ふらっとC#,C♯,C#(初心者用) Part79
http://hibari.2ch.net/test/read.cgi/tech/1316608496/
986デフォルトの名無しさん:2011/09/22(木) 16:41:41.27
program.csにコード書くなって言われたんですが理由はあるんですか?
987デフォルトの名無しさん:2011/09/22(木) 16:57:00.05
>>986
フォームだったら、program.csはそういうものっていう固定観念があるんだろう。
俺も、クラス書くときは新しいファイルに起こすしな。
988デフォルトの名無しさん:2011/09/22(木) 17:03:23.96
Program.csやDesigner.csをわかってて触るのはいいけど
ほとんどに人にとっては触る必要のないところだしなあ

さわることでよからぬトラブルを招くこともあるし
989デフォルトの名無しさん:2011/09/22(木) 17:17:15.54
>>986
基本的に1クラス1ファイルでいいんじゃない?
俺は複数のクラスで使うようなものならprogram.csに書く

Designer.csにわけずに同じForm.csに書くようにしてほしいわ
990デフォルトの名無しさん:2011/09/22(木) 17:19:26.07
君は書かないほうがいいw
Designer.csはIDEが触る
Formを継承したForm1.csなどはユーザーが触ると
分離してあるのにw
991デフォルトの名無しさん:2011/09/22(木) 17:49:37.61
program.csは、メインフォームを立ち上げる前とメインフォームが落ちてからの処理を書くところ
一般的には二重起動をチェックしたり、最初の起動だけはウイザード実行させたい時などに使いますね
992デフォルトの名無しさん:2011/09/22(木) 18:00:22.07
初期のVSではMainもデザイナコードもフォームの中に生成されてたな
Javaを真似たんだろうがクソ使い辛かった
むしろpartialはJavaみたいなGUIビルダが糞で
書いたコードを平気でぶっ壊しやがるような環境でこそ欲しくなる
993デフォルトの名無しさん:2011/09/22(木) 20:04:11.32
>>985
おつ
994デフォルトの名無しさん:2011/09/22(木) 20:37:42.82
>>991
俺はグローバルなシングルトンオブジェクトを取得するメソッドなんかも書いちゃう。
あと引数の解析結果とか。

"program"だからね
995デフォルトの名無しさん:2011/09/22(木) 21:34:55.91
986です
いろいろ参考になりました
特に >>991さんのが
ありがとうございました
996979:2011/09/22(木) 22:16:05.29
誰か知恵を貸してください・・・
>>982では無理でした・・・、オーナードローは諦めて誰かが作ってくれたD&D移動を実装したTabControlクラスを使うしかないですか?
997デフォルトの名無しさん:2011/09/22(木) 22:30:56.02
>>996
今思いついたがTabPageのインスタンスを別途同時に
List<TabPage>でもいいので管理してMouseDownの時に
フラグ立てて、オーナードローはそのフラグを見てすっ飛ばすようにするとか
TabPageにもTagがあるのならそこをフラグ置き場にしてもいいけど
998デフォルトの名無しさん:2011/09/22(木) 22:38:37.80
1000
999デフォルトの名無しさん:2011/09/22(木) 23:26:59.73
999
1000デフォルトの名無しさん:2011/09/22(木) 23:31:24.94
fds
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。