C#, C♯, C#相談室 Part60at TECH
C#, C♯, C#相談室 Part60 - 暇つぶし2ch550:名無しさん@そうだ選挙に行こう
10/07/11 23:10:04
>>548
Silverlightプラグインはほとんどネイティブコードだ
.NETをスクリプティングに使ってるだけで下層のメディア処理はネイティブコードに丸投げ
>>549
そういう仕様じゃなかったっけ

551:名無しさん@そうだ選挙に行こう
10/07/11 23:18:06
そうなの?マルチプラットフォームって聞いてたから。

552:名無しさん@そうだ選挙に行こう
10/07/11 23:21:51
移植するときはネイティブコード部分を入れ替えるだけで済むから
その上で動くマネージコードはマルチプラットフォームだよという意味

553:デフォルトの名無しさん
10/07/11 23:40:26
>>550
ありがとう。見つけられた。

URLリンク(msdn.microsoft.com)
>その他
>上記以外のすべての文字
>文字が結果の文字列にそのままコピーされます。

色々鑑みて「 "{0:#,#'以上'}{1:#,#'以下'}" 」でイケそう。ありがとう!

554:デフォルトの名無しさん
10/07/12 00:43:01
すみません。自分で関数を作りました。もし、戻り値をint型とするとき
成功したら0を返すのか1を返すのかで迷っています。

if文の条件判定でその関数を使う場合1を返したほうがいいですし、
なんかC言語のmain関数なんかは、正常終了の場合、0を返します。

どっちがいいのでしょうか?bool型を使うと簡単なのはわかりますが、int型を戻り値とする場合は
どちらのほうが的確でしょうか?

555:デフォルトの名無しさん
10/07/12 00:49:42
どっちでもいいよ。

556:デフォルトの名無しさん
10/07/12 00:50:59
初期値に0を持たせるのが普通。
その関数で正常終了と判定した後にどうなるかで変わるんじゃないかな。
知らんけど。

557:デフォルトの名無しさん
10/07/12 00:52:54
成功失敗にint型とか仕事なら首に出来る仕様だな。

558:デフォルトの名無しさん
10/07/12 00:54:37
C# なら void にして、失敗なら、例外を投げる。

559:デフォルトの名無しさん
10/07/12 00:56:42
列挙型を返すのは?

560:デフォルトの名無しさん
10/07/12 01:02:32
さあ

561:デフォルトの名無しさん
10/07/12 01:06:42
もう S_OK でいいよ

562:デフォルトの名無しさん
10/07/12 01:17:58
成功か失敗理由かでいいよ

563:デフォルトの名無しさん
10/07/12 01:33:33
うん

564:554
10/07/12 01:37:57
みなさん、どうもありがとうございます。

C言語の文字列操作関係の関数は成功すると0を返すみたいなので、それにならいます(><;)

いろいろと私のせいで議論してくれたみたいで、ありがとうございました(><;)

565:デフォルトの名無しさん
10/07/12 01:42:36
うぜええええ(><;)

566:デフォルトの名無しさん
10/07/12 01:50:25
なんでこんなレベル低いやつがこっちで質問してんだ


567:デフォルトの名無しさん
10/07/12 01:51:51
>>554
C# で書くんなら絶対 bool にしろ。

C 言語とかとの相互運用目的なんだったら、非 0 が true。

main 関数とかの戻り値はあれ、エラーコードなのよ。
HasError == false だから 0。

568:554
10/07/12 02:10:52
>>567
そうなんですね。非0がtrueの方がいいんですね。じゃあ、書き直します。

基本はbool でプログラムしてるんですが、ちょっとしゃれでC言語風に書いてみたいなあと思いまして・・

みなさん、スレ汚しすみません。初心者スレで聞けばよかったです。

569:デフォルトの名無しさん
10/07/12 06:51:13
>>568
C言語は論理式で非0をtrueと扱う言語だから。
C#とかみたいにboolが用意されてる言語ならboolを使うべき。

570:デフォルトの名無しさん
10/07/12 07:12:22
>>565
おはようございます(><;)

571:デフォルトの名無しさん
10/07/12 07:25:28
おい馬鹿やめろ

572:デフォルトの名無しさん
10/07/12 07:28:10
うわなにをする(><;)

573:デフォルトの名無しさん
10/07/12 07:33:15
>if文の条件判定でその関数を使う場合1を返したほうがいいですし、
if(func()) return; /* エラー検出して強制終了とかの場合こうしねえか? */

574:デフォルトの名無しさん
10/07/12 08:45:46
フォームアプリケーションで、ボタンを配置して
そこにフォーカスをあてた状態でリターンキーを押すのですが、
ボタンをおせません。マウスでクリックしたときのような
アニメーションも発生しません。
ボタンを押せるようにするにはどうすればいいでしょうか?

575:デフォルトの名無しさん
10/07/12 09:30:34
そういう風に作ればいい

576:デフォルトの名無しさん
10/07/12 11:30:25
C#2010のコード自動調整(自動でタブを追加したり
switch文を改行したりする機能)って有効にしたまま使ってる?



577:デフォルトの名無しさん
10/07/12 16:48:58
オートフォーマット切るとか考えたこともないわ
コードのフォーマットにこだわって手修正したりする奴は迷惑なだけ

578:デフォルトの名無しさん
10/07/12 18:38:16
デフォの括弧の位置だけは気に入らないけど。。。デフォのままで使ってる。

579:デフォルトの名無しさん
10/07/12 18:48:22
そういや全てのソースを整形するにはどーすんの?

580:デフォルトの名無しさん
10/07/12 19:48:06
返り値をboolで返すのも、IsXXXみたいな十分に明示的なネーミングのメソッドの場合は除くとして、
一般にはうんこだとされてる手法だと思うけど....
そんな程度の人が偉そうに命令口調で講釈垂れてるんだから嫌になるな

