C#, C♯, C#相談室 P ..
[2ch|▼Menu]
348:デフォルトの名無しさん
09/05/01 18:48:39
>>346
Resume、Suspendは「使用しないでください」と書いてありますが、Aboteには書いていません。
何故、Abortを使うのはダメとおっしゃっているのでしょうか?

349:デフォルトの名無しさん
09/05/01 18:52:43
>>348 マジ?どこどこ??

350:デフォルトの名無しさん
09/05/01 18:56:26
>>348
メモとかに書いてるっしょ どこで終了するか分からないからオブジェクトが不完全な状態になりうるとか
更には確実に終了されるかどうか保証できないとか実にやばそうな匂いが漂ってくる

351:デフォルトの名無しさん
09/05/01 19:14:36
>>349
Visual C# Express 2008のインテリセンス

>>350
そうは書いていないようです

352:デフォルトの名無しさん
09/05/01 19:26:48
インテリセンスて
ヘルプの解説見ろよ……

353:デフォルトの名無しさん
09/05/01 19:35:28
>>352
ヘルプの解説でも、
SuspendとResumeの項には
「メモ : このメソッドは,互換性のために残されています。」
「[ObsoleteAttribute("Thread.Resume has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. URLリンク(go.microsoft.com)", false)] 」
とありますが、
Abortの項にはありません。

詳しくはヘルプをご覧ください。

354:デフォルトの名無しさん
09/05/01 20:21:44
Thread.Sleep() に Timeout.Infinite を渡す。
再開は Thread.Interrupt() で ThreadInterruptedException をスローさせる。

355:347
09/05/01 21:40:05
さんくす

Thread.Interruptのコード例でsleepSwitchフラグの位置がイマイチ納得いかなかったけど
>>354に書いてあるように使うよ

356:デフォルトの名無しさん
09/05/01 22:04:03
>>347
一般にはフラグは使わない、イベントやセマフォやミューテックスの類を使って制御する。
フラグは簡単にミスするしバグりやすいよ、CPUパワーは無駄にするし、スレッドの実行優先順位も狂って非効率になる。

357:デフォルトの名無しさん
09/05/01 22:10:40
再開はそれでいいんだけど休止をどう伝えるのかイメージつかないんですが

358:デフォルトの名無しさん
09/05/01 22:25:42
>Thread.Interruptのコード例でsleepSwitchフラグの位置
デバッガで確認したけど、Thread.SpinWait(10000000);の行には行かないね。
シングルコアだとJoin呼ぶまでスレッド動かないからだね。
試しにInterrupt()のあとでThread.Sleep()入れてメインスレッドをスリープ待機に
入れちゃうとThread.SpinWait(10000000);がThreadInterruptedException起こすし。
マルチコアだと動かないんじゃないか?このサンプル。

359:デフォルトの名無しさん
09/05/01 22:48:07
>>357
メモリ操作オンリーの計算なら止めてしまっても問題ないと思うが
普通にいろいろなリソースを操作しているなら勝手なタイミングで止められたらマズくね?
もちろん上記のような特殊な状況があるならそれこそSuspendしちまっても全然問題ないと思われますけど。
普通の状況では、イベントを確認して問題なければそこで止める。

360:デフォルトの名無しさん
09/05/01 23:04:40
Sleepする前にInterruptされていたら停まらないでThreadInterruptedException起こすし
問題ないかを確認するのはInterruptする側でしろということじゃないかな。

361:デフォルトの名無しさん
09/05/01 23:07:19
なんつーか、AbortにしてもInterruptにしても、これらの操作はスレッドに対する最終手段だぜ
普通に使うものじゃない

362:デフォルトの名無しさん
09/05/01 23:09:02
同期を使わないなんてアリエナイ。

363:デフォルトの名無しさん
09/05/01 23:11:25
いや、開発するアプリの種類によるか・・・
スレッド自体、使わない人は使わないんだし。

364:デフォルトの名無しさん
09/05/01 23:11:48
スレッドの外部から停止再開させたいなら、同期オブジェクトを使おうが
結局フラグ的な使い方をすることになりそうな気がする。


365:デフォルトの名無しさん
09/05/01 23:13:55
>>364
フラグだとvolatile付け忘れたり、メモリーバリア忘れたり、素人には難しいぞ。

366:デフォルトの名無しさん
09/05/01 23:23:06
ManualResetEvent だともろフラグだ。

そういえばBackgroundWorkerの実装をみると
volatileもmemorybarrierも使ってなかったのを思い出した。

367:デフォルトの名無しさん
09/05/01 23:24:28
つかEventはマルチスレッド用のフラグですから
セマフォはマルチスレッド用のカウンタですから

368:358
09/05/02 03:35:46
嘘こいてた。

>入れちゃうとThread.SpinWait(10000000);がThreadInterruptedException起こすし。
起きない。そもそも待機してない風?
>スレッドを iterations パラメータで定義した時間の間待機させます。
ってヘルプにあるのに・・・ある・・・定義した時間って単位はいくらだ?フェムト秒?
Causes a thread to wait the number of times defined by the iterations parameter.
・・・誤訳かよ!
待機とブロックと中断の用語がなんか変な気もするし。日本語ヘルプはだめすぐる。

369:デフォルトの名無しさん
09/05/02 03:40:54
WCFとかAzureの質問ってここでしていいのかな。

Azure SDKのdevelopment fabric上でWCFサービスを動かすと、
127.0.0.1からはアクセスできるのに、自分のホスト名から叩くとアクセスできなくて、
俺の設定ミスなのかAzure SDKのバグなのか分からないんだけど。

解決策を知ってる人がいたら教えて欲しい。

370:デフォルトの名無しさん
09/05/02 03:56:03
切り分けしようぜ

371:デフォルトの名無しさん
09/05/02 03:56:30
手元に無いんで試してないがエスパーしてみると
リスナーでIPAddress.Anyとすべきところがそうなってないとか

372:デフォルトの名無しさん
09/05/03 10:20:58
>設定ミスなのかAzure SDKのバグ

自分のプログラムが悪いとはこれっぽっちも考えてないのね

373:デフォルトの名無しさん
09/05/03 11:22:10
>>372
「俺」って言うのは日本語で「自分」を示す一人称の一つだよ。

374:デフォルトの名無しさん
09/05/03 11:42:24
設定ミスと考えてるってことはプログラムは悪くないと思ってるってことだろ

375:デフォルトの名無しさん
09/05/03 11:44:41
設定はプログラムでするだろ

376:デフォルトの名無しさん
09/05/03 12:15:09
何言い返してんだよ、本人か?
そうでなけりゃ、自分のプログラムミスを設定ミスと言い直してごまかす人か?

377:デフォルトの名無しさん
09/05/03 12:58:12
あ、回答どうも。

>>370
がんばってみたんだけど無理だった。。
とりあえず、MS提供のサンプルで同じことが起こるのは確認済み。
別環境でやっても同じく。

>>371
なるほど。そういうオプションがあるのか。
IISでその辺設定するにゃどうしたらいいんだろ。調べてみますわ。

>>372
ランタイムの初期化って設定って言いませんかねぇ。
あと、言うの忘れてたけど.svc使ってIISの機能でホスティングさせてたんで。

378:デフォルトの名無しさん
09/05/03 13:43:49
WCFはIISでホスティングさせているか否かでだいぶ違うから、
そういう大事なことは先に言えよな。
あとはトランスポートになに使ってるかかな、BasicHttpBindingとかそんなの。


379:377
09/05/03 14:05:03
失礼(´・ω・`)

バインディングはBasicHttpBindingにしてる。
ウィザードのデフォルトはWebHttpBindingだけど、
それだとそのまま使うとなんか例外投げたので。

とりあえず、MSの開発者側も認識している既知の問題としては、

WCFアプリをAzureにうpすると、自分のホスト名を、
ユーザが使うロードバランサのアドレス(URLリンク(***.cloudapp.net))ではなく、
分散環境内でアプリが実際にロードされている鯖(URLリンク([guid].cloudapp.net))のもの
として認識してするせいで、それをendpointとしてWSDLを生成してしまう、

というのはどっかで見かけたけど、それがこの問題とも関連しているのかよく分からない。

380:デフォルトの名無しさん
09/05/03 14:06:36
ちなみにこれ。
URLリンク(code.msdn.microsoft.com)

381:デフォルトの名無しさん
09/05/03 14:10:18
内部識別子でWSDLを公開している様子
URLリンク(wcfazure.cloudapp.net)
URLリンク(wcfazure.cloudapp.net)

けど、ローカルで動かす分には鯖名自体は(もちろん)合ってるから関係ないはずではあるんだけど。

382:デフォルトの名無しさん
09/05/04 15:59:03
まずはIISで動かしているのかASP.NET開発サーバーで動かしているのか確認かな。
後者なら127.0.0.1(localhost)しか受け付けない。
タスクトレイにASPNET開発サーバーアイコンが表示されているようなら後者。
IISで動いているなら、コンピューターの管理からIISの設定を確認する。
まずWEBサイトの識別のIPアドレスで「未使用のIPアドレスすべて」になっているかどうか。
ここが127.0.0.1になっていればそれでしか繋がらない。
次にこのアプリの仮想ディレクトリを確認でセキュリティ関係に矛盾がないか確認。
よくやってしまうのが、統合認証+匿名認証の設定になっていて、
WEBで公開しているディレクトリにIUSR_xxxxのアクセス許可がないケース。
統合認証で認証された場合は問題ないが、匿名の場合にアクセス拒否を食らう。

383:デフォルトの名無しさん
09/05/04 17:09:52
>>382
ありがとう。
いま、手元に環境がないので、後日確認してみて報告しますわ。

384:デフォルトの名無しさん
09/05/04 18:30:41
C#でテキストを1行ずつ読み込み、条件に合った行を取得するような簡単なものを組んでいるのですが、
条件に合った行から連続する3行とかを取得するにはどうすれば良いのですか。
初歩的かもしれませんが、ご教示願います。

385:デフォルトの名無しさん
09/05/04 18:32:17
>>384
とりあえず下の場合の動作は?

テキスト
1234
1234
1234
abcde
abcde
abcde

条件: 1234

386:デフォルトの名無しさん
09/05/04 18:37:32
>>384
条件に一致した行のインデックスとって自分でそこから2行読めば?

387:デフォルトの名無しさん
09/05/04 18:41:59
なんかJavaより面倒そう

388:デフォルトの名無しさん
09/05/04 18:42:02
var result = new List<string>();
int flag = -1;
foreach (string line in lines)
{
if (条件に合ってる行の場合)
{
flag = 0;
}
if (flag =! -1)
{
result.Add(line);
flag++;

if (flag > 3)
{
flag = -1;
}
}

}

389:デフォルトの名無しさん
09/05/04 18:50:20
=! だと・・・?

390:デフォルトの名無しさん
09/05/04 19:08:04
grepと同じ挙動ならこんな感じか

IEnumerable<string> Grep(IEnumerable<string> source, string pattern, int after) {
  int n = 0;
  foreach (var line in source) {
    if (line.Contains(pattern)) n = after + 1;
    if (n > 0) {
      n--;
      yield return line;
    }
  }
}

391:デフォルトの名無しさん
09/05/04 19:25:31
>>384
bbbが条件だとして、そこから3つを取得

string[] list = { "aaa", "bbb", "ccc", "ddd", "eee" };
var result = list.SkipWhile(s => s != "bbb").Take(3);

392:デフォルトの名無しさん
09/05/04 19:44:16
linqを使いたいお年頃なんですね

393:384
09/05/04 20:03:01
返事が遅くなりました。

1234
aaa
bbb
ccc

2345
ddd
eee
fff

のようになっていまして、ReadLineで順に読んでいって、1234を発見したときに、
aaa、bbb、cccの3行を取得するようにしたいです。

1234の行は取得できるのですが、その次の行を読んでbreak;の方法がいまいちわかりません。

394:デフォルトの名無しさん
09/05/04 20:10:11
もし1234が見つかったらのifステップ中は
ReadLine();
ReadLine();
ReadLine();
じゃだめなの(;´Д`)

395:デフォルトの名無しさん
09/05/04 20:10:39
>>393
1234が2回以上あらわれることはあるか、
また1234に続く3件のうちに1234が含まれていた場合の扱いは?という確認だろ。
そういうことはありえないという条件でもよいのだが。
その条件が確定すれば簡単だよ。

396:デフォルトの名無しさん
09/05/04 20:16:30
すみません。おそらくすごい初歩的なことだと思います。
検索する行(この場合は1234)は、他の行には一切ありません。
>>394さんの3回記述をするのは、次の2行も取得できるということですか?
Webはいろいろ調べてみたのですが、1行ずつ読み込む方法しか書いてなかったもので。

397:デフォルトの名無しさん
09/05/04 20:30:44
>>385はスルーですかそうですか

398:デフォルトの名無しさん
09/05/04 20:31:52
>>391はスルーですかそうですか

399:デフォルトの名無しさん
09/05/04 20:33:15
>>398
いやまて391は流石に役に立たないだろう根本的な部分で

400:384
09/05/04 20:41:24
>>385を書かれた時点で自分の伝えたいことが伝わってないことがわかり、をれを参考にして例示を上げてみました。
スルーするつもりはありませんでしたのでご容赦ください。

>>394の方法でやってみたところ、思った通りの挙動が確認されました。
まだ本片手で勉強している最中ですので、このような質問内容になったことをお詫びいたします。
みなさん、ありがとうございました。

401:デフォルトの名無しさん
09/05/04 20:59:57
ReadLine()は

今まで読んだ行の位置からスタートして
次読み込む行を調べて
その行に移動して
その行に書いてあることを読んで
今読んだ行を覚えておいて
読んだ内容を返す

っつー動作をするんじゃね?


402:デフォルトの名無しさん
09/05/05 17:19:16
ちなみに和布蕪(めかぶ)は, 作者の好物です.

403:デフォルトの名無しさん
09/05/07 00:49:52
.net framework って、普通1.1なの?
2.0や3.0, 3.5って企業や業務アプリで使ってないノア?

404:デフォルトの名無しさん
09/05/07 00:52:12
使っていいよ。

405:デフォルトの名無しさん
09/05/07 00:53:08
2.0は十分なシェアあるだろうが可能な限り低いバージョンでやるべきだろ

406:デフォルトの名無しさん
09/05/07 01:03:04
ほとんど2.0じゃないかな。1.1まではベータ版みたいなものだし。

407:デフォルトの名無しさん
09/05/07 01:10:24
FrameworkClientProfileで開発しとけば色々便利

408:デフォルトの名無しさん
09/05/07 01:22:03
俺様メモからの引用
--
.NET Framework 3.5 Client Profile
3.5 SP1のサブセット

インストール可能な環境は
Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP(SP2以降)
であるが、さらに次の条件が付加されるため実質XP(SP2以降)だけが対象となる。

フルセットの.NET Frameworkが導入されていないこと。(2.0以降だけでなく1.1や1.0も!)
フルセットの.NET Frameworkがすでに導入されている場合に
Client Profileのインストーラは3.5SP1フルセットのインストールを行う。


409:デフォルトの名無しさん
09/05/07 01:40:15
3.5 SP1

410:デフォルトの名無しさん
09/05/07 01:41:20
3.5 SP1 フルインストールってすごい長いんだよな・・・

411:デフォルトの名無しさん
09/05/07 02:18:57
>>394で正解とか他の解答者がさすがにかわいそうすぎたw

412:デフォルトの名無しさん
09/05/07 02:19:21
Silverlightで皆幸せ

413:デフォルトの名無しさん
09/05/07 03:58:32
和暦のカレンダーコントロールが必要になった
めんどくさいからだれか知ってたらサンプルのページ紹介か作ってくれw
サードパーティはバグに引っぱられるからかるからなるだけ使いたくねえ…

もう和暦とか辞めればいいのに
西暦で統一してぇ・・・


414:デフォルトの名無しさん
09/05/07 04:07:32
天皇制がある限り無理

415:デフォルトの名無しさん
09/05/07 07:10:32
面倒だけどそんなに手間じゃないよな

416:デフォルトの名無しさん
09/05/07 11:28:41
まあ、「今後は」西暦に統一したとして、
過去に作った分にまで遡及させるのは無理だから
実際に和暦が消えるのは数十年後よ。

417:デフォルトの名無しさん
09/05/07 11:37:04
太陽暦移行後だけでいいなら簡単だろうな。

418:デフォルトの名無しさん
09/05/07 11:59:10
普通は平成、昭和、大正、明治をサポートすれば大丈夫なんだろうけど、
お寺の過去帳データベースを作ったときはまいったな。



419:デフォルトの名無しさん
09/05/07 13:47:29
和暦とか旧暦とか六曜とか月齢とかまとめて計算してくれるクラス欲しいな
海外ローカルも含めて国際カレンダークラスみたいなもの。


420:デフォルトの名無しさん
09/05/07 13:50:57
暦計算だけならCalendarクラス使えばいいだろう。
六曜や月齢はないが。

421:デフォルトの名無しさん
09/05/07 17:17:40
和歴はあってもイイけど業務で使うのは辞めて欲しい
役所が一生懸命使ってる限りは無理だろうけどさ

422:デフォルトの名無しさん
09/05/07 17:36:57
和暦に命をかけてるんじゃないかってほどこだわってた客がいたな
昭和何年何月何日は存在しないから入力できないようにしてくれとか
結果的にあってんだからいいんだよ!

423:デフォルトの名無しさん
09/05/07 18:14:23
世界のローカル暦サポートなんて、Unicodeの比じゃない難事業だぞ。ヨーロッパ各国に限っても、
ユリウス暦からグレゴリウス暦の移行期は国ごとに日付が違うし、ユリウス暦の初期は閏年が
いつだったのかわからないし、ユリウス暦導入前は最高神祇官が勝手に閏年を決めるし、一方
ギリシアではポリスごとに暦が違うし……
日本だって南朝と北朝で暦が違っていたり、暦書がなくて暦を復元できない時代があったり、

ああもう面倒くせえ

424:デフォルトの名無しさん
09/05/07 18:16:23
旧暦の暦の正当性は閏月とかあってとてもじゃないけど保障できない。
さきの過去帳DBなんだけど、古いのはもう計算じゃ出せなくてテーブルで持つしかなかった。
古いのは書き写したときのミスとかいろいろあってもう記述がいい加減なんだよね。
咸豊とか中国の元号が出てきたときにはもう勘弁してください状態だった。
南北朝や九州年号はさすがになかった・・

425:デフォルトの名無しさん
09/05/07 19:35:09
さすがだな、おまえらw
”和暦のカレンダー”だけでここまで穿り返すとはwww

426:377
09/05/07 19:43:50
>>382
今日いろいろ調べてみた。

結果としては、Development Fabricは内部でASP.NET開発サーバを使っているのではないか、
という感触を持った(サービスが自分をホストしている鯖の情報を取る方法を知らないので確定的ではないけど)。
AzureのドキュメントにはIISを使ってるって書いてあるし、ASP.NET開発サーバアイコンも表示されていないんだけど、
IISにアクセスログを吐かせてみても、127.0.0.1:81を叩くときだけログに残らないし、
よく考えると、80番の設定で起動してるのに81番で起動するのは、IIS以外に鯖を起動した上でホストしている証拠かな、と。

そうなると、ホスト名がつかえないのは、現状では「仕様」ということになるんだと思う。

とりあえず、CTPの文字が外れるまではこのままなんだろうなぁ、というオチにしておく。
みんな、いろいろ教えてくれてありがとう。

427:デフォルトの名無しさん
09/05/07 20:20:27
すみません、
HTML文からタグのみを取り出す関数はありませんか?
逆に言うと、HTML文のタグ以外を削除するような関数
のことですが。

428:デフォルトの名無しさん
09/05/07 20:32:18
安易に考えたらXML名前空間の機能使って取り出すとか?


429:デフォルトの名無しさん
09/05/07 20:34:59
関数はないな
正規表現使えばタグの抽出だけなら比較的簡単だ

>>428
XHTMLじゃない限りほぼパース不可能だよ

430:デフォルトの名無しさん
09/05/07 20:35:48
酷いHTML読まされる事考えるなら、MSHTML使うのが一番楽じゃないかね

431:デフォルトの名無しさん
09/05/07 20:56:10
SgmlReader っていうのもある。

432:デフォルトの名無しさん
09/05/07 21:04:57
CommitChanges()はパフォーマンス面で悪かったりする?
普通に多用していいもの?

433:432
09/05/07 21:42:45
ああスレ間違えた

434:デフォルトの名無しさん
09/05/08 00:20:25
>>427
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)

435:デフォルトの名無しさん
09/05/08 00:26:09
System.Windows.FormsのHTML DOMはWebBrowserなしだと普通には作れないのが難
標準でwebスクレイピングライブラリとか作られんかのう

436:デフォルトの名無しさん
09/05/08 00:31:13
寺とかちょっとした歴史の勉強だなw

437:デフォルトの名無しさん
09/05/08 00:31:51
プログラムにフォルダ名が入っているのですが、いれないようにするにはどうすればいいですか?

438:デフォルトの名無しさん
09/05/08 00:34:01
SilverLight

439:デフォルトの名無しさん
09/05/08 00:37:25
>>435
んじゃ、これ。
URLリンク(htmlagilitypack.codeplex.com)


440:デフォルトの名無しさん
09/05/08 00:38:35
すんません、書きなおします
プログラムをバイナリエディタでみたところプログラム内にフォルダ名が書き込まれているのですが、
ビルド時、かきこまれないようにするにはどうすればいいですか?

441:デフォルトの名無しさん
09/05/08 00:38:55
>>437
相対パス使うか、定義ファイルにパス書くか、レジストリにパス書く。

442:デフォルトの名無しさん
09/05/08 00:39:43
>>440
リリースビルド & .pdb を作らないようにすればいいんじゃなかったっけ?

443:デフォルトの名無しさん
09/05/08 00:40:43
あ、ありがとうございます
ビルドー詳細設定でデバッグ情報をnoneにしたらいけました
あせった><

444:デフォルトの名無しさん
09/05/08 00:48:43
ビルドーってディルドーに似てる

445:デフォルトの名無しさん
09/05/08 02:31:26
2000年問題に対応したとき、「なんでこんなややこしい閏年の置き方をするんだ!」とか
思ったものの、よく勉強してみたら、現行暦がいかに単純で合理的か納得したw

446:デフォルトの名無しさん
09/05/08 06:10:15
>>445
日本の季節感にはまったくあってないけどな
昔は一番寒い時期が1月1日で新年を迎えると暖かくなる一方だった
戦争に負けたアジアは所詮白人のおまけということだな

447:デフォルトの名無しさん
09/05/08 07:14:01
>>446
おじいちゃん乙

448:デフォルトの名無しさん
09/05/08 07:21:58
>>446
中国行って旧正月でも祝ってればいいんじゃない

449:デフォルトの名無しさん
09/05/08 07:22:24
そのせいで地方によってはいくつかの行事は月遅れでやることが多いけどな。
ひな祭り、七夕、盂蘭盆会などなど。

450:デフォルトの名無しさん
09/05/08 10:56:45
なんか思いっきりスレチ方向へ進んでないか?ww

451:デフォルトの名無しさん
09/05/08 12:22:22
じゃあディルドーの話に戻そう

452:デフォルトの名無しさん
09/05/08 23:07:53
三叉路まで戻って別の違う道に進んだみたいな。

453:デフォルトの名無しさん
09/05/08 23:17:29
ディルドゥーなら喜んで食いついたのに

454:デフォルトの名無しさん
09/05/09 13:32:15
vbでいうところの

for i=0 to 4
label(i)="abc"
next

みたいな
ループの添字で複数の連番的なオブジェクトを指定するにはどうしたらいいのでしょうか

オブジェクトに番号振るっていう状態をどういうのかがわからなくて調べられないです
1日いろいろ探してみましたが思いつく宛が詰まってしまったのでヒントが欲しいです

455:デフォルトの名無しさん
09/05/09 13:35:24
配列に入れておいて、あとは同じように。

456:デフォルトの名無しさん
09/05/09 15:23:13
ありがとうございます

457:デフォルトの名無しさん
09/05/09 21:20:30
質問です
フォームのテキストラベルにH2Oと入れたいんだけど2を下付きにするにはどうすればいいのですか?
Hのラベル、2のラベル、Oのラベルを3個並べてお茶を濁してきたけど、詳しい方どうか教えてください。

458:デフォルトの名無しさん
09/05/09 21:23:57
そうやるしかない

459:デフォルトの名無しさん
09/05/09 21:30:23
自前で描画するしかないな Paintイベント使って

460:デフォルトの名無しさん
09/05/09 21:30:36
>>457
U+2082 ₂ SUBSCRIPT TWO

461:デフォルトの名無しさん
09/05/09 22:04:02
>>457
文字を書いてつくったイメージを貼り付ければいいじゃん

462:デフォルトの名無しさん
09/05/09 23:36:39
H₂0
な なるほど!thx

463:デフォルトの名無しさん
09/05/09 23:44:44
リッチテキスト

464:デフォルトの名無しさん
09/05/09 23:48:55
₀₁₂₃₄₅₆₇₈₉


465:デフォルトの名無しさん
09/05/12 11:40:49
ComboBoxの項目の表示色を項目内容によって変えるとき
DrawItem()でDrawString()すれば良いんだけど。
ComboBoxの数が多いのでユーザコントロールにするとしたら
どこでDrawString()すればいいんだろう?
OnDrawItem()で直接書いちゃっていいのかな?

466:デフォルトの名無しさん
09/05/13 23:19:39
その前にやってみれば?

467:デフォルトの名無しさん
09/05/14 01:11:13
>>465
OnDrawItemでいいよ。

468:デフォルトの名無しさん
09/05/14 09:36:16
ありがとう。

OnDrawItem()でうまくいきました。
ついでに背景色とかも変更してみます。



469:デフォルトの名無しさん
09/05/14 16:20:55
指定したディレクトリ以下のすべてのファイルを効率的に列挙していく場合どのクラス、メソッド使うのがいいですか?
GetFilesみたいにリストを作って返すのではなくWin32APIのFindFirstFile/NextFile相当のものが使いたいんですが。

470:デフォルトの名無しさん
09/05/14 17:01:05
Linq

471:デフォルトの名無しさん
09/05/14 17:08:21
FindFirstFile/NextFile

472:デフォルトの名無しさん
09/05/14 17:18:48
.NETは非コンテナに対するイテレータが弱すぎる

473:デフォルトの名無しさん
09/05/14 17:29:26
yieldがありゃ十分だろ

474:デフォルトの名無しさん
09/05/14 17:30:22
>>469
.NET Framework 4.0 のGetFiles

475:デフォルトの名無しさん
09/05/15 02:24:16
実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
その手のライブラリなど、ご存知の方いますでしょうか? Reflection で自前
で再帰するしかない?


476:デフォルトの名無しさん
09/05/15 02:42:10
CodeProjectとか探せばありそうな予感。
まぁ実装してもたいした手間じゃな下げだけど。

477:デフォルトの名無しさん
09/05/16 13:13:47
>>475
>実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、

object階層の意味がよく分からないけど、
Visual Studioのウォッチウィンドウみたいな感じで
インスタンスの情報を展開してくれるのが欲しいってこと?

だったらオブジェクト参照が循環している場合もあるので注意かな。
シリアライザ/デシリアライザみたいにグラフとして扱うか、
ウォッチウィンドウみたいにクリックするまで子ノードの評価を行わないといった
工夫が必要になると思う。

478:475
09/05/16 16:25:07
>>476
いや、それが結構面倒くさい。CodeProject はなさそうでした。

>>477
なるほど、シリアライズして XML を使うのもありですね。
どうもありがとう。

479:デフォルトの名無しさん
09/05/16 16:58:37
ソースいじくれるのならExpandObjectConverterでPropertyGridとかがお手軽じゃね

480:90
09/05/16 20:36:16
すいません、教えてください。

ユーザコントロールを作成していますが、
既存の型を使用した場合は問題ないのですが、enum型を定義して
使用すると、このコントロールを使用するプログラムで
デザイン時に初期値を選んだ場合は問題ないのですが他の候補(この場合type2)を
セットすると
「'System.Windows.Forms.Control.ControlCollection' に 'xxxComboBox' の
定義が含まれておらず、型 'System.Windows.Forms.Control.ControlCollection' の
最初の引数を受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。」のエラーになります。


481:デフォルトの名無しさん
09/05/16 20:39:20
名前を間違えました。90のかた申し訳ありません。
ソースはこんな感じです。

namespace Controls
{
public partial class xxxComboBox : ComboBox
{
public enum DrawingMode : int
{
type1 = 0,
type2 = 1
}

private DrawingMode _ItemDrawingMode;
[Category("Custom")]
[DefaultValue(typeof(DrawingMode), "type1")]
[Browsable(true)]
public DrawingMode ItemDrawingMode
{
get { return _ItemDrawingMode; }
set { _ItemDrawingMode = value; }
}



482:デフォルトの名無しさん
09/05/16 20:40:31
private Color _FirstBGColor;
[Category("Custom")]
[DefaultValue(typeof(Color), "White")]
[Browsable(true)]
public Color FirstBGColor
{
get { return _FirstBGColor; }
set { _FirstBGColor = value; }
}

public xxxComboBox()
{
InitializeComponent();
_ItemDrawingMode = DrawingMode.type1;
_FirstBGColor = Color.White;
}
...
}

使用する側では参照設定にこのdllを指定しています。
FirstBGColorプロパティは他の色に変更しても正しくビルド・実行できます。
DraingModeのプロパティをtype2に変更してビルドすると上記の
エラーがでます。

エラー箇所を見ると
this.xxxComboBox1.ItemDrawingMode = Controls.xxxComboBox.DrawingMode.type2;
の行が解決できないようです。
using Controls;を加えても同じです。
ControlCollectionに追加するにはどのメソッドを使用すればいいのでしょうか?



483:デフォルトの名無しさん
09/05/16 22:32:52
使う側を
this.xxxComboBox1.ItemDrawingMode = 1;
にしたらエラーでないよね?


484:デフォルトの名無しさん
09/05/16 22:41:13
何もおかしなことはない。エラーメッセージの通り

this.Controls は Control.ControlCollection クラスのインスタンスだろ

485:480
09/05/17 08:30:40
>>483, 484
ありがとうございます。

this.xxxComboBox1.ItemDrawingMode = 1; は型が違うのでエラーになります。

呼び出し側でusing Controls;を定義して、コードで(例えばForm1_Load内で)
xxxComboBox1.ItemDrawingMode = xxxComboBox.DrawingMode.Type2;
のように書けば、正常にビルド・実行可能です。
ただし、先程書いたようにデザイナからプロパティ値を変更すると
エラーになります。ControlCollectionにxxxComboBoxを追加して
導出してやらないといけないのかと思いますが、やり方が分かりません。


486:デフォルトの名無しさん
09/05/17 09:23:29
名前空間にglobal::Controlsなんてのはやめようよ
せめてライブラリ名.Controlsに

487:480
09/05/17 11:08:57
お騒がせしました。解決しました。

そうだよな、namespaceの名前を変えよう・・・
ということでControlsからmalib.Controlsにnamespaceを変更したら
ちゃんと動作しました。


488:デフォルトの名無しさん
09/05/20 21:40:44
この言語笑うしかないわw いい意味で。
今C#の勉強の意味もこめてC#のいろんな機能をフルに利用するつもりで
ちょっとしたプログラムを作っているんだが
本当にC++、Javaから発展してきた言語とは思えん。

まず、DataGrid使って表を作る。
row.SetValues(1,2,3)とやることで、一行のデータを一気に入れられる。

そこで一行全部の背景色をつけたいと思った。
SetValuesと同じように、row.SetStyle(style)とやりたかったが、
残念ながらSetStyleはセルごとしかなかった。

DataGrid(正確にはDataGridViewRow)になんでSetStyleが無いんだよ!って
怒るような事例なのに、拡張メソッドを使うことで継承を利用せずに
いとも簡単にrow.SetStyle()を付け加えることができるとはw

489:デフォルトの名無しさん
09/05/20 23:09:50
>>488
それでC#にケンカ売ってるつもり?
まさかそんなわけないよねwww

490:デフォルトの名無しさん
09/05/20 23:13:11
C#はあれだよあれ
メロンパン言語だ

491:デフォルトの名無しさん
09/05/20 23:25:01
どう見ても誉めてるじゃん

492:デフォルトの名無しさん
09/05/20 23:36:57
コンポーネントと言語をごっちゃにして、的外れだけどな。

493:デフォルトの名無しさん
09/05/21 00:24:35
うん
C# の話じゃなくてフレームワークの話だな

494:デフォルトの名無しさん
09/05/21 00:25:41
C#じゃなくてWinFormsの話だな。
C#はソースが読みやすいとか、一貫した仕様でスッキリしてて覚えやすいとか色々あるけど、
何よりVSっていう最強のIDEが付っきりで開発支援してくれるのが最大のアピールポイントだと思う。
VSが無ければ他の言語でいいけど、一回VS+C#で慣れると他の言語やる時にかなりメンドクサイ。

・・・あれ、ここって相談室だよな?

495:デフォルトの名無しさん
09/05/21 00:34:35
C#ならまずdelegateを褒めたいな。リスナめんどい。

496:デフォルトの名無しさん
09/05/21 00:42:09
Enumerable.DistinctにはなぜFunc<TSource, TSource, bool>を受け取るオーバーロードがないんだ

497:488
09/05/21 00:44:37
>>492
> コンポーネントと言語をごっちゃにして、的外れだけどな。

言っとくけど、言語の話だよ。
mix-inといえばわかるかな?

(標準ライブラリの)クラスに、メソッドを後付できる。
という言語仕様。

498:デフォルトの名無しさん
09/05/21 00:47:05
拡張メソッドは便利だな、で終わる話なのに、つらつら書かれても・・・
ってことを言ってるんだと思うよ。

499:デフォルトの名無しさん
09/05/21 00:48:35
俺「拡張メソッドは便利だな」
他の人「そうだな」

で終わってくれればいいのに、
コンポーネントとかWinFormsの話だなとか
間違ったこと言い出すからレスせざるを得なかったんだよw

500:デフォルトの名無しさん
09/05/21 00:49:48
>>497
あきらかに主題の文章量と副題の文章量の比がおかしいww
おまえは女かwwwwww

501:デフォルトの名無しさん
09/05/21 00:51:06
>>499
先に言っとく。基地外(500など)は無視したほうがいいよw

502:デフォルトの名無しさん
09/05/21 00:52:42
>>501
おけw

間違ったことを何も言っていないのに、
なんで変なやつがまとわりついてくんだか。
こちとら本格的にC#はじめて五日目だ。なめんじゃねーぞw

503:デフォルトの名無しさん
09/05/21 00:54:31
それでは次の型どうぞ〜

504:デフォルトの名無しさん
09/05/21 01:01:24
System.Collections在住 : ArrayList さん

最近みんなジェネリック、ジェネリックって言って僕を呼んでくれないんです。
昔はあんなにちやほやされてたのに・・・。
これから僕はどうしていけばいいんでしょうか。

505:デフォルトの名無しさん
09/05/21 01:02:54
つまらん

それでは次の型どうぞ〜


506:デフォルトの名無しさん
09/05/21 01:42:30
ブラウザの機能が安定しません。

public Form1()
{
InitializeComponent();
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}

たったこれだけの実装ですが、googleのページがすぐに表示されるときと
ずっとまっ白でまったく表示されない時があります。
環境は、XPProSP2、IE6です。
どなたか解決方法を知りませんか?

507:デフォルトの名無しさん
09/05/21 01:47:34
つける薬は無い

508:デフォルトの名無しさん
09/05/21 01:48:23
ロード後に Navigate しても状況は一緒?

509:デフォルトの名無しさん
09/05/21 01:54:11
ロード後にというのがよくわかりませんが、
ボタンをひとつつけて、その中でNavigateしても状況はかわりません。
非常に安定しないんです。

510:デフォルトの名無しさん
09/05/21 01:56:19
ウェブブラウザーコントロールは一度「about:blank」を表示してから
目的のページを表示するんが一般じゃなかったっけ?

511:デフォルトの名無しさん
09/05/21 02:04:35
>>510
書き忘れましたが、それも試して効果はありませんでした。

public Form1()
{
InitializeComponent();
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}

512:デフォルトの名無しさん
09/05/21 02:06:14
じゃあ、無理じゃね? 素直にリロードしてもらえよ。

513:デフォルトの名無しさん
09/05/21 02:13:33
わかりました。
自分でもかなり調べてダメだったので、諦めることにします。
ありがとうございました。

514:デフォルトの名無しさん
09/05/21 02:51:04
前にAxWebBrowser使ってた時に俺もそんなことあったな。Navigateするタイミングだと思うんだけど。
起動時にNavigateするようにした時に稀にあった。
とりあえず、起動時にいきなりNavigate使う時はコンストラクタじゃなくてLoadイベントなり登録してそこでやった方がいいと思う。
それでこの症状が直るわけではないと思うけど。

515:デフォルトの名無しさん
09/05/21 12:03:16
>>506

webBrowserだけじゃなくて
IE6のそのものが、ずっと真っ白のままで表示されないことがあるんだが・・・

AVGのリンクスキャナを停止してからは少しマシになったかも?
普段はChromeを使っているから見なかったことにしてるけど。

516:デフォルトの名無しさん
09/05/21 14:18:15
>>506とおんなじコードで試してみたけど、
何度やっても問題なく表示されるな。

環境はXPProSP2、IE6、VS2008Pro

517:デフォルトの名無しさん
09/05/21 14:49:26
webBrowser1.BusyがTrueのときそうなるんじゃないか?

518:デフォルトの名無しさん
09/05/21 15:58:51
>>515
ウィルス対策ソフトは切ってます。

>>516
ほんの2日ほど前まで私もその環境でしたが、なぜか動きません。
XPProSP3、IE8、VS2008Exにしましたが、改善はありません。

>>517
ちょっと見てきます。

519:デフォルトの名無しさん
09/05/21 16:02:12
取り敢えず514な
System.Windows.Forms.WebBrowserはコントロール上に乗って無くても大丈夫なように作られてるけど一応

520:デフォルトの名無しさん
09/05/21 16:23:25
>>517
■PG
public Form1()
{
InitializeComponent();
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.yahoo.co.jp)");
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);

}

■出力
IsBusy:False
'Test.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll' が読み込まれました
IsBusy:False


■結果
画面まっ白


>>514
LoadイベントでやってもThread.sleep(5000)をnavigateの前後に入れてもまっ白になることが多々ありました。

521:デフォルトの名無しさん
09/05/21 18:07:17
Shownを使え

522:デフォルトの名無しさん
09/05/21 22:09:23
IE でダメなら、WebBrowser でもダメだろよ。

523:デフォルトの名無しさん
09/05/21 22:32:09
ReadStateがcompleteになるまで待ったほうがいいんじゃないかな?

524:デフォルトの名無しさん
09/05/21 22:49:46
ContextMenuStripに追加したToolStripMenuItemの
DropDownItemsに追加したToolStripMenuItemのイメージ余白の消し方を教えてください。

1階層目はShowImageMarginをFlaseにすれば消せるのですが
2階層目以降のToolStripMenuItemは余白が出たままになってしまいます…。

525:デフォルトの名無しさん
09/05/22 01:41:24
>>313さんのMecabの返り血をAnisで受けると文字化けするんですけど、
文字化けしない方法をどなたか教えてください orz

526:デフォルトの名無しさん
09/05/22 01:44:57
キャー!

527:デフォルトの名無しさん
09/05/22 01:46:46
PtrToStringAuto だとどうなる?

528:デフォルトの名無しさん
09/05/22 02:00:25
>>527
こんななりました。。
?慣???麩????????????弊(ry

529:デフォルトの名無しさん
09/05/22 02:26:54
Shift_JIS(CP932)をUTF-8と誤認識してるんじゃね。

530:デフォルトの名無しさん
09/05/22 03:09:18
俺はこれでできた

[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static IntPtr mecab_sparse_tostr(int m, byte[] str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);

int mecab = mecab_new2("");
this.textBox2.Text = Encoding.Default.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Unicode.GetBytes(
Marshal.PtrToStringUni(mecab_sparse_tostr(mecab, Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(
this.textBox1.Text))))))).Replace("\n", "\r\n").Replace("\r\r\n", "\r\n");
mecab_destroy(mecab);

531:デフォルトの名無しさん
09/05/22 06:06:52
これはひどいコード・・・

532:デフォルトの名無しさん
09/05/22 06:24:15
なんのためのマーシャリングなのかって感じだな

533:デフォルトの名無しさん
09/05/22 14:52:19
printPreviewDialog1.Bounds = this.Bounds;
printPreviewDialog1.ShowDialog();

こう書いても何故かthisと重なって表示してくれない
大きさは反映されるのに位置が自動的に決定されてしまう
解決方法知ってる方いたら教えてください

534:デフォルトの名無しさん
09/05/22 15:08:59
ウィンドウの初期位置を指定するプロパティがあるからそれをManualだったかなんかにする

535:デフォルトの名無しさん
09/05/22 15:32:25
PrintPreviewDialogにStartPositionプロパティは無いみたいです

536:デフォルトの名無しさん
09/05/22 15:40:11
.NET Framework クラス ライブラリ
PrintPreviewDialog..::.StartPosition プロパティ

537:デフォルトの名無しさん
09/05/22 15:49:14
インテリセンスに出ないので無いと思ってましたが頑張って手打ちしたら出来ました
ありがとうございました

538:デフォルトの名無しさん
09/05/22 15:55:42
>頑張って手打ち
ワロタ
気持はわかる

539:デフォルトの名無しさん
09/05/23 18:31:31
>>424 クソワロタ

540:デフォルトの名無しさん
09/05/24 01:39:48
笑い事じゃねえよ!

541:デフォルトの名無しさん
09/05/24 11:01:56
いや、声出して笑っちゃったよw
ユニークな仕事だなw

542:デフォルトの名無しさん
09/05/24 12:58:03
たぶん日本で唯一だy。食いっぱぐれなくていいな。

543:デフォルトの名無しさん
09/05/24 14:30:22
\拍手を打つ仕事があるときいてやってきました/

544:デフォルトの名無しさん
09/05/24 16:14:58
ListBoxの、選択されたアイテムを囲っている破線を消したいのですが可能でしょうか?
なぜか一瞬だけ、選択していないアイテムに破線が出るので消したいと思っています

545:デフォルトの名無しさん
09/05/24 16:45:38
>>544
独自描画にすれば消せるんじゃないかな。

546:デフォルトの名無しさん
09/05/26 10:30:51
その破線はキーボードフォーカスの存在を見せるためにある。
勝手に消されると状況によってはユーザーが混乱すると思うが
それでもいいなら>>545の言うようにオーナードローしては。

547:デフォルトの名無しさん
09/05/29 20:30:10
label.Text = "Value: ";
このようなValueを表示するラベルを貼りました。
スペースの後に増減する数字を代入していくのですが、どうやるのがいいのですか?
"Value: "が無い場合は単純で、
labal.Text += i.ToString();
でよかったのですが、、

548:デフォルトの名無しさん
09/05/29 20:45:57
>>547
labal.Text += i.ToString(); = labal.Text = labal.Text + i.ToString();

549:デフォルトの名無しさん
09/05/29 20:49:05
>>547
string.Format

550:デフォルトの名無しさん
09/05/29 22:01:44
if(i==0)
  label.Text = "Value: 0"
else if
....

551:デフォルトの名無しさん
09/05/30 17:38:53
コンストラクタ名のとこにクラス名書かなきゃならないという無様な仕様は
未来永劫そのままなの?

552:デフォルトの名無しさん
09/05/30 17:59:09
そりゃ、そんな根幹にかかわるところ変更はできないだろ。
嫌なら新しい言語作るしか。

553:デフォルトの名無しさん
09/05/30 18:11:25
不自然かもしれないけどC++やJavaで十分に受け入れられてるからな
はじめの頃のC#ではキーワードを少なくすることが重視されてたみたいだし

554:デフォルトの名無しさん
09/05/30 18:23:57
Javaの、ソースファイル名とpublicクラス名を同じにしとかないとエラーだよーん。
の舐めた仕様よりはマシになってるとは思う。

555:デフォルトの名無しさん
09/05/30 18:34:15
>>551
同感。同じことを2度書くのは無駄だよな
もう.ctorでいいのに

556:デフォルトの名無しさん
09/05/30 18:39:31
まあ、元々がC++プログラマーを逃がさないようにする目的があったから、
あの構文は変えようがないでしょ。

C# 開発者的に、C++ との互換性重視しすぎて失敗したなぁと思う部分もちらほらあるみたいなんで、
今よりさらにもうちょっと .NET が普及したら、その辺りなおした新言語を作るのもありかもしれないけど。


557:デフォルトの名無しさん
09/05/30 18:43:24
Font Font = new Font

558:デフォルトの名無しさん
09/05/30 18:44:46
>>557
var Font = new Font();

559:デフォルトの名無しさん
09/05/30 18:45:32
newはインテリセンスがなきゃ発狂する構文だが、あるから我慢できるレベル。
var使う事自体が冗長

560:デフォルトの名無しさん
09/05/30 18:50:41
>>559
いやー、var は要るよ。
宣言と代入は分けたい。

new なくすとすると、例えばどういう構文?
C++ のスタック割り当て時みたいに、クラス名() だけとか?

561:デフォルトの名無しさん
09/05/30 18:53:18
Python みたいに font = Font() とか書けたら嬉しさのあまり自決する

562:デフォルトの名無しさん
09/05/30 18:55:01
>>561
それはなぁ、型名と同じ名前のプロパティ定義できる C# だと文法的にあいまいになりそう。


563:デフォルトの名無しさん
09/05/30 18:57:39
後からの拡張とか考えると、new とか var とかの構文解析の起点になる部分は削らない方がいい。
font = Font() なんて認めたら、多分、後から機能足せなくて泣く。

564:デフォルトの名無しさん
09/05/30 19:13:55
結局コンストラクタの構文は無駄?必要?

565:デフォルトの名無しさん
09/05/30 19:16:03
>>561
それ出来るとIntelliSenseの暴発を招くから、今の型推論によるvarでの定義がバランス的にちょうどいい。

566:デフォルトの名無しさん
09/05/30 19:16:07
今のC#の方向性考えると必要。
C#の原型とどめないような改変が許されるんなら別にどっちでも。

567:デフォルトの名無しさん
09/05/30 19:19:12
キーワードconsを導入すれば万事解決

568:デフォルトの名無しさん
09/05/30 19:31:22
ぶっちゃけなれればどうでもいい

569:デフォルトの名無しさん
09/05/30 19:50:07
>>565
同感、C#は強く強くインテリセンスを意識した文法であって欲しい。
でないと、今のライブラリでさえ全体を憶えきれないのにこういうサポート外されたら気絶する。

570:デフォルトの名無しさん
09/05/30 21:19:51
何でPythonがはやってるんだ?
前に来た時はDが話題だったような…

571:デフォルトの名無しさん
09/05/30 22:39:22
個人的にはもう少し型を意識したJavaScriptのような言語がはやって欲しいな。

572:デフォルトの名無しさん
09/05/30 22:43:12
>>571
JavaScriptは十分はやってるだろ

573:デフォルトの名無しさん
09/05/30 22:47:18
PowerShellいいぞ。PowerGUIのコード補完との相性もかなり良好。

$a = [xml]"<data>foo</data>"

$a.

で候補にdataが出てくるんだぜ。
ソースコードじゃなくプロンプトで実行しながらじゃないと駄目だけど。

574:デフォルトの名無しさん
09/05/30 23:02:46
「C# .NETアプリケーション開発 徹底攻略 C# 3.0/.NET Framework 3.5対応」
という本で、FormのLoadイベントはコンストラクタ完了よりも先に実行される(ことがある?)
とか書かれてるんだけどほんとにあるの?

どうもこの本思い込みで書いてるような部分も見られてちと怪しんだが…


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4322日前に更新/229 KB
担当:undef