ふらっとC#,C♯,C#( ..
655:デフォルトの名無しさん
09/02/04 18:28:11
>>651
そこで、StringBuilderは使わないだろ。
time = time.Substring(0, 2) + ":" + time.SubString(2, 2);
656:636の者です。
09/02/04 18:31:41
>>650
なんとなくいけそうです。
>>653
お〜友よ〜
657:デフォルトの名無しさん
09/02/04 18:44:37
>>621
ツール-フォルダオプションは、真っ先に見ました〜。
>>626、636
というか、ここで手動で関連づけを登録しました。
そうしたら、登録したとたん、「詳細設定」のボタンが消え、「元に戻す」というボタンに変化しちゃったのです。
詳細設定のボタンがあれば、アプリケーションの挙動を見れるかと思ったのですけど。
たとえば、txtの詳細設定のopenアクションを見ると、アクションを実行するアプリケーションの項目に、「C:\Windows\system32\NOTEPAD.EXE %1」とあり、これを修正すればよいことがわかります。
ところがなにしろボタンがないから、手も足もでない…。
空白かな〜。う〜〜む。
アプリケーションじたいはデータファイルのダブルクリックで起動しているのですが…。
ま、C#とはあまり関係なさそうなので、この件はこれで。
お騒がせしました。ありがとうございました。
658:デフォルトの名無しさん
09/02/04 18:57:25
お願いします(゚ω゚)
System.Text.RegularExpressions.Regexを使って
[ok] 100
[ok] 0.001
[ng] 00 → 0
[ok] 0.1000
前ゼロ入力をReplaceで""に置き換えたいのですが、正規表現が上手く書けませぬ
教えてエロい人
659:デフォルトの名無しさん
09/02/04 19:00:35
>>658
正規表現 Part5
スレリンク(tech板)
660:デフォルトの名無しさん
09/02/04 19:02:22
あーd>>659 ここで聞きたかったぜっ♪
661:デフォルトの名無しさん
09/02/04 21:49:44
>>645
他クラスからアクセスする変数には手当たり次第static使ってるんだが…
何を勉強すればいいんですか?
662:デフォルトの名無しさん
09/02/04 21:52:53
構造化プログラミング
663:デフォルトの名無しさん
09/02/04 21:55:56
オブジェクト指向プログラミング
664:デフォルトの名無しさん
09/02/04 21:57:38
staticフィールドはダメだがstaticメソッドはいいぞ
privateなstaticメソッドが最高だ
665:デフォルトの名無しさん
09/02/04 21:58:06
構造化プログラミングを理解してない奴が、オブジェクト指向を学んでも無駄。
構造化プログラミングを学んだら、中規模以上のプログラムをたくさん書く。
それからでもオブジェクト指向は遅くないよ。
666:デフォルトの名無しさん
09/02/04 21:59:25
static メンバ変数なんて
ただ1個しか存在しないもんな。
2つ作りてええええええええ!!!! と思っても
1つしか存在できない。
不便過ぎ。
667:デフォルトの名無しさん
09/02/04 22:02:02
C言語等の非OOA出身者はstaticをメモ帳や定数保管庫程度に考えてない
668:デフォルトの名無しさん
09/02/04 22:02:42
しか が抜けた
669:デフォルトの名無しさん
09/02/04 22:02:49
オブジェクト指向も関数型プログラミングも
深いとこに行くと実用的じゃない宗教じみたものがうじゃうじゃ出てくるから
そこに行ってしまわないように気をつけないと
670:デフォルトの名無しさん
09/02/04 22:12:08
むしろいきなりOOPでいいと思うよ。
>>665みたいな意見はありがちだけど、構造化プログラミングなんて
中身のないスカスカな話で馬鹿でなければ「畳の上の水泳」で十分だと思う。
っていうか、俺も含めてたかがOOP理解したぐらいで鬼の首とったように語るのは
とても恥ずかしいよなw
671:デフォルトの名無しさん
09/02/04 22:16:29
物事をオブジェクトに切り分けるというのは大成功した考え方だと思うけど
継承は失敗だしインターフェースの実装もそんなに上手くない感じだと思う
そういった抽象化はクロージャにした方がシンプルで分かりやすい
672:デフォルトの名無しさん
09/02/04 22:19:30
>>636
> 生まれて半年の者です。
おいおい、生後半年でプログラミングかよ。
たいしたもんだな!
673:デフォルトの名無しさん
09/02/04 22:21:38
どんな天才だよw
674:デフォルトの名無しさん
09/02/04 22:24:22
>>671
使いこなせない人にとって上手くないだけなんだろ
675:デフォルトの名無しさん
09/02/04 22:26:16
母国語より先にプログラム言語を覚えたんだな
いったいどんな子に育つやら
676:デフォルトの名無しさん
09/02/04 22:28:11
今さらオブジェクト指向だデザパタだインターフェースだってやるのは
正直違うかなと思うよ
今のC#にはもっとよい道具があるから
ただオブジェクト指向の基本的なところは抑えておかないとまずいけど
677:デフォルトの名無しさん
09/02/04 22:29:44
だまれ若造
678:デフォルトの名無しさん
09/02/04 22:31:19
お年寄りは静かにしてください
679:デフォルトの名無しさん
09/02/04 22:32:17
>>676
それはC#が、最近になってより初心者向けの機能を実装をしてるってこと?
680:デフォルトの名無しさん
09/02/04 22:33:25
>>676
>今のC#にはもっとよい道具があるから
ないってw
知ったようなこというなよ。
クラスベースのOOPが万能じゃないのは確かだけど、現時点でそのオルタナティブが
C#に限らず発案されているとは思えん。
681:デフォルトの名無しさん
09/02/04 22:33:31
>>679
クロージャはインターフェースよりも初心者にとって使いやすいと思うよ
直観的だし
682:デフォルトの名無しさん
09/02/04 22:35:26
なんでクロージャーとインターフェイスを対置するんだ?
クロージャーとインターフェイスって「代替財」か?
わけがわからんよ。
683:デフォルトの名無しさん
09/02/04 22:37:16
覚え方なんて人それぞれだし。
自分が通ってきた道についてしか語れないだろ。
684:デフォルトの名無しさん
09/02/04 22:38:00
>>680
クロージャは実際には一つのメソッドを持ったインターフェースを
実装したオブジェクトを簡易に作り出す機能だけど
それさえあればオブジェクト指向の抽象化は全部出来る
オブジェクト指向の継承にまつわるややこしいところはすっ飛ばして
そっちに行くのが今は正解なんじゃないかねえ
685:デフォルトの名無しさん
09/02/04 22:39:36
また変な主義者が来ましたねw
686:デフォルトの名無しさん
09/02/04 22:44:52
>>684
それって、昔の1ファンクション1機能の構造化プログラミングと同じじゃないの?
静的なメソッドとは何がちがうのけ?
687:デフォルトの名無しさん
09/02/04 22:53:45
相談があります。
C#でプログラムを作り始めて半年くらいになります。
ようやく身の回りのソフトは、だいぶ自作できるようになってきました。
ところで、それをリリースしようと思うと、プログラムのなかに直接書いてあるパスワードなどを設定ファイルに移動したり、自分用のディレクトリ構造にあわせて作った部分を汎用にする必要が出てきます。
それはまあやる気になればできそうなのですが、設定不要のかんたんなソフトを知人10人ほどにテストしてもらったところ、だれひとりとして.NETを入れていないため、動作しなかった、ということがわかりました。
ひょっとして、.NETやC#って、すごくマイナーなんでしょうか。
このままC#をつづけた方がよいのか(けっこう使いやすくて気に入ってます)、それとも別の言語に移ったほうがよいのか。
移るとしたら、もっとメジャーな言語ってなんですか?
Webベースのプログラムとか、Ajaxとかですか?
.NETを組み込んだ状態でコンパイルするとかできないんですかね〜?
688:デフォルトの名無しさん
09/02/04 22:55:38
WebでできるようなことならSiilverlightというのがある
イメージ的には「C#で書けるFlash」
ランタイムは超小さいので配布が手軽
689:デフォルトの名無しさん
09/02/04 22:57:55
だからクロージャとインターフェイスは代替関係にないってw
ただ一部の機能が競合関係にあるだけ。
たぶん従来ICompareをわざわざ用意していたようなのがデリゲートでスッキリ
書けるようになった、みたいな例を見て短絡したんだろうけど。
690:デフォルトの名無しさん
09/02/04 23:03:14
>>687
.netFrameworkをインストールしないって人は多いよね
vista以降は.netはインストされてるから、ある程度は問題なくなると思うけど
なんのインストもなくて利用可能なのは、VisualStudioのC++のネイティブコードか、
Delphiぐらいじゃないのかな。
691:デフォルトの名無しさん
09/02/04 23:13:21
しつもんです。
クラス内のメンバの初期化はどこでしてますか?
宣言時に初期化してしまうか、コンストラクタ内で初期化するか迷ってます。
///以下抜粋
internal sealed class 通信
{
private UdpClient UDP;
private Thread スレッド;
private List<byte[]> 受信リスト= new List<byte[]>();///宣言時か
private List<IPEndPoint> クライアントリスト= new List<IPEndPoint>();
public 通信(int ポート)
{
UDP= new UdpClient(ポート);///コンストラクタ内か
スレッド = new System.Threading.Thread(new System.Threading.ThreadStart(受信));
///抜粋以上
692:デフォルトの名無しさん
09/02/04 23:18:16
>>691
基本は宣言時じゃないかな。
コンストラクタでもいいけど、コンストラクタをオーバーロードしているときには、
複数のコンストラクタで初期化しなくちゃいけなくなるから。
別のメソッドを用意して、そこで初期化してもいいけど、意味ない気がするし。
条件によるけど。
693:デフォルトの名無しさん
09/02/04 23:18:50
C#, C♯, C#相談室 Part50
スレリンク(tech板)
埋まったけど立てられなかった。
誰か頼む。
694:デフォルトの名無しさん
09/02/04 23:22:33
ホスト規制のためNGですた。
695:デフォルトの名無しさん
09/02/04 23:22:51
>>693
あっちは相談室と名乗りながら、
質問の揚げ足を取って悦に浸っている常連ばかりだから嫌い
696:デフォルトの名無しさん
09/02/04 23:23:14
>>686
Cとの比較で言うと、クロージャは「状態のある関数ポインタ」といえると思う
Xの値が欲しい時に
void Hoge(Func<int> getX){ int x = getX(); }
C#ならこう書ける。getXにはintを返す関数がなんでも入れられるしその場で作れる
Cで書くと
struct Func_int{
int (*func)(void*);
void* args;
};
void Hoge(Func_int fi)
{
int x = fi.func(fi.args);
}
こんなんだけど引数の型も作らなきゃいけないし関数はvoid*をとらなきゃいけないしで大変だ
オブジェクト指向で書くと
class Func<int> : IFunc<int>
{
int x, y;
public Func(int x, int y){ this.x = x; this.y = y; }
public int Method(){ return x + y; }
}
クロージャだと
Hoge(() => x + y);
こうだ。
これが進化だよ。
697:デフォルトの名無しさん
09/02/04 23:25:53
>>695
でも作っとかないと、そういう人らがここに常駐されたら困る
698:デフォルトの名無しさん
09/02/04 23:31:25
>>691
その前になんちゅうソースだコレ。
699:デフォルトの名無しさん
09/02/04 23:31:36
>>697
心配無用
既に常駐してる
700:デフォルトの名無しさん
09/02/04 23:36:15
まあとりあえず立てた。
C#, C♯, C#相談室 Part51
スレリンク(tech板)l50
701:デフォルトの名無しさん
09/02/04 23:36:42
>>696
その例だと従来の方法でもStaticなメソッドを使えば
int x = Class.Method(a, b);
で代用がきくから同じことだと思うんだけど。何が違うの?
702:デフォルトの名無しさん
09/02/04 23:37:33
読解性
703:デフォルトの名無しさん
09/02/04 23:40:36
>>690
VC++ も今は CRT が DLL 推奨だから配るならインストーラ作るべき
なんやけどな。msm があるしサイズも小さいので格段に楽だから
.NET と比べるレベルじゃないけど。
704:デフォルトの名無しさん
09/02/04 23:42:54
自分の場合は固定長バッファ持たせる時とか、ソース直書きのデータを持たせる時以外は宣言の所に初期化コードを書かないようにしてる。
基本的にはできるだけコンストラクタに書いたほうが、読みやすいコードになるよ。
#regionと組み合わせるとなお良い。
指すものがコンパイル時点で決まっていて、利用者側のコードに左右されない要素(リテラル的なもの)は宣言と初期化を一緒にしてもいいと思う
上の固定長バッファはあてはまらないけど…
705:デフォルトの名無しさん
09/02/04 23:44:00
>>687
「.net Frameworksインストールしてね」で終わりじゃないか?
むしろ、Windows Updateで配布されてるんじゃないのか?.netぐらい
706:デフォルトの名無しさん
09/02/04 23:45:31
>>700
乙
707:デフォルトの名無しさん
09/02/04 23:47:58
>>687
「めんどくせえなぁ・・・なんでこんな糞プログラムを・・・。そうだ!インストールしてない事にすればいいんだ!」
708:デフォルトの名無しさん
09/02/04 23:49:28
>>701
void Hoge()
{
int x = Class.Method(a,b);
}
これだとxはMethod(a,b)から返ってくる値しかとれないでしょ。
void Hoge(Func<int> getX)
こうしておけば
Hoge(() => x + y);
Hoge(() => x * y);
外部から自由な演算を入れられる。
ハッシュテーブルのキーが欲しいということになっても
Dictionary<TKey, TValue> CreateDictionary<TKey, TValue>(TValue[] array, Func<TValue, TKey> getKey)
{
Dictionary<TKey, TValue> dic = new Dictionary<TKey, TValue>();
foreach(var item in array)
{
dic.Add(getKey(item), item);
}
return dic;
}
var dic = CreateDictionary(array, item => item.Name);
その型のKeyにしたいものを自由に選べる
709:デフォルトの名無しさん
09/02/04 23:52:03
.NET Frameworkは再頒布可能だからその自作ソフトとやらに含めて配布すればいいんだよ。
URLリンク(msdn.microsoft.com)
ちなみにWindows Server 2003、Windows Vista、Windows 7にはリリース時点で最新の.NET Frameworkが入っている。(より新しいバージョンが出て、それが必要な場合は更に入れる必要がある)
710:デフォルトの名無しさん
09/02/04 23:53:57
はやくXPが駆逐されればいいんだがなあ
711:デフォルトの名無しさん
09/02/04 23:57:24
デザインパターンは関数型っぽいことを無理やり手続き型OOPLでやるための工夫が主だから
かなり簡単に実装できるよな
712:デフォルトの名無しさん
09/02/04 23:58:26
>>708
それみると、君の主張するところの直感的でもないし、
初心者にもわかりにくいと思うよ
713:デフォルトの名無しさん
09/02/05 00:02:11
>>712
じゃあオブジェクト指向や構造化でもっと直感的に、
初心者に分かりやすく書ける?
714:デフォルトの名無しさん
09/02/05 00:04:46
スレ違い
よそで存分に議論してくれ
715:デフォルトの名無しさん
09/02/05 00:05:14
初心者ではないが、何が書いてあるかさっぱりだw
716:デフォルトの名無しさん
09/02/05 00:07:06
人の揚げ足取りと議論厨は相談スレにお引き取りください
717:デフォルトの名無しさん
09/02/05 00:07:42
すみませんコレは仕様なんでしょうか
1:public class Foo{
2: private readonly int[] test = new int[]{1,2,3,4,5};
3: public Foo(){
4: int[] test2 = test1;
5: test2[0]=2;
6: Console.WriteLine(@"test[0]=" + test[0].ToString());
7: }
8:}
上記 2行目readonlyにしてるtestが、5行目で書き換えられてしまいます。
718:デフォルトの名無しさん
09/02/05 00:09:03
>>708 じゃねーけど知りたいんならレキシカルクロージャとかで
ぐぐった方がいいと思うよ。
>>708
2ch で説明するのはさすがに難しいと思う
719:デフォルトの名無しさん
09/02/05 00:09:15
4: int[] test2 = test;
のまちがいです
720:デフォルトの名無しさん
09/02/05 00:09:37
配列の要素がreadonlyになるわけではありません
721:デフォルトの名無しさん
09/02/05 00:14:31
>>718
2chで説明するのが難しいことが、初心者向けなの?
722:デフォルトの名無しさん
09/02/05 00:15:02
>>718
ググっても関数型言語ユーザーの宗教じみた言論に圧倒されるばかりだと思う
723:デフォルトの名無しさん
09/02/05 00:18:22
>>701
匿名関数は生成したスコープの変数をそのまま取り込める(環境を渡してるって言うんだっけ?)
副産物的な物だけど、遅延評価的な振る舞いも持ち合わせてる
724:デフォルトの名無しさん
09/02/05 00:19:56
この辺の議論からもう13年か。
URLリンク(java-house.jp)
URLリンク(www.google.co.jp)
>>718
むしろ近年のクロージャブームはLLの方が先に火をつけた気もするけどね。
JavaScriptの無名関数とかやっぱり初心者泣かせなのかねぇ?
725:723
09/02/05 00:21:07
ごめんさっきの >>718 あてじゃなくて >>722
726:デフォルトの名無しさん
09/02/05 00:31:46
何々、これでいいじゃん?
public static class Class
{
static int i;
public static int Method() { return i++; }
}
727:デフォルトの名無しさん
09/02/05 00:37:50
>>726
でもさ、C#でクラスそのものを引数に渡すって面倒事が多いでしょ。
だからデリゲートでもインタフェースでもインスタンスを生成して引数に渡していたのに。
728:デフォルトの名無しさん
09/02/05 00:41:24
クラスそのものって引数に渡せるの?
729:デフォルトの名無しさん
09/02/05 00:41:29
>>727
staticだからclassそのものを渡す必要なんてないよ
どこでも自由に
this.label1.Text = Class.Method().ToString();
でいいんじゃない?
730:デフォルトの名無しさん
09/02/05 00:43:56
>>728
private void button1_Click(object sender, EventArgs e)
のobjectはクラスじゃん?
731:デフォルトの名無しさん
09/02/05 00:48:04
objectはインスタンスだろ
732:デフォルトの名無しさん
09/02/05 00:48:56
ocjectはクラス名だ
733:デフォルトの名無しさん
09/02/05 00:49:27
object
734:デフォルトの名無しさん
09/02/05 00:50:41
この場合は話の流れからインスタンスってことじゃねーの?
735:デフォルトの名無しさん
09/02/05 00:51:26
public class Class
{
int i;
public int Method() { return i++; }
}
これの方がいいだろ
たくさん作れるし
736:デフォルトの名無しさん
09/02/05 00:54:51
>>734
この流れって話の本筋なわけ?
737:デフォルトの名無しさん
09/02/05 00:56:27
>>729
それだと元のコードの引数を変えれば動作を変えられるという点が失われているじゃないか。
738:デフォルトの名無しさん
09/02/05 01:34:39
>>737
その引数を、Staticなメソッドで渡してあげればいいじゃない
public static class test
{
static int i;
public static int Method1() { return i++; }
public static void Method2(int k) { i = i + k; }
}
739:デフォルトの名無しさん
09/02/05 01:36:47
>>738
いや、>>708とか足し算が掛け算になったり、辞書引いたりするような変化なんだけど。
740:デフォルトの名無しさん
09/02/05 01:45:46
>>739
つまり
>だからデリゲートでもインタフェースでもインスタンスを生成して引数に渡していたのに。
というのは
>708とか足し算が掛け算になったり、辞書引いたりするような変化なんだけど。
と同義ということ?
741:デフォルトの名無しさん
09/02/05 01:58:26
C#でCreateToolhelp32Snapshot関数を使いたいのですが、どう書けばいいのか分かりません。
.NET Frameworkに似たようなクラスライブラリはありませんか?
742:デフォルトの名無しさん
09/02/05 02:41:42
>>741
URLリンク(89.234.50.65)
743:デフォルトの名無しさん
09/02/05 02:43:11
URLリンク(pinvoke.net)
744:デフォルトの名無しさん
09/02/05 03:24:45
>>740
いや、同義というより1つの具体例と言うべきかな。
>>696みたいに別の場合だってある。
745:デフォルトの名無しさん
09/02/05 04:17:38
>>732
objectはキーワードだ
746:デフォルトの名無しさん
09/02/05 06:18:49
C#でアルファベットをfor文のループにかけてAからZまでを表示したいのですが、うまくいきません。
どのようにすればfor文でアルファベットを数値のようにAからZを表示する事が出来るのでしょうか?
747:デフォルトの名無しさん
09/02/05 06:20:05
>>746
一番分かりやすいのは配列にすればいいと思うよ
748:デフォルトの名無しさん
09/02/05 06:22:37
for(int i=0;i<26;i++)
Console.WriteLine((char)('A'+i));
749:デフォルトの名無しさん
09/02/05 06:47:26
for(char c = 'A'; c <= 'Z'; c++) Console.WriteLine(c);
750:デフォルトの名無しさん
09/02/05 09:26:15
>>740
> >>739
> つまり
>
> >だからデリゲートでもインタフェースでもインスタンスを生成して引数に渡していたのに。
>
> というのは
>
> >708とか足し算が掛け算になったり、辞書引いたりするような変化なんだけど。
>
> と同義ということ?
>
751:デフォルトの名無しさん
09/02/05 09:31:27
>>740
インスタンスを作ることでコンテキストの別な関数オブジェクトができる(イベント処理の時にstaticだとマズいだろう)
値を変えるのと振る舞いを変えるのとでは大違いだし…
デリゲート(委譲)はその名の通り、実行するタイミングを相手に委ねてる
渡すことを意図しているのは値(狭義の)ではなく動作
752:デフォルトの名無しさん
09/02/05 14:00:29
Form1からForm2をShowDialogした場合、
Formが描画される際に画面の上から順に
貼り付けてあるコントロールが表示される感じで、
Closeする場合も同様にもっさり感があるのだが、回避する方法はある?
ちなみにForm2がLoadされるとDataGridViewにMDBから
データを読込んで表示させているのだけど。
753:デフォルトの名無しさん
09/02/05 14:15:24
それはビルドした実行ファイル?デバッグ?
754:デフォルトの名無しさん
09/02/05 14:17:26
>>753
デバックでも実行ファイルでも描画速度にあまり変化がない感じ・・・
755:デフォルトの名無しさん
09/02/05 14:20:02
実行環境は?
756:デフォルトの名無しさん
09/02/05 14:20:35
>>752
描画を手動でやる
↓ソース開始↓
[コントロール名].SuspendLayout() //コントロールの描画停止
//(この間に処理を書く)
[コントロール名].ResumeLayout() //コントロールの描画再開
↑ソース終了↑
コントロール名をthisにすればForm全体の描画を停止できる
757:デフォルトの名無しさん
09/02/05 14:20:44
それはGUIの設計に問題があるね
フローレイアウトパネルにコントロール配置してFillしたりAnchorしたり
推奨されてないことやってないだろうね?
758:デフォルトの名無しさん
09/02/05 14:21:41
素人発言だけどSuspendLayoutとResumeLayoutとか?
759:752
09/02/05 14:36:21
実行環境はXPでCelelon2G・メモ1G
VS2008でつ。
GUIの設計はVB(.Netじゃないヤツ)みたいに
Formにコントロールを貼り付けるだけではダメなのかしら?
Formにあるのは、DataGridViewとButtonとTextBoxとLabelだけ。
DataGridViewコントロールを外して純粋にFormだけでShowすると
幾分早く描画されるって事はDataGridViewの処理が適切でないのかな?
今から756氏と758氏を参考に試してみます。
みんな優しいな。ありがたい!
760:デフォルトの名無しさん
09/02/05 14:47:04
DataGridViewに対してデータセットをバインドさせると早くなるよ〜
それでも遅いのならSQL文を見直すしかない
761:752
09/02/05 15:01:31
SuspendLayoutはあまり変化がなかった・・・ _| ̄|○
今は、OleDbConnection使ってMDBへ接続しているんだけど、
もっと早い方法はあるんですか?
SQL文に関しては単なるSELECT文なのでどうにもならないと思われ。。
762:デフォルトの名無しさん
09/02/05 15:02:32
データのバインドを直接じゃなくBindingSourceに任せてみたらどうだろう
こういう症状はあまり経験も聞いたこともないけど
763:デフォルトの名無しさん
09/02/05 15:08:40
あれ?もしかしてDataSetなし?
764:752
09/02/05 15:09:40
>>762
早速試してみる!
VB6から移行してきた口なんだが、勝手が違い過ぎて戸惑いすぐる。
765:デフォルトの名無しさん
09/02/05 15:14:45
DataSetはあります。
コードはこんな感じ(抜粋)
strSelectSQL(変数)へSELECT文を入れてます。
dba = new OleDbDataAdapter(strSelectSQL, dbc);
OleDbCommandBuilder builder = new OleDbCommandBuilder(dba);
dba.Fill(dtset);
dataGridView1.DataSource = dtset.Tables[0];
766:752
09/02/05 15:15:47
>>765
名前入れ忘れたが、752です。
767:デフォルトの名無しさん
09/02/05 15:18:28
CommandBuilderからdatasetまで全部動的か
768:752
09/02/05 15:36:30
bindingSourceを追加してみたけど、速度は劇的に早くならなかった。
実行速度はこの位って事で満足したことにまつ。
なんか引っかかるけど・・・
ところでbindingSource下記で使い方間違ってない??
dba = new OleDbDataAdapter(strSelectSQL, dbc);
OleDbCommandBuilder builder = new OleDbCommandBuilder(dba);
dba.Fill(dtset, "TEST");
bindingSource1.DataSource = dtset;
bindingSource1.DataMember = "TEST";
dataGridView1.DataSource = bindingSource1;
教えて君で非常に申し訳なかったです。
769:760
09/02/05 15:36:38
動かしてないんでご両所くださいw
すべて妄想ですw
↓ソース開始↓
OleDbConnection odc = new System.Data.OleDb.OleDbConnection();
OleDbDataAdapter odda;
DataSet ds = new DataSet("GetData"); //データセットの名称を指定
//接続情報を指定
odc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + @"\DUMMYDATA.mdb";
//実行SQL文と接続先情報を設定してアダプタを作成
odda = new OleDbDataAdapter("SELECT * FROM DUMMYDATA", odc);
//データを取得しテーブルを作成
//テーブル名称を設定(任意)
odda.Fill(ds, "tm_DUMMYDATA");
//データソースに設定
dataGridView1.DataSource = ds.Tables["m_DUMMYDATA"]; //インデックス値でもいい
↑ソース終了↑
いろいろ勘違いしてたらごめんね
反省はしないけど
770:752
09/02/05 15:44:25
>>769
ソースまで書いてもらって、しかもコメント付で!!
ほんとに親切にありがとう。
素直にうれしす。
771:636の者です。
09/02/05 16:40:08
コンストラクタについての質問です。
クラスが3つあります。クラスBは3つコンストラクタがあります。
ClassA
{
ClassB b = new ClassB(〜);
}
ClassB
{
public ClassB(N n){}
public ClassB(N n, M n){}
public ClassB(N n, M m, O o){}
}
ClassC
{
ClassB b = new ClassB( );
b.〜
}
クラスAからクラスBを呼び出すときは、if文で分けてコンストラクタを1つだけ呼び出すことが
できたのですが、クラスCからクラスBを呼び出すときはどのように呼び出したら良いでしょうか?
772:デフォルトの名無しさん
09/02/05 16:42:45
こっちが聞きたい
ClassAとClassCは何が違うんだ
773:636の者です。
09/02/05 16:47:41
>>772
クラスAのwindowフォームからクラスBのwindowフォームを呼び出すんですが、
そのクラスBのフォームの選択欄を別のクラスCで使いたいのです。
774:デフォルトの名無しさん
09/02/05 16:49:37
それがどうした
>>772の答えになってないだろ
775:デフォルトの名無しさん
09/02/05 16:51:35
だったら
class A()
{
public B b;
C c;
public A(){b=〜;c=C(this)}
}
public class C()
{ public C(A a){} }
とかじゃだめ?
776:デフォルトの名無しさん
09/02/05 16:52:32
>>771
逆に聞く。
ClaaAからClassBを呼んだときと同じように、ClassCからClassBを呼ぶとどうなったんだ?
777:636の者です。
09/02/05 16:59:15
>>776
コンパイルエラーはでないのですが、
クラスCでは、クラスBの変数を呼び出しても未定義となってしまいます。
778:デフォルトの名無しさん
09/02/05 17:02:16
いいから失敗したコードを晒せ
779:デフォルトの名無しさん
09/02/05 17:03:42
>>777
確認だが、同一form(B)の情報をAとCで共有したいってことでいいの?
だったら両方でnewしてるから
今のコードだったら、AとCがそれぞれ別のform(B1,B2みたいな)を持ってることになる。
違うなら、そもそもやりたいことが分からん。
780:636の者です。
09/02/05 17:13:57
>>779
クラスAで入力したテキストの個数によってクラスBのコンストラクタをShow()を使って
1つ呼び出すだけですが、クラスBではリストボックスなどをSelectedItemで選んで、
その選んだ項をクラスCで使いたいのですが、クラスCでクラスBの変数を使いたいときに、
クラスBのインスタンス化を行うときに、どのコンストラクタを選択すればよいのかが分かりません。
781:デフォルトの名無しさん
09/02/05 17:25:00
禅問答みたいw
782:デフォルトの名無しさん
09/02/05 17:33:58
たぶんVB脳、それも極上のやつなんだと思う
783:デフォルトの名無しさん
09/02/05 17:47:52
小文字は大文字クラスのインスタンスだとする。
(1)
a → b1
c → b2
(2)
a → b ← c
どっちなんだ
ちなみに(1)はフォームが2つできる。そしてb1とb2は別物だからリストボックスなんかの情報は共有できない。
俺には(2)を実現したいのに(1)のコードを書いちゃってるように見えるんだが・・・
784:デフォルトの名無しさん
09/02/05 18:16:59
なんか、他のクラスを呼び出すときはNewしなきゃいかんという間違った固定概念をお持ちなのでしょう
785:デフォルトの名無しさん
09/02/05 18:32:58
×固定概念
○固定観念
786:デフォルトの名無しさん
09/02/05 18:46:17
もう少し勉強しましょう、としか言いようがない。
>クラスBのインスタンス化を行うときに、どのコンストラクタを選択すればよいのかが分かりません
クラスBは自分で書いたんでしょう? だったら自分で知ってるはず。
そうじゃなくてたぶんあなたの質問は、
「データをどうやってクラス間で渡したらいいですか?」というやつではないのかい?
なんか書いても書いても返答がないので手応えのない質問者だ
787:デフォルトの名無しさん
09/02/05 18:54:38
馬鹿がバレるのを恐れてるんじゃないの。
788:デフォルトの名無しさん
09/02/05 18:54:43
きょうもしつもんです。
「時間計るときに、System.Environment.TickCountを良く使うけど、
24.9日たったら一周しちゃうから、なんとかならないかなー」
なんて書き込みがよくありますが、
なんでSystem.Diagnotics.Stopwatchを使わないんでしょうか?
数十日間もパフォーマンスカウンタ取得し続けたら、CPUとかハード的に
負担(たとえばやりすぎたら故障しやすいとか)があるんでしょうか?
もしそうだとしたら、なんとかSystem.Environment.TickCountを64bit化する
コーディング方法はあるんでしょうか?
789:デフォルトの名無しさん
09/02/05 18:59:27
>>788
一周したかどうか、チェックすればいいんじゃないでしょうか。
790:デフォルトの名無しさん
09/02/05 19:01:24
フレームワークのバージョンのせいじゃねーの
791:デフォルトの名無しさん
09/02/05 19:05:27
じゃあやっぱりSystem.Diagnotics.Stopwatchでもいいんですかね。
なんかCPUのクロックからどうのこうのって言われるとCPUに悪そうなきがして。
792:デフォルトの名無しさん
09/02/05 19:05:45
はあ?
793:デフォルトの名無しさん
09/02/05 19:09:02
>>788
Vista/Server2008なら、API関数のGetTickCount64()が使える。
まあ、System.Environment.TickCountで間に合う程度の精度での時間計測なら、
DateTime.Now.Ticks / TimeSpan.TicksPerMillisecondでも問題ないだろうけど。
794:デフォルトの名無しさん
09/02/05 19:10:39
ローカル時間使うとプロセス起動中にBIOS時計触ったら狂ってしまいますよね。
795:デフォルトの名無しさん
09/02/05 19:23:05
まあ、NowだとNTPで同期入ったらずれるだろう。
Stopwatchの中身QueryPerformanceCounterだよ。
796:デフォルトの名無しさん
09/02/05 19:58:46
>>788
はいこれ使ってくれ つSystem.Diagnotics.Stopwatch
.NET Framework1.0「おkおk」
.NET Framework2.0「そんな古臭いコード保障できねーからいらねーよ」
797:デフォルトの名無しさん
09/02/05 20:05:51
ストップウォッチ使ってfor文の処理の時間とかをPCごとに幾らになるか計ったらダメなん?
798:デフォルトの名無しさん
09/02/05 20:35:48
>>796
System.Diagnotics.Stopwatchって2.0からじゃなかったっけ
799:デフォルトの名無しさん
09/02/05 20:42:39
>>742
遅くなりましたが、ありがとうございました。
800:デフォルトの名無しさん
09/02/05 20:47:57
>>798
ごめん 間違えた
訂正
はいこれ使ってくれ つSystem.Diagnotics.Stopwatch
.NET Framework2.0「おkおk」
.NET Compact2.0「サポートしてませ〜ん」
申し訳」ない
801:デフォルトの名無しさん
09/02/05 21:31:23
private void catalogDataGridView_CellContextMenuStripNeeded(sender,e)
{
}
DataGridViewCellEventArgs(e.RowIndex,e.ColumnIndex)で
どこがクリックされたかは取得できるのはわかるのですが
クリックした場所が選択中(SelectedRows)かどうかを調べる方法はないでしょうか?
選択中の行の上でクリックしたときだけカスタムストリップを表示したいのですが
と書いてるうちに自己解決しました。ありがとうございます。
802:デフォルトの名無しさん
09/02/05 21:33:57
どういたしまして。
803:デフォルトの名無しさん
09/02/05 21:36:48
System.Diagnotics.Stopwatchは1年くらいプロセス起動したまま使い続けても大丈夫なの?
804:デフォルトの名無しさん
09/02/05 21:38:17
パフォーマンスカウンタなんて常に参照されてるんだから気にするなよ
タスクマネージャの情報ほぼ全部そっから取ってんだぞ
805:デフォルトの名無しさん
09/02/05 21:55:05
byte[100]の中から、任意のデータの並び(0x112233とか)を検索するにはどうすればよいですか?
806:デフォルトの名無しさん
09/02/05 21:57:20
>>803
システムの起動(CPUの電源ON)からのカウント数だから、プロセスの起動時間は関係ない
807:デフォルトの名無しさん
09/02/05 21:59:57
>>805
BM法
808:デフォルトの名無しさん
09/02/05 22:01:24
>>805
byte境界を越えてるのも探したいの?
ビットパターンを頭から見てくしかないんじゃね?
809:デフォルトの名無しさん
09/02/05 22:02:42
ちょっと、スレ違い気味な事で申し訳無いのですが・・・
適切なスレがありましたら指摘して下さい。
VisualStudio2005 C# で Webアプリケーション 及び Webサービス を作ろうとしていたのですが、
パケットをキャプチャする為にはIIS上で動かさなければいけないのでしょうか?
「とりあえず動かすのが先だ」と考えて、VSを複数立ち上げて.NET開発サーバー間でやりとりしていたのですが、
いざパケットを見ようと思ったら見方が解らなく、ネットも自分の解る範囲で検索してみたのですがそれらしい情報を
見つける事が出来ませんでした・・・
localhost内でやりとりする(?)パケットを見る事は出来ないのでしょうか・・・?
810:デフォルトの名無しさん
09/02/05 22:04:03
>>805
byte[100]ならBM法でもたいしたコストかからないよ
811:デフォルトの名無しさん
09/02/05 22:05:53
>>809
WinPCap
812:805
09/02/05 22:11:43
やっぱり自力でやるしかないんですね。
便利なクラスが用意されていればと思ったのですが…
813:デフォルトの名無しさん
09/02/05 22:13:34
>>809
ローカルじゃ無理じゃね? 無料の VirtualPC でも使いなよ。
814:デフォルトの名無しさん
09/02/05 22:18:46
>>812
Array.Find()
815:デフォルトの名無しさん
09/02/05 22:19:02
public int BytesBytes(byte[] src, byte[] target)
{
StringBuilder sbSrc = new StringBuilder(src.Length);
for (int i = 0; i < src.Length; i++)
{
sbSrc.Append(src[i].ToString(@"X2"));
}
StringBuilder sbTarget = new StringBuilder(target.Length);
for (int i = 0; i < target.Length; i++)
{
sbTarget.Append(target[i].ToString(@"X2"));
}
return sbSrc.ToString().IndexOf(sbTarget.ToString());
}
(∪^ω^)わんわんお!
816:デフォルトの名無しさん
09/02/05 22:24:33
>>814
勘違い
817:デフォルトの名無しさん
09/02/05 22:26:12
>>809
URLリンク(elend.sakura.ne.jp)
818:デフォルトの名無しさん
09/02/05 22:26:55
>>814
Array.Find()だと任意の並びは検索できないんじゃね
原文01122334
↓
検索対象112233
だとヒットしない
819:デフォルトの名無しさん
09/02/05 22:31:58
public static int Find(byte[] src, byte[] target)
{
return System.Text.Encoding.ASCII.GetString(src).IndexOf(System.Text.Encoding.ASCII.GetString(target));
}
820:815
09/02/05 22:33:29
>>819に負けた・・・
ASCIIにするの思いつかなかった
821:デフォルトの名無しさん
09/02/05 22:36:00
>>820
いや、君の見て思いついた。
822:デフォルトの名無しさん
09/02/05 22:36:07
あ、でも>>819だと4ビットずれてたら検索できないね
823:デフォルトの名無しさん
09/02/05 22:37:47
ん、ビット単位でずらして検索するのか?
824:デフォルトの名無しさん
09/02/05 22:45:45
ASCIIだと0x80以降が0x3Fになっちまうっていう
825:デフォルトの名無しさん
09/02/05 22:47:21
文字列にして検索してるのは馬鹿?
826:デフォルトの名無しさん
09/02/05 22:49:51
ネタをネタと(
827:デフォルトの名無しさん
09/02/05 22:50:39
コストを考慮しなくて良い場合は手抜き実装としてアリだと思う
828:デフォルトの名無しさん
09/02/05 22:51:47
>>524
そうか
UTF7でどうだ?
829:デフォルトの名無しさん
09/02/05 22:52:30
>>828はアンカミス
>>824へのレス
830:デフォルトの名無しさん
09/02/05 22:52:43
>>524
まったくだ・・・
831:809
09/02/05 22:55:46
>>810
試してみたいと思います。
>>813
どうも自分も調べていてそうなのかもと思い始めた所でした・・・
OSが内部で処理しているみたいですね。
今日中に解決できなければその方法で行こうと思います。
>>817
ありがとうございます。
そのサイトは自分も行ったのですが、
ARPの追加が出来なくて諦めました(汗
(エントリを追加できませんでした:5って奴です)
もう少し知識があれば色々突っ込んでやりたい所なんですが、
勝手にARPをイジっても大丈夫なのかよくわかってないので、
その方法はやめておきます・・・。
みなさんありがとうございます。
とりあえず今日中は頑張ってみようと思います。
832:デフォルトの名無しさん
09/02/05 22:58:06
>>805=>>809?
833:809
09/02/05 23:03:45
>>805 != >>809 です。
834:デフォルトの名無しさん
09/02/05 23:11:10
class Helper<T>
{
IEnuemrator<T> e;
public Helper(IEnumerable<T> e)
{
this.e = e.GetEnumerator();
e.MoveNext();
}
Result{ Accept, Reject, 保留 }
public Result Add(T item)
{
if(e.Current.Equals(item))
{
if(e.MoveNext() == false)
return Result.Accept;
return Result.保留;
}
return Result.Reject;
}
}
こんなんを自作して、一つめが合っていたらこれを作って入れるみたいな感じじゃない?
835:デフォルトの名無しさん
09/02/05 23:15:34
何それ
836:デフォルトの名無しさん
09/02/05 23:37:16
誤爆?
837:817
09/02/05 23:40:31
>>831
該当の記事には要点しかなので、そのまま説明内容を打ち込んでも
ダメなのは理解してるのかな?
事前に
URLリンク(blogs.yahoo.co.jp)
とかで説明してるようなMicrosoft Loopback Adapterを追加してやらなければ
ならない
これはローカル通信専用の仮想のネットワークカードのようなもの
するとネットワークが1つ追加されるので、これにIPなどを設定することで、
初めて817の記事内容にあるarpコマンドを受け付けるようになる
デフォルトのローカル通信はキャプチャできないけど、追加した仮想ネットワークは
ローカル通信には違いないけど仕組みが若干違うのでキャプチャできるってことだと思う
なお、arpテーブルはアドレス解決のキャッシュみたいなものなので自分で
設定する分には特に心配はない
838:デフォルトの名無しさん
09/02/06 00:02:27
>>835-836
>>805へのレスだよ
839:デフォルトの名無しさん
09/02/06 00:03:35
誤爆の方がよかったね
840:デフォルトの名無しさん
09/02/06 00:07:11
ええええ、まさかとは思ったが・・・
841:デフォルトの名無しさん
09/02/06 00:08:23
こんなに素直なコーディングを見てそんな感想かよ
842:デフォルトの名無しさん
09/02/06 00:17:39
∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
843:デフォルトの名無しさん
09/02/06 00:19:15
じゃあ>>805の解をもっと素直に書いてくれや
844:デフォルトの名無しさん
09/02/06 00:20:41
揚げ足取りの時間です
845:デフォルトの名無しさん
09/02/06 00:21:58
どうでもいいけど、バグってんだよなそれ >>834
IEnumerator<T> が何を実装しているかもう少し見たほうがいい
foreach 使わないと無駄に長くなる理由でもあるんだけど
846:デフォルトの名無しさん
09/02/06 00:29:48
IDisposableにしろって話?
嫌だよめんどくさい
847:デフォルトの名無しさん
09/02/06 00:32:39
|
|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
848:デフォルトの名無しさん
09/02/06 00:34:56
お取り込み中すいません。
Windows Forms1.1(VS.NET2003)のLabelのTextに
"‐"(シフトJISの815D)を設定すると表示されなくて困ってます。
仕様なんでしょうか?
WinForms2.0やVB6.0(Label.Caption)では表示されます。
Buttonとか、"&"のアクセスキー処理ができるコントロールでは
みんなこの現象が出るようです。.NET1.1はSP1入れています。
"‐"や"815D"で検索しても情報がなくて。。。
849:809
09/02/06 00:36:08
>>837
ipconfigにloopbackというのが無い事に気づき、インストールしてarpまではたどり着けました。
ただ、routeするとすでに登録されているとの事で、route PRINTで確認したのですが登録されてました。
これでキャプチャできるのかな?と思ったのですが、やはり見れませんでした・・・
これは見ながらやった設定が間違っていたのか、もしくは自分がNetworkMonitorの使い方を正しく把握していからかのどちらかではないかと思います。
ためしにブラウザにloopbackと入れるとIISのページが表示されたので、loopback == localhost???とか、正常にloopbackされているという事?と、色々頭に?が浮かんでます笑
後一息の様な気がするのですが、明日朝もう一度試してみてダメならダメでまた時間のある時に試してみようと思います。
私の様な初心者に細かに解説していただき、本当にありがとうございました。
850:デフォルトの名無しさん
09/02/06 00:46:46
>>848
これだな。Shift_JISの0x815D == U+2010
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP で
GDI+ API 関数を使用するアプリケーションを使用すると、Unicode ハイフン文字 (U+2010) が描画されない
URLリンク(support.microsoft.com)
.NET 1.1はコントロールの描画にGDI+を使う。
.NET 2.0で標準だとそこにはGDI+を使わなくなったので、.NET 2.0だと問題が起こらなかったというわけ。
851:デフォルトの名無しさん
09/02/06 00:48:28
>>848
URLリンク(www.atmarkit.co.jp)
URLリンク(support.microsoft.com)
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5003日前に更新/209 KB
担当:undef