581:デフォルトの名無しさん
10/07/12 19:50:15
> 一般にはうんこだとされてる手法だと思うけど....

思わない

582:デフォルトの名無しさん
10/07/12 19:53:10
まあ、馬鹿な君ならそうでしょうとも

583:デフォルトの名無しさん
10/07/12 19:54:38
一般に続く名詞はなんだろうな

584:デフォルトの名無しさん
10/07/12 19:56:00
たとえばTryParseは成功したらTrue、失敗したらFalseだけど
>>580の命名規則にしたがってないからうんこメソッドだな

585:デフォルトの名無しさん
10/07/12 20:07:19
Tell, Don't Ask原理主義者か?何事もほどほどに。

586:デフォルトの名無しさん
10/07/12 21:27:17
最近だとHashSet<T>.Addは要素が重複してても例外を投げずにfalseを返す

587:デフォルトの名無しさん
10/07/12 22:00:20
既にあるVC#プロジェクトでlinq-to-xmlを使いたく、まず最初に
  using System.Xml.Linq;
と宣言を追加しただけの状態でコンパイルしてみたのですが、
  型または名前空間名 'Linq' は名前空間 'System.Xml' に存在しません。アセンブリ参照が不足しています。
というエラーがでるのですが、どうすれば解決できるのですか?

588:デフォルトの名無しさん
10/07/12 22:04:43
System.Linq.Xml.Linq.dllを参照設定に追加する
ターゲットフレームワークは.NET3.5か.NET4に設定する必要がある

589:デフォルトの名無しさん
10/07/12 22:07:14
あきらめろ

590:デフォルトの名無しさん
10/07/12 22:13:00
>>588
ありがとうございます。
対象のフレームワークは、.NerFramework3.5でした。
System.Linq.Xml.Linq.dllの参照設定とはどのようにやるのですか?

591:デフォルトの名無しさん
10/07/12 22:15:29
ねーねー。なんで初心者スレ行かないの?

592:デフォルトの名無しさん
10/07/12 22:21:04
ソリューションエクスプローラで参照設定を右クリックして参照の追加を選ぶ
.NETタブのSystem.Linq.Xml.dllを選んでOK
LINQ to XMLってちょっと癖があって結構難しいよ?
ちゃんとわかってる人のための便利なオモチャって感じ

593:デフォルトの名無しさん
10/07/12 22:33:16
ちゃんとわかってる人のための便利なオモチャって感じだね

594:デフォルトの名無しさん
10/07/12 22:40:03
>>592
おお!できました!
ありがとうございました!

595:デフォルトの名無しさん
10/07/12 22:44:49
>>594
お役に立ててなによりです

596:デフォルトの名無しさん
10/07/12 22:51:40
いえいえどういたしまして

597:デフォルトの名無しさん
10/07/13 20:39:00
File.Replaceってsoruceとdestinationが同じドライブでないとダメなようだけど、
こんな使いにくい制限をわざわざ設けてる理由って何なんだろう。

ファイルを上書き保存する時なんかに、作業ディレクトリに一旦一時ファイルを
作ってから元のファイルを置き換える用途を当然想定してるんだと思ってたが、
こんな制限があったらこういう使い方できないよね。

598:デフォルトの名無しさん
10/07/13 20:47:07
その用途ならMoveでもCopyでもいいだろ

599:デフォルトの名無しさん
10/07/13 20:54:39
馬鹿っぽい(たぶん「ぽい」ではないんだろうが)物言い....

600:デフォルトの名無しさん
10/07/13 20:59:40
>>597
物理的にファイル動かさなくて済むからでしょ。

601:デフォルトの名無しさん
10/07/13 21:05:49
>>600
それは事実としては正しいけど、
それって>>597みたいな制限を正当化する理由になるかね?

602:598
10/07/13 21:16:23
ファイルシステム上のエントリの参照先を変更するだけなんだから
当然ファイルの実体は全部同じボリューム上にある必要があるだろ

603:デフォルトの名無しさん
10/07/13 21:18:39
>>602
言ってる意味分かってる?
だから、そういうシステムの都合があるにせよ、
そのシステムの都合をFile.Replaceに「押し付ける」理由をお聞きしてるわけですが。

604:デフォルトの名無しさん
10/07/13 21:29:48
>>603
MSに聞けとしか。

想像だけどアトミックな操作に使ってくれ(そしてそれは物理ボリュームが別だと無理)ってことなんじゃないの?
同じディレクトリ内の作業でバックアップファイル作るために使うとかさ。

それ以外は Move とか Copy とか使えってことなんじゃないのかね。



605:598
10/07/13 21:31:06
WIN32のReplaceFileをラップしただけだろっつうか
ファイルシステムに依存した機能だからこそアトミック性が保証できるんだろっつうか
逆にファイルシステムの都合に依らないファイル操作なんてありえんのかって話だが

606:デフォルトの名無しさん
10/07/13 21:35:25
なぁ、formの無いプログラムってどうやるん?

タスクトレイだけですませたいんだけど。
フォームがないとデザイン画面でnotifyiconとか作れないし。

607:デフォルトの名無しさん
10/07/13 21:42:00
態度がでかいな

608:デフォルトの名無しさん
10/07/13 21:44:36
あの、すみません。

Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?

タスクトレイだけですまたいんです。

フォームがないとVisualStudioのデザイン画面を使い
NotifyIconコントロールなどを貼り付けたりすることができません。

よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。


609:デフォルトの名無しさん
10/07/13 21:48:53
改行が多いな

610:デフォルトの名無しさん
10/07/13 21:51:48
あの、すみません。Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?タスクトレイだけですまたいんです。
フォームがないとVisualStudioのデザイン画面を使いNotifyIconコントロールなどを貼り付けたりすることができません。よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。

611:598
10/07/13 21:53:03
ノリがいいな

612:デフォルトの名無しさん
10/07/13 21:53:40
>>604
ただの愚痴だけど、>>597みたいな処理を安全に書くのって意外と手間だからさ。

安全っていうのは、例えば仮に何らかの理由でオリジナルのファイルを
作業ディレクトリに作った一時フォルダで置き換えられないとしても、
最低限オリジナルのファイルが失われないことを保証しようと思うと結構面倒。

こういうのこそライブラリで用意されるべきだと思うんだけどな。

613:デフォルトの名無しさん
10/07/13 21:54:42
すまたin!

614:デフォルトの名無しさん
10/07/13 21:57:20
今必要だけどないものをウダウダ言ってもムダ
その間にソース書いたほうがよっぽど生産的

615:デフォルトの名無しさん
10/07/13 21:59:14
>>608
notifyIcon.Visible = true;
しといて
Application.Run();
呼ぶだけ。
これでメッセージループが動く。
終わるときは、
Application.Exit();
を呼ぶ。

616:608
10/07/13 22:03:32
>>615
どうも、ありがとうございます。それだけでできるんですか?
とても助かりました。今からやってみます!
他の人もどうもありがとうございました!

617:デフォルトの名無しさん
10/07/13 22:29:35
C#の初心者向けで良い本何かありますか?
あと、C#のソースをJAVAに移植するとしたら、どんな事に気をつければよいですか?

618:デフォルトの名無しさん
10/07/13 22:35:52
@ITで十分
本なんていらん
どうしてもというなら@ITの本があるからそれ買え

619:デフォルトの名無しさん
10/07/13 22:42:28
>>616
最小構成サンプル
using System;
using System.Windows.Forms;
namespace nicon {
public class nicon {
System.Windows.Forms.NotifyIcon icon
= new System.Windows.Forms.NotifyIcon();
System.ComponentModel.ComponentResourceManager res
= new System.ComponentModel.ComponentResourceManager(typeof(nicon));
nicon() {
icon.Icon = (System.Drawing.Icon)res.GetObject("nicon");
icon.ContextMenu = new ContextMenu( new MenuItem[] {
new MenuItem("Exit", delegate { Application.Exit(); } )
});
}
[STAThread]
public static void Main(string[] args) {
nicon inst = new nicon();
inst.icon.Visible = true;
Application.Run();
inst.icon.Dispose();
}
}
}

620:デフォルトの名無しさん
10/07/13 23:42:52
StreamReaderってファイルが無かったりアクセス権がなかったりしたら
例外をスローもせずに完全に固まらないか?

621:デフォルトの名無しさん
10/07/13 23:48:01
んなこたーない。

622:デフォルトの名無しさん
10/07/13 23:56:27
おまえアク禁な

623:デフォルトの名無しさん
10/07/13 23:56:44
>>621
いやなる
Windows7 64bit C:\ルートに存在しないファイル名でStreamReaderやってみそ

624:デフォルトの名無しさん
10/07/13 23:58:00
StreamWriterの方もだわw

625:608
10/07/14 00:00:19
>>619さん。

ぬぁー!どうもありがとうございます。すごい参考になりました!
もう、あとは私の個人的な機能を付加するだけですね(;^_^

個人的な機能もたいしたことがないので、ちょっと追加するだけでよさそうです。
こんなものをパッと書けるなんてすごいですね。

ネットを今、あさってる最中でした。ありがとうございました。ComponentResourceManagerとかすごい参考になります。


626:デフォルトの名無しさん
10/07/14 00:03:04
>>623
いやだよ。

627:621
10/07/14 00:09:35
>>623
Windows7 Ultimate x64 + Visual Studio 2010 Professional

.NET2.0/4.0, x86/x64/AnyCPU, Debug/Release の12通りの組み合わせで試してみたけど、
どの組み合わせでもFileNotFoundExceptionが発生するな。とりあえずソース晒せ。
ちなみに俺はこう書いた。

using (var sr = new StreamReader(@"C:\a.txt"))
{
}


628:デフォルトの名無しさん
10/07/14 00:29:37
using (StreamReader sr = new StreamReader(@"c:\a.txt"))
{
   String data = sr.ReadToEnd();
}
MessageBox.Show("aaa");

複雑なんでFormLoadにこれを書いて試したがやっぱりメッセージが出てこない

629:デフォルトの名無しさん
10/07/14 00:31:21
ちなみにVisualStudio2008の.Net2.0 Windows7 64bit
Windows7はクリーンインストール後、特にフォルダの権限とかいじってない状態です

630:デフォルトの名無しさん
10/07/14 00:35:46
>>625
あのさあ・・・初心者スレに行ってくれないかな?

631:デフォルトの名無しさん
10/07/14 00:43:34
>>628
そりゃc:\a.txtが存在してないならMessageBox.Showが呼び出されることは決して無いだろうが

632:621
10/07/14 00:47:07
>>628
確かにVS2008でデバッグ実行すると、例外が捕捉されないな。

出力ウィンドウを見る限り例外自体は発生しているし、デバッグなしで実行(Ctrl+F5)すれば
ちゃんと例外ハンドラが働くから、VS2008のデバッガの問題っぽい。

メッセージボックスが表示されないこと自体は>>631の言うとおり正常な動作。

とりあえず StreamReader は避けて File.ReadAllLines とか File.ReadAllText を使ったら?

633:デフォルトの名無しさん
10/07/14 00:59:40
>>532
ああほんとだ、デバッグモードのしとけば何か原因が拾えるという思い込みが逆に命取りだった
普通に実行したら例外が出てるね
なんじゃこりゃ

634:デフォルトの名無しさん
10/07/14 01:05:41
100ずれてますよ

635:デフォルトの名無しさん
10/07/14 01:53:49
VS2008のデバッグ実行でも、出力窓には例外が出ているハズ
例外出ても止まったり止まらなかったりするのは割とよくある

636:デフォルトの名無しさん
10/07/14 09:38:11
P2PソフトをC#で作ってみた
DHTを実装して普通に車輪の再発明しても意味がないので
全文検索システムに改造してみた
といっても負荷の予想がつかないので小さいメモを放流して
内容から検索するみたいなそんなものを
理論上数百万件のデータが保持出来る
検索はたぶん1つにつき10分程度かもしれない
ただの実験ソフトなんだけど、実用的に動いたら応用範囲はかなりあると思うのだけど
誰かテストしませんか?

637:デフォルトの名無しさん
10/07/14 09:39:57
するする
面白そう

638:デフォルトの名無しさん
10/07/14 09:44:58
検索に10分?え?

639:デフォルトの名無しさん
10/07/14 11:15:26
>>637
アップロードとかいろいろしないといけないのでしばらくお待ちください

>>638
遅いかな?まあGoogleみたいなのに比べると遅いけど
ネットじゅうに分散したメモから10分で余すところ無く拾い集めてくるってことだよ
といっても予想だけど、シミュレーションではうまく動いてるけど
実際のネット環境では動くかどうか

640:デフォルトの名無しさん
10/07/14 11:34:49
目的のデータを保持してるマシンが24時間稼働とは限らないからね

641:デフォルトの名無しさん
10/07/14 11:38:37
>>577,578
そのまま使ってるのかー。
自分も一応そのまま使ってるけど、2010になってから
かなり補正するようになって使いにくくなった気がする。
;か}が入力されたときに調整してるから}を先に書くと
うまく補正されない。癖の問題ではあるけど。

ところで「基本設定」と「上級者設定」ってのがあるけど、
基本設定の場合、手動で追加しないとタブオーダーと
インデント操作はできないの?

642:デフォルトの名無しさん
10/07/14 11:41:14
P2Pってそれぞれのマシンが落ちててもいいように、自動でキャッシュ持つんじゃないの?

643:デフォルトの名無しさん
10/07/14 11:42:12
うまく補正されない。痔の問題ではあるけど。

に見えた。

644:598
10/07/14 11:43:04
>>641
;}が先に書いてあってもEnter押したらたいがい補正されるだろ?

645:デフォルトの名無しさん
10/07/14 11:45:36
おお、名前が残っていたがもう不要だな

646:デフォルトの名無しさん
10/07/14 11:49:56
641がどんなコードの書き方しててどんなオートフォーマットの動作を難儀に感じてるのか全く分からない

647:デフォルトの名無しさん
10/07/14 12:38:29
>>644
ある程度構文正しければ確かに補正されたと思う。
構文関係は慣れることにします。
>>646
 /*~*/の中に貼り付けすると勝手にインデントする
 (これを直すのにインデント操作ボタンが欲しかったけど基本設定では表示されてなかった)
 /*で改行すると次の行に*が入る
この辺が特に難儀に感じた。

648:デフォルトの名無しさん
10/07/14 12:45:34
まあね

649:デフォルトの名無しさん
10/07/14 14:04:14
すみません、すべてのテキストボックスでエンターが押された時に
フォーム内のボタンを押した事と同じイベントを発生させたいのですが
これはどうやって実現できますか?

また、テキストボックスが10個あるとして
そのすべてに同じKeyUpイベントと処理を記述するのは見通しが悪くなると思うのですが
これを一カ所にまとめる事はできますか?
VB の handle1,handle2 みたいな書き方がしたいのですが

ご教示お願いいたします。

650:デフォルトの名無しさん
10/07/14 14:11:19
>>649
> すみません、すべてのテキストボックスでエンターが押された時に
> フォーム内のボタンを押した事と同じイベントを発生させたいのですが
同じイベントを発生させるんじゃなくて、それぞれのイベントで同じメソッドを呼び出す方向で

> また、テキストボックスが10個あるとして
> そのすべてに同じKeyUpイベントと処理を記述するのは見通しが悪くなると思うのですが
> これを一カ所にまとめる事はできますか?
> VB の handle1,handle2 みたいな書き方がしたいのですが
デザイナでイベントハンドラを既存のに設定する

651:デフォルトの名無しさん
10/07/14 14:12:16
>>650さん
ありがとうございます。
さっそく調べてみます。

652:デフォルトの名無しさん
10/07/14 14:17:14
>>650さん
>デザイナでイベントハンドラを既存のに設定する
できました!ありがとうございます!

653:デフォルトの名無しさん
10/07/14 14:54:09
ListView を仮想モードにした場合、
項目の選択状態を未選択、または先頭の項目を選択状態にするには、
どうすれば良いでしょうか?
SelectedItemsプロパテイでできるかと思いましたが、
仮想モードではエラーとなりました。

654:デフォルトの名無しさん
10/07/14 15:02:49
ListView.VirtualModeの解説に書いてる

655:デフォルトの名無しさん
10/07/14 15:12:14
もう一つ質問なんですが^^;

C#のコードの記法が

if(state)
{
}
とかに自動的になるのが気に入らないんですが

デフォルトを
if(state){
}
にする方法はありますか?

656:653
10/07/14 15:13:54
>>654
SelectedIndices ですね。
大変失礼しました。ありがとうございます。

657:デフォルトの名無しさん
10/07/14 15:24:11
>>655
C#の相談というよりVSの使い方だが
[ツール]→[オプション] の中にテキストエディタの設定をするところがある

658:デフォルトの名無しさん
10/07/14 15:24:27
>>655
オプションのテキストエディタ - C# - 書式設定の中を好きにいじれ
あと初心者用スレもあるから内容に応じて選択しろ

659:デフォルトの名無しさん
10/07/14 15:45:00
\   / .::::::::::::::::::::::::;;:;;::,ッ、::::::   )  く   ホ  す
  \  l  ,ッィrj,rf'"'"'"    lミ::::::: く   れ  モ  ま
     Y           ,! ミ::::::: ヽ  な  以  な
`ヽ、  |           くミ:::::::: ノ   い  外  い
     |、__  ャー--_ニゞ `i::::,rく   か  は
``''ー- ゝ、'l   ゙̄´彑,ヾ   }::;! ,ヘ.)  !  帰
      ゙ソ   """"´`     〉 L_      っ
      /          i  ,  /|    て    r
≡=- 〈´ ,,.._        i  't-'゙ | ,へ     ,r┘
,、 yx=''" `ー{゙ _, -、    ;  l   レ'  ヽr、⌒ヽ'
        ゙、`--─゙      /!         `、
  _,,、-     ゙、 ー''    / ;           `、
-''"_,,、-''"    ゙、    /;;' ,'  /         、\
-''"    /   `ー─''ぐ;;;;' ,'  ノ      
   //    /     ヾ_、=ニ゙

660:デフォルトの名無しさん
10/07/14 15:46:09
うわ-!すみません誤爆です^^;
>>657 >>658さん ありがとうございました!解決しました!

661:デフォルトの名無しさん
10/07/14 15:53:53
>>660
しねよ

662:デフォルトの名無しさん
10/07/14 18:01:14
>>661
お前が市ね、ばか

663:デフォルトの名無しさん
10/07/14 18:03:58
^^; ←これむかつく

664:デフォルトの名無しさん
10/07/14 18:14:27
>>662
じゃあ俺が市ぬよ。

665:デフォルトの名無しさん
10/07/14 20:02:43
System.IO.Directory.GetDirectories("C:");
System.IO.Directory.GetDirectories("C:\\");
って、結果違うのね。。。
フォルダの時はちゃんと\付けて返してくれるのに、
なぜドライブの時は\を付けてくけないのだ。。。

666:デフォルトの名無しさん
10/07/14 20:13:00
それより、ドライブのルートと SearchOption.AllDirectories を指定して
GetFiles や GetDirectories を使うと落ちるのはどうにかならないものか。
SystemVolumeInformationにアクセスしようとして権限違反で落ちるようなんだけど。

667:デフォルトの名無しさん
10/07/14 20:35:01
リンクがループしてると無限ループするって書いてあるし、実用的なオプションとは思えない
TopDirectoryOnlyで例外ハンドルしながら自分で再帰処理するしかないんじゃ

668:デフォルトの名無しさん
10/07/14 21:02:22
いくつか教えてください。
・JapaneseCalendar.Eraから西暦の開始日付を取得したい
・JapaneseCalendar.Eraを"平成"等の文字に変換したい
完全にJapaneseCalendar依存にしたいのでEraをswitch分岐したり
定数で開始日付を固定したくはないのですが出来ますか?



669:デフォルトの名無しさん
10/07/14 21:24:02
前者はリフレクションでJapaneseCalenderのprivateフィールドを読めば可能。
後者はたぶん無理。

670:デフォルトの名無しさん
10/07/14 21:35:43
通常の使い方では無理ってことですね・・・。
Parseで変換できるんだから"平成"等の取得くらいは期待してました・・。
ありがとう。


671:デフォルトの名無しさん
10/07/14 21:41:21
年号の取得はもう一段階上のDateTimeFormatInfoの仕事らしい

672:デフォルトの名無しさん
10/07/14 22:06:49
あれは動けばいい

673:636
10/07/14 22:43:55
初期ノードキャッシュ用と本体配布が出来るCGIが使えるサーバが見つからない

674:デフォルトの名無しさん
10/07/14 22:48:37
GAEは?

675:デフォルトの名無しさん
10/07/14 23:07:44
GAEは?・・・

676:デフォルトの名無しさん
10/07/14 23:20:06
>>670
int era = 0;
var culture = new System.Globalization.CultureInfo("ja-JP", true);
culture.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar();
var eraName = culture.DateTimeFormat.GetEraName(era);
で取得できるみたい

677:デフォルトの名無しさん
10/07/14 23:21:05
>>674
面白そうだけどPerl版で普通のhttpリクエストしか実装してないから
GAE専用のアクセスクラスを実装しないといけないので時間が掛かる

678:デフォルトの名無しさん
10/07/14 23:34:43
>>677
そうなのか、サンクス

679:669
10/07/14 23:56:43
>>676
そんな方法があったのか。無知を恥じる。

680:デフォルトの名無しさん
10/07/15 01:57:00
質問でっす
windowsフォームアプリケーションでinvokeを使う場合
this.Invoke(~~~
で使えますがフォームを持たないクラスでこうしたい場合はどのようにすればよいのでしょうか?
分かる方、お願いいたします

681:デフォルトの名無しさん
10/07/15 01:57:58
Invokeの意味わかってんのか?

682:デフォルトの名無しさん
10/07/15 02:07:38
そーーーゆのいいですから、即答お願いいたします~~~orz

683:デフォルトの名無しさん
10/07/15 02:16:44
諦める

コントロールへの参照がないならControl.Invokeする必要ないし
コントロールへの参照があるならそれ使ってInvokeするだけだし

684:デフォルトの名無しさん
10/07/15 02:20:06
出来ない
意味もわからない馬鹿は出直せ

685:デフォルトの名無しさん
10/07/15 02:24:14
InvokeA
Invoke9

686:デフォルトの名無しさん
10/07/15 02:56:44
>>681
そっちこそそういうのいいですからw偽物です

では別クラスのスレッドからフォームを操りたい場合はどうすればいいんでしょうか

687:デフォルトの名無しさん
10/07/15 03:29:10
どうすればも何もそのままだと思うが何が分からんのよ
フォームを操るんだからフォームの参照持ってるだろ?

688:デフォルトの名無しさん
10/07/15 03:42:59
別クラスが引数一つのget_chatというイベントを持っています。
別クラスでは新しいスレッドが作られていてそのスレッド内でイベントを発生させてフォーム側でそのイベントを処理するのですが
フォーム側のソースでイベントの引数を受け取ろうとしたら"有効でないスレッド間の操作"となってしまいます。

現在はフォーム側で
private void get_chat(string chat)
{

this.Invoke((MethodInvoker)delegate()

{
textBox1.Text += chat;
textBox1.Text += "\r\n";
});

}
として無事chatを受け取れているのですがライブラリとして作っているのでフォーム側でこのようにするのは避けたいわけです。

まだ始めたばかりで説明下手ですみません・・・


689:デフォルトの名無しさん
10/07/15 03:46:54
イベント駆動にしてその中でInvokeするだけだろ
何がわかんねぇんだ?

690:デフォルトの名無しさん
10/07/15 03:48:59
今度から初心者スレへ行けよ

691:デフォルトの名無しさん
10/07/15 04:05:11
この辺の話でしょ
URLリンク(cs2ch.blogspot.com)

692:デフォルトの名無しさん
10/07/15 04:07:22
ChatClass.OnGetChat += EventHander(OnGetChat)

private void OnGetChat(Object o, EventArgs e){
textBox1.text += e.chat;
}



ClatClass
{
private RecvThread (){
socket.recv(*****)
if(OnGetChat != null){
ここでinvokeしてOnGetChatを呼び出したい

}

という意味では?}

693:デフォルトの名無しさん
10/07/15 04:09:34
気持ち悪い実装だな
クラスからフォームのメソッド呼び出すとかどんな設計だよ

694:デフォルトの名無しさん
10/07/15 04:16:43
外部スレッドで発生したイベントは当然フォームではメインスレッドで動かさないといけないのに
イベント処理が別スレッドのまま渡されてすべてユーザーがフォームでInvokeしないといけない
なんて仕様の方が気持ち悪い、意味分からない、利点が思いつかない
自分も外部クラスでラップしたイベントがいちいちユーザーが使う時にInvokeしないと使えないなんて
無様すぎるから疑問に思ってたけど、これといった解決策が分からないままでいた

695:デフォルトの名無しさん
10/07/15 04:19:19
Javaを含むあらゆる言語を否定した出したよこいつ…

696:デフォルトの名無しさん
10/07/15 04:23:01
>>695
ジャバは知らないがMFCとかC++SDKとかイベントループは各フォームが1個づつ持ってて
外部から投げようがメインスレッドで確実に処理される
単に別スレッドのまま呼び出すのはただのコールバックだし
それだったらわざわざEventHandlerなんて意味深なものを用意する意味が分からないんだが

697:デフォルトの名無しさん
10/07/15 04:31:23
C#やめてC++使えば?

698:デフォルトの名無しさん
10/07/15 04:32:45
とにかくこいつを初心者スレへ連れて行け

699:デフォルトの名無しさん
10/07/15 04:35:28
basicはgotoを使うのが当たり前なのに
C#は何でgotoを使ったらいけないみたいな風潮なの?気持ち悪っ!
とか何とか言い出しそうだなw

700:デフォルトの名無しさん
10/07/15 04:42:42
多言語と比較は意味ないよねぇー
だって、仕様(しょう)がない。。。

701:デフォルトの名無しさん
10/07/15 04:53:18
ようするに
MFCは旧来のオブジェクト指向言語のイベントは
メインスレッド <- 外部スレッドがポストだったんだけど
JavaをベースにしたC#は
メインスレッド->外部スレッドに関数ポインタ(デリゲート)を渡して呼び出してもらう
にしたからクラスで完結したイベント処理が「不可能」なんだな
やりたくでも出来ないんだw
かっこ悪いのは分かってるけど出来ないんだw

もし無理やりやるとしたら
外部クラスでデリゲートをキューしておいて
メインスレッドのフォームからそれを一括呼び出しする関数を呼び出すみたいな
そういうことしか方法がないのかもしれない

>>698>>699はそこまで考える頭が無いのは分かってるが

702:デフォルトの名無しさん
10/07/15 04:55:15
せめてオブジェクトクラスにそういうことをあらかじめやってくれる
イベントキューみたいなのを包めて設計して欲しかったな

703:デフォルトの名無しさん
10/07/15 05:20:55
久しぶりに痛い奴に遭遇した

704:デフォルトの名無しさん
10/07/15 05:27:30
>>673
自分で用意すればいいじゃん

705:デフォルトの名無しさん
10/07/15 05:27:39

rem dirの出力をクリップボードに取り込む
dir | clip

rem クリップボードの内容を表示
clip

こういうコンソールアプリを実装したい場合、
上下の処理の分岐ってどう書けばいいんですか?

706:デフォルトの名無しさん
10/07/15 05:38:06
ComboBoxのテキストを編集できないようにする方法を教えてください。

707:デフォルトの名無しさん
10/07/15 06:19:00
>>688
ISynchronizeInvokeでググれ

708:デフォルトの名無しさん
10/07/15 06:28:20
>>707

rem dirの出力をクリップボードに取り込む
dir | clip

rem クリップボードの内容を表示
clip

こういうコンソールアプリを実装したい場合、
上下の処理の分岐ってどう書けばいいんですか?

709:デフォルトの名無しさん
10/07/15 06:40:24
C#で簡単な.NETプログラムを作りました。
(ハローワールド程度)
これを、自分のパソコンのウェブサイトにコピーしたのですが
動きません<C:\inetpub\wwwroot>

VSでのデバッグ時には動いています。

URLリンク(localhost)とやると、デフォルトのHTMLが表示されます。

URLリンク(localhost) と入れると
アプリケーションのダウンロードエラーとなってしまいます

WpfBrowserApplication1.*は全部Default.htmlのあるルートに
コピーしてあります。

710:デフォルトの名無しさん
10/07/15 06:54:15
>>706
ぐぐれ
デザイナーのプロパティの項目を上からみていけ

711:デフォルトの名無しさん
10/07/15 07:27:54
>>705
PeekConsoleInput関数でいける感じはするけど保証はないな、ドキュメント的に

712:636
10/07/15 08:36:47
URLリンク(notepadp2p.x10.mx)

とりあえずアップロードしてみたテスト

713:デフォルトの名無しさん
10/07/15 09:07:26
これって結局なんなの?
凄く時間のかかる全文検索だけ?
どういう目的で使うの?

714:デフォルトの名無しさん
10/07/15 09:12:15
>>713
将来的にはこれはまったく別のP2Pシステムの一部になる予定だけど
本当に機能するか実験してる所です。
何か面白い使い方があれば適当にやって下さい。
多少の修正は対応します。

715:デフォルトの名無しさん
10/07/15 09:16:07
京都府警がアップを始めました

716:デフォルトの名無しさん
10/07/15 09:16:15
最低でも某有名P2Pみたいにポート開けずに検索出来るようになってからだな

717:デフォルトの名無しさん
10/07/15 09:17:16
そうだな、暗号化されてるし、誰が書いたか特定するのは不可能だから
しかも検索出来るのはその文章のタイトルか内容のヒントを知ってる人だけだから
秘密の情報をやり取りするのとかに使えるかもしれない

718:デフォルトの名無しさん
10/07/15 09:24:15
そこまでして読みたい文章ってなんだ?
んでヒント知ってる者同士ならその間柄でやり取りしたほうがセキュアじゃね?
暗号化つっても通信経路だけで常にオープンなわけだし

719:デフォルトの名無しさん
10/07/15 09:54:42
スレ違いじゃね?

720:デフォルトの名無しさん
10/07/15 09:55:36
>>701
デリゲートをキューに入れて、メインスレッドで一括呼び出しって、
それこそ Control.Invoke とか Dispatcher.Invoke がやってる事じゃん。

721:デフォルトの名無しさん
10/07/15 10:19:11
ネットワークに参加できない


722:デフォルトの名無しさん
10/07/15 10:57:14
だれも>>685に反応しないところを見ると
このスレ30歳以下しかいないんだな

723:デフォルトの名無しさん
10/07/15 11:00:01
>>721
原因が分からないけどこれのパケットだけ何故かFWに全部はじかれてる
なんでだろう

724:デフォルトの名無しさん
10/07/15 11:14:18
>>722
今日初めてこのスレに来たから反応する暇も無いが
わかりにくいわw

725:デフォルトの名無しさん
10/07/15 11:23:26
>>721
たぶんOKです

726:デフォルトの名無しさん
10/07/15 11:42:16
>>725
さっきルータのポートだけ開けてパソコンのFWで開け忘れてた
今は両方開けたつもりだけどまだ参加できないって言われる
「切断 0/0 受信 0.00bps / 送信0.00 bps 受信 49bytes / 送信 343bytes」って出てる


727:デフォルトの名無しさん
10/07/15 11:48:47
なんのかんのでこのスレの住人は優しい奴が多い。
オアシス的な場所。

728:デフォルトの名無しさん
10/07/15 11:55:41
>>726
dataフォルダをまるごと削除してもう一度再起動してもらえますか?
申し訳ない、こればっかりはデバッグ出来ない問題なんで

729:670
10/07/15 11:58:13
>>676
おお、ありがとう!試してみます。


730:デフォルトの名無しさん
10/07/15 12:21:10
>>701
>>>>698>>699はそこまで考える頭が無いのは分かってるが

自分が良く分かって無いのにこういうこと言っちゃう人って…

731:デフォルトの名無しさん
10/07/15 12:26:48
非同期コールバック系処理で同期取るの面倒だからこういうことするのは俺だけじゃないはず

Begin~( delegate()
{
ThreadPool.Push( delegate() //Invokeのデッドロック回避
{
Invoke( (MethodInvoker)delegate()
{
  //メインスレッドで処理
}
}
} ) ) );

732:デフォルトの名無しさん
10/07/15 12:34:02
イベントを使った非同期パターンを実装する場合はAsyncOperationを使って
UIスレッドでイベントを発生させるのが推奨されてる
もちろんフレームワーク側でのサポートが必要(WinFormsやWPFではサポートされてる)

733:デフォルトの名無しさん
10/07/15 16:06:45
Javaから引越し中ですが、
ArrayList 同士の結合をするには、どうすれば良いのでしょうか?

734:デフォルトの名無しさん
10/07/15 16:10:18
AddRange
それはそれとしてArrayListなんか廃棄してList<T>なりに移行すること

735:733
10/07/15 16:19:07
>>734
ありがとうございます!
List<T>なんてものもあるのですね。違いを調べて使ってみます。

736:デフォルトの名無しさん
10/07/15 18:01:08
>>728
おお、dataフォルダ消したら接続できた
ありがとう


737:デフォルトの名無しさん
10/07/15 18:09:41
>>736と思ったら今度は例外が出て落ちるようになった

System.Security.Cryptography.CryptographicException はハンドルされませんでした。
Message="データが正しくありません。\r\n"
Source="mscorlib"
StackTrace:
場所 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
場所 System.Security.Cryptography.Utils._DecryptKey(SafeKeyHandle hPubKey, Byte[] key, Int32 dwFlags)
場所 System.Security.Cryptography.RSACryptoServiceProvider.Decrypt(Byte[] rgb, Boolean fOAEP)
場所 c.a(Byte[] A_0, Byte[] A_1)
場所 c6.a()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
InnerException:


738:デフォルトの名無しさん
10/07/15 19:27:07
例外ぐらいトラップしてロギングしときなよ…
お行儀の悪いソフトだな…

739:デフォルトの名無しさん
10/07/15 20:11:28
DBで管理するメモ帳を作ろうかと思ってます.

入力した文字列に含まれる単語をstring[]などで取得したいのですが

いい方法はないですか?

//例 今日は学校に行った ⇒ { "今日","学校","行った"} ("は","に")が入ってもかまわないです

変換キーを押したときに,IMEで再変換時にでる下線部ごとにstring[]を作ってくれるとありがたいのですが,
ググってもIME周辺の処理がいまいち分かりません

回答求む

740:デフォルトの名無しさん
10/07/15 20:15:21
形態素解析でぐぐれ

741:デフォルトの名無しさん
10/07/15 20:16:17
>>740

サンクス


742:デフォルトの名無しさん
10/07/15 20:18:38
>>741
うん

743:デフォルトの名無しさん
10/07/15 20:41:08
Graphics.DrawLineで画面外の滅茶苦茶な数値を入れるとちゃんとエラーも出さずに描画してくれるみたいだけど、
描画する線が明らかに全くない場合は自前でDrawLineを呼び出さないように弾いちゃった方が早い?
それとも自前でコードを書かなくてもDrawLine内で同コストで弾いてくれる?

744:デフォルトの名無しさん
10/07/15 20:46:44
1ドットずつ判定するから長い線じゃなければ自分で判定して弾かなくてもいいよ

745:デフォルトの名無しさん
10/07/15 21:24:58
スケーリングやトランスフォームも含めてGraphicsにお任せすることもあるけど、
そんなとき自前で判定してたらメリット半減だよね。

746:デフォルトの名無しさん
10/07/15 21:50:17
>>743
ぜひ実測して結果を公表して。

747:デフォルトの名無しさん
10/07/15 22:13:25
お前がやれ

748:デフォルトの名無しさん
10/07/15 22:15:53
ちょっと昔のドロー系のアルゴリズムを書いてある本なら必ず掲載されてたなw

749:デフォルトの名無しさん
10/07/15 22:19:42
>>737
なんだそれは
>>738暗号関係の部分はしてる
こっちでは何も出ない
環境の問題?

750:デフォルトの名無しさん
10/07/15 22:23:24
>Graphics.DrawLineで画面外の滅茶苦茶な数値を入れるとちゃんとエラーも出さずに描画してくれるみたいだけど、
こんなのは昔のN88BASICのline命令から普通にできた話
仮想スクリーンだとか言葉は違うけど

指定したエリア(カメラの範囲や表示可能領域)から外れた場合は
処理しないってのはまあ大体実装されてる機能だよ


751:デフォルトの名無しさん
10/07/15 22:23:36
.netに環境も糞もないだろ…

752:デフォルトの名無しさん
10/07/15 22:27:21
と思ったら古いソースといつのまにかごっちゃになってた
修正します

753:デフォルトの名無しさん
10/07/15 22:33:55
赦します

754:デフォルトの名無しさん
10/07/15 22:52:07
N88BASICにクリッピングなんて気の利いた機能あったっけな。
MS系BASICにそんなのなかった気がしたが....

まあ、>>750が勝手に熱くなってるけど>>743が聞いてるのはべつにそんなことじゃ
ないはずなんだがなw

755:デフォルトの名無しさん
10/07/15 22:54:41
URLリンク(notepadp2p.x10.mx)
修正版アップしました

756:デフォルトの名無しさん
10/07/15 23:03:59
今日は蒸すね(´・ω・`;)ふぅ

757:デフォルトの名無しさん
10/07/15 23:09:45
>>754
できたよ
当時は若かったので仮想スクリーンが何を意味するかわからなかったけど
現在のGPUでは当たり前にやってるような機能が当時からあったんだなあ
と近年3D関連やってみて思った

758:デフォルトの名無しさん
10/07/15 23:18:48
実環境は想像よりパケットロスが大きいことが分かったのでちょっとプロトコル変えます

759:デフォルトの名無しさん
10/07/15 23:19:58
てかX68Kみたいに仮想VRAM上の特定領域を表示したりしてるわけじゃなく
単に座標が実表示領域を超えててもエラーにならないってだけだろ?

760:デフォルトの名無しさん
10/07/15 23:32:10
>>757
直線のクリッピングなんて中学の数学の知識で出来るけどね。
んな大げさな話でもない。

761:デフォルトの名無しさん
10/07/15 23:38:09
まあね。

762:デフォルトの名無しさん
10/07/16 09:10:13
Windowsで線を描く場合は、そんなに単純じゃないと思う。
おそらく1ドットずつウィンドウ内かどうか判定して描画している。

763:デフォルトの名無しさん
10/07/16 09:26:15
>おそらく1ドットずつウィンドウ内かどうか判定して描画している。

764:デフォルトの名無しさん
10/07/16 09:26:56
今時のOSがそんな間抜けな設計のわけねえだろ。
ちゃんと計算されてる。角度とか。

765:デフォルトの名無しさん
10/07/16 09:36:02
角度?

766:デフォルトの名無しさん
10/07/16 09:37:04
シャア専板だかで昔流行ったギャグだ

767:デフォルトの名無しさん
10/07/16 09:54:48
>>764
と言うと、ウィンドウの重ね合わせの描画処理ってどうやってると思います?
まさか下のウィンドウから順番に描画していき、最後に画面に表示ってのはないと思うけど。

768:デフォルトの名無しさん
10/07/16 10:01:51
初心者スレへGo!

769:デフォルトの名無しさん
10/07/16 10:12:18
そんなこと言わずに教えてくれ。
正式にどうやっているか知らないので。

770:デフォルトの名無しさん
10/07/16 10:14:11
初心者スレに凄いのいるからそいつに聞けよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch