ふらっとC#,C♯,C#(初心者用) Part41at TECH
ふらっとC#,C♯,C#(初心者用) Part41 - 暇つぶし2ch784:デフォルトの名無しさん
09/06/21 09:27:29
WebBrowserコントロールのDocumentTextプロパティでWebページを表示させているのですが
読み込むときに鳴るカチッという音を消したい場合はどうしたらいいでしょうか

785:デフォルトの名無しさん
09/06/21 09:37:05
消せないっぽい。

786:デフォルトの名無しさん
09/06/21 10:30:38
まじか。どもです

787:デフォルトの名無しさん
09/06/21 10:55:02
OpenNew して、Document.Write すればいいらしい。
試してないからよくわからんが。

788:デフォルトの名無しさん
09/06/21 11:41:24
>>787
そうするとページのURLが存在しないから、そのページはよくても
ほかのページにジャンプするときはフルパスのリンクが必要だな。
で、そのときにカチッと音が出る。

789:デフォルトの名無しさん
09/06/21 11:58:52
>>787さんの方法でできました。ありがとうございました

790:デフォルトの名無しさん
09/06/21 15:12:23
stringの扱いが分りません。 

変更できないらしいことは分ったんですが、
文字列の受け方がよくわかりません。

こういう場合は、どうすればいいんですか ><

sting param;

if ( xxxx )
param = "THEN"
else
param = "ELSE"



791:デフォルトの名無しさん
09/06/21 15:13:45
それは変更してないじゃない。

792:デフォルトの名無しさん
09/06/21 15:17:06
それだけだと普通にコードとしても意図としても成立してるが

793:デフォルトの名無しさん
09/06/21 15:24:08
>>790
それでおk。
あとは
string param = (xxx) ? "THEN" : "ELSE";
とも書ける。

794:790
09/06/21 15:56:06
レスありがとう

よくわからないから、今度はこうしてみたんですけど、
whileの外で使うと値が入ってないんです。><

main(){

char [] param = null;

while( xxxx ){
if ( xxxx ) then
param = THENストリング.ToCharArray();
else
 param = ELSEストリング.ToCharArray();
}

Console.WriteLine("Paramの中身", param);
}

795:デフォルトの名無しさん
09/06/21 15:58:32
まずはデバッガの使い方覚えたほうがいい。

796:デフォルトの名無しさん
09/06/21 16:01:38
>>795に同意
794は多分ループ内に入ってないんだろうなぁ

797:デフォルトの名無しさん
09/06/21 16:03:20
中途半端に隠さずに貼るなら全部貼れ
そしてどういう結果を期待してるのか書け

798:デフォルトの名無しさん
09/06/21 17:24:23
> if ( xxxx ) then

thenって?

799:デフォルトの名無しさん
09/06/21 17:44:45
webbrowserのリンクをクリックしたらデフォルトのブラウザで開かせたいのですが
URLリンク(red-treasure.com)
上のサイトにあるようなややこしいことしないとできませんか?

800:デフォルトの名無しさん
09/06/21 17:48:55
この程度でややこしいってどんだけw

801:デフォルトの名無しさん
09/06/21 17:49:03
何がどうややこしいのやら

802:デフォルトの名無しさん
09/06/21 17:59:14
>>799
「デフォルトのブラウザーが何か」ってのはOS上のユーザー設定を参照しないといけないことだからなぁ。
そこのサイトのコードだけでできるってのは、十分シンプルだと思う。


803:デフォルトの名無しさん
09/06/21 20:36:32
BeforeNavigate とかではダメなんか?

804:デフォルトの名無しさん
09/06/21 20:43:30
すでに自分を起動していたら、古いほうのウィンドウを閉じて新しいウィンドウで処理する、というのはどう書くものですか?
Processで自分の名前を取得して終了メッセージを送ったら、(当然のように)自分も終了してしまいました…。
あたりまえか。
多重起動を禁止するのではなく、行いたいです。
アドバイスお願いします。


805:デフォルトの名無しさん
09/06/21 20:50:40
基本的な考え方は多重起動禁止と同じだけどね
Mutex の代わりに EventWaitHandle 使う
新しいプロセスはイベント通知するだけでその後は普通に進める
前のプロセスはイベントを受け取ったら終了処理

806:デフォルトの名無しさん
09/06/21 21:13:06
俺はMutex取得できた奴がサーバとしてSetPropでWHDLをプロパティ設定。
取得できなかった奴はクライアントとしてGetPropで見つけたWHDLに
WM_COPYDATAで起動パラメータの情報を送信して終了。
サーバはWM_COPYDATAで受け取った情報で処理。

って作ってた。1.1だったからなぁ。

807:806
09/06/21 21:17:10
あ、古いほうを終了か。間違えた。すまん。

808:デフォルトの名無しさん
09/06/21 21:17:33
古い方を閉じるならもう少し複雑になる。
同時に何個も起動したときにおかしなことにならないようにしないといけないから。

809:デフォルトの名無しさん
09/06/21 21:25:25
WHDL ってなんだよ・・・ せめて hwnd とかだろ

810:デフォルトの名無しさん
09/06/21 21:27:17
正直、古い方を閉じる理由ってなんなんだろ?

811:デフォルトの名無しさん
09/06/21 21:29:23
ごめん、変数名をなんでかそう書いてたんで、そのまま追いかけて読んで
書いちゃったw >>WHDL

・・・マジ、なんでWHDLとか書いてたんだ?自分。

812:デフォルトの名無しさん
09/06/21 21:42:07
古い方を閉じるなんてめちゃくちゃなUXだな

813:デフォルトの名無しさん
09/06/21 22:02:33
.NET や Java などでクラス複製のインターフェースの ICloneable がありますが
ICloneable に対するコピーの実装って
慣例的に シャロウコピー と ディープコピー のどっちなんでしょうか?
それとも特に決まってないのでしょうか?
よろしくお願いします

814:デフォルトの名無しさん
09/06/21 22:12:56
特に決まってないな。
どっちかっていうとシャロウコピーな感じもある。


815:デフォルトの名無しさん
09/06/21 22:16:13
てゆーかICloneableってまともに機能している場面って見たことねーんだが

816:デフォルトの名無しさん
09/06/21 22:22:20
>>813
Javaは知らんが.NETでは特に決まってない。
Cloneは同じ内容だけど別物として振る舞うようなクローンを返せば、なんでもいい。
別にメンバが同じ値であったりそのコピーである必要はない。

817:デフォルトの名無しさん
09/06/21 23:44:16
>>805
EventWaitHandleで、
URLリンク(dobon.net)
のページを見つけて、そっくりおなじように実装してみたのですが、古い方は閉じるんだけど、新しいウィンドウも開かない状況です。
う~む。なにがいけないんでしょう?
>>810
ビューアーのアプリケーションで、表示を自動/手動でリフレッシュしたいのです。外部から手動でリフレッシュするのには、新しいウィンドウを開くのがいちばん楽かと。
>>812
そ…そうかな…。
こういう場合って、どんなふうに実装します?
ところでUXってなに? User eXperience?


818:デフォルトの名無しさん
09/06/21 23:48:23
>>817
そのウィンドウに更新ボタンを付けるのが一番素直な実装だと思うんだが?

819:デフォルトの名無しさん
09/06/22 00:06:00
>>814-816
レスどうもです。
ICloneable について触れてるサイトを何度か見かけたのですが、
どれも MemberwiseClone をそのまま返却する実装をしてたので、
ちょいと気になってました。
ありがとうございました

820:デフォルトの名無しさん
09/06/22 00:32:00
自分も更新ボタンがいいと思う。更新(R)、最新の情報に更新(R)・・・と一般的。
二つ目のアプリ実行っていったら、普通はMDIにドキュメント追加とかタブ追加
だから選択ミス。
いつも使ってる(だろう)アプリ見たら分かりそうだけどなぁ。
秀丸、サクラエディタ、VS、IE、Firefox、WinMerge・・・

821:デフォルトの名無しさん
09/06/22 00:53:49
>>818、820
なるほど。更新ボタンですか…。
更新ボタンをつけたとして、外部のアプリケーションから手動で押す場合には、どういうメッセージを送ればよいんでしょう?
具体的にはコマンドラインから指示したいのです。
サーバー的なシステムで、アプリケーションの動いているマシンには、キーボードもポインティングデバイスもない(操作しにくい)ためです。
コマンドラインから開いているアプリケーションにメッセージを送ることってできるんですか?
これまでは、コマンドラインからおなじアプリケーションを実行してそれにメッセージを送信させようとしてはまってました。
「コマンドラインから」という条件は必須です。
メッセージを送るためのアプリケーションをもうひとつ作るのも考えたのですが、それならおなじアプリケーションで多重起動を監視するほうがよいかな、と考えて現在に至っています。


822:デフォルトの名無しさん
09/06/22 00:59:12
>>821
質問する時は条件を後出しするなよ…

823:デフォルトの名無しさん
09/06/22 01:00:12
>>821
まて、それでどうやって二番目のプロセスを起動しようとしている・・・?
どうやって コ マ ン ド ラ イ ン か ら 打 ち 込 む 気 だ。

ネット越しならポート開けて待ってて、誰かアクセスしてきたら更新しろ。

824:デフォルトの名無しさん
09/06/22 01:01:45
>>821
コントロールされる側も自作アプリなんだから、
外部(ネットやシリアルポートなど)から操作できるように作っとけばいいじゃん。
適当にポート開けとくとかして。

825:デフォルトの名無しさん
09/06/22 01:04:50
ボタン押すだけならハンドル取得してクリックイベントを送るだけ

826:デフォルトの名無しさん
09/06/22 01:08:15
相手がWindowsマシンなのにマウスも何もついてなくて、
端末がコマンドラインオンリーてのもずいぶん時代錯誤なシステムだな
両方ともWindowsにしてリモートデスクトップでも使えば一発で解決する問題のような
そもそもどうやってログインしてるんだ?
電源が落ちたらどうするんだ

827:デフォルトの名無しさん
09/06/22 01:51:47
>>826
っ MONO

828:デフォルトの名無しさん
09/06/22 02:09:48
>>822
すみません。
>>823、824
ポート開けるなんてのは初心者なもので、まだ書けません…。
もうすこし勉強します。
>>825
時代錯誤かどうかはさておき、現実にそういうシステムなので。

ちなみに、次のようにして解決しました。
コマンドラインから起動するときに、
taskkill /im Program.exe
Program.exe
としました。

EventWaitHandleの使い方を覚えられなかったのは残念…。


829:デフォルトの名無しさん
09/06/22 05:46:05
プログラムいくつか作っていくと、流用できるクラスが増えて
次のソフト作るの楽になるんだろうなと思ってやってきたけど
結局毎回一から全部作るんだよね
ファイル入出力関連何度作ったことか
やっぱ最初はこんなもの?

830:デフォルトの名無しさん
09/06/22 05:50:56
汎用性を持たせられてないからだな

831:デフォルトの名無しさん
09/06/22 06:09:35
汎用性ってすごく難しいよね
細かい機能使えるようにすると、元々あるクラス使えってことになるし
簡単に使えるクラスにすると、他のプログラムだと機能がたりなかったり
そもそも何をしているクラスなのかわからなかったりで

832:デフォルトの名無しさん
09/06/22 08:07:47
16進数 1FF は 10進数 511なわけですが
プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが
こういうのを10進数511と変換するうまいやり方はないでしょうか?

833:デフォルトの名無しさん
09/06/22 08:10:02
char[]に変換して、foreachでstringに変換して連結。

834:デフォルトの名無しさん
09/06/22 08:37:32
byte[]に入れて、BitConverter.ToUInt16()

835:デフォルトの名無しさん
09/06/22 09:02:05
>>833
>>834
それだと逆順になったままなんですが

FF01を511にする方法が知りたいんです

836:デフォルトの名無しさん
09/06/22 09:12:59
良く分からんが、用意されてるメソッドで都合悪いなら自作すれば?

837:デフォルトの名無しさん
09/06/22 09:14:11
それがわからないから聞いているんだけど?

838:デフォルトの名無しさん
09/06/22 09:19:17
>>835
それ、普通に short で読み込んだら 511 にならない?
Mono か何かでビッグエンディアンな CPU 上で実行してたりする?

839:デフォルトの名無しさん
09/06/22 09:24:03
文字列の "FF01" とか?

840:デフォルトの名無しさん
09/06/22 09:32:04
>>835
普通逆順になるわけがないんだが、
お前いったいどんなプログラムで確認してる?


841:デフォルトの名無しさん
09/06/22 09:42:32
>>838
なるわけないし、ushortじゃないと範囲超える

842:デフォルトの名無しさん
09/06/22 09:46:43
>>840
どういう意味?

あるアプリをバイナリ編集したいんだけど
数値の部分だけがFF01と反転している
そのアプリのバイナリデータを取り込んで0x01FFつまり511とテキストボックスなんかに表示したいんだけど

843:デフォルトの名無しさん
09/06/22 09:47:01
>ushortじゃないと範囲超える
くわしく

844:デフォルトの名無しさん
09/06/22 09:50:14
>>843
short=0xFF01;
でやればわかる

845:デフォルトの名無しさん
09/06/22 09:53:40
で、同じようにDWORDの数値も本来の数値に変換したいんだけど
簡単な方法ありますか?

846:デフォルトの名無しさん
09/06/22 09:54:44
>>844
何言ってんだお前は。
今の値はそうじゃないだろw


847:デフォルトの名無しさん
09/06/22 09:55:38
>>842

byte[] data = {0xFF, 0x01};
Console.WriteLine(BitConverter.ToInt16(data, 0));

512って出るだろ?
出たならお前の読み込むプログラムの方がおかしいってこった。

848:デフォルトの名無しさん
09/06/22 09:57:40
ちがう511のまちがい。

>>845
これで分かるだろ。


849:デフォルトの名無しさん
09/06/22 10:04:45
>>847
おおおおおおおおおすげーーーー
なんで逆さまなのに511って出るんだ・・・

850:デフォルトの名無しさん
09/06/22 10:06:28
>>846
今の値がどうとかに関係なくWORDを読み込んで数値に変換するわけなんだからshortじゃだめでしょ

851:デフォルトの名無しさん
09/06/22 10:09:21
>>834
結局これだったわけねww
ありがとう

852:デフォルトの名無しさん
09/06/22 10:15:19
範囲外とか言い出すやつが何言っても無駄

853:デフォルトの名無しさん
09/06/22 10:17:55
>>850
そもそも今の会話からは符号付きかありかなんて読み取れないのに、
いきなり、>>841とかいいだすお前がおかしいわ。


854:デフォルトの名無しさん
09/06/22 10:20:37
こういうのは「バイトオーダー」とかのキーワードを知ってればすぐ答が見つかるんだよな
それを知らない時点で敗北決定

855:デフォルトの名無しさん
09/06/22 10:21:16
>>832
>プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが
ここでちゃんとWORDデータを変換すると言っているんだから
できるひとは>>834がすぐ出るでしょ
WORDデータに対してshort持ってきちゃうなんて世間知らずもいいとこだ

856:デフォルトの名無しさん
09/06/22 10:22:42
なん…だと…


857:デフォルトの名無しさん
09/06/22 10:24:15
>ここでちゃんとWORDデータを変換すると言っているんだから
どこだよっ

>>832をどう見ても符号付きか否かは不明。


858:デフォルトの名無しさん
09/06/22 10:26:57
どうかな。

859:デフォルトの名無しさん
09/06/22 10:30:36
バイナリデータ2バイト(FF01)=WORD=ushort

860:デフォルトの名無しさん
09/06/22 10:32:04
そもそも0xFF01はshortに収まらない

論破

861:デフォルトの名無しさん
09/06/22 10:37:24
>>831
それはまだ蓄積や経験が足りない。わからなくなるのは管理が悪い。

名前の付け方に統一ルールを作り、長くなってもいいからわかりやすさを最優先に考える。
使い方をソースファイルの頭などにちゃんと書いておく。
過去の自分は他人。他人が見て使用法が理解できないソースは未来の自分にも理解できない。
「いちいち書くのがめんどくさい」「書かなくてもわかってる、覚えてる」は禁句。

まあ、35歳ぐらいになれば記憶力も衰えてくるし、10年以上の蓄積ができてるはずだから
身にしみてわかるようになるよ。
大多数の人間は経験から学ぶ愚者だからね。

862:デフォルトの名無しさん
09/06/22 10:42:49
>>860
君おもしろいね

863:デフォルトの名無しさん
09/06/22 10:43:18
大多数の回答者は本来のデータが0x01FFのリトルインディアンだと気づいているのに
見たまま0xFF01と解釈してるアホがいる
バイナリファイルをバイナリエディタで開いてみたことないんだろうな

864:デフォルトの名無しさん
09/06/22 10:49:20
>>863
リトルインディアン?アメリカの子供に聞かせる歌でそんなのあったな

バイナリから取り込むわけだから、元データがOxFFFFの場合もあるかもしれないと
想定して作らないとだめでしょ?何で符号無しと決め付けるわけ?
思い込みは危険だよ

865:デフォルトの名無しさん
09/06/22 10:52:01
リトルエンディアン 【little endian】
URLリンク(j-ken.com)

866:デフォルトの名無しさん
09/06/22 10:57:27
符号無しと決めつけてるのはushortじゃなきゃダメと主張してる人だな。
今の質問だとどっちか分からないから、shortではなくushortにしなきゃならない
ってのは正しいかどうか確証はない。
shortじゃなきゃならない可能性もあるんだから。

符号に気をつけろだけなら異論はないが。


867:デフォルトの名無しさん
09/06/22 11:03:21
>>859
その解釈が、件のデータが符号付きか符号なしかという問題に対して何か意味を持つとは思えないな。

868:デフォルトの名無しさん
09/06/22 11:05:12
何でそんなに符号に拘るの?そもそも符号って何よ・・・・
ushortじゃだめな理由なんてあるの?

869:デフォルトの名無しさん
09/06/22 11:16:18
今北産業

870:デフォルトの名無しさん
09/06/22 11:18:20
>>868
同じバイナリで表現される整数値の意味が変わるからだ。
知らないならC言語の初級からやりなおせ。

871:デフォルトの名無しさん
09/06/22 11:28:18
>>870
なるほどそういうことか、難しいな

872:デフォルトの名無しさん
09/06/22 11:29:40
C言語は関係ないよ。

873:デフォルトの名無しさん
09/06/22 11:37:59
>>872
アホ

874:デフォルトの名無しさん
09/06/22 11:46:45
>>869
符号がどうとか
聞かれてもいないことに答えようとしている
おせっかいがたくさん

875:デフォルトの名無しさん
09/06/22 11:51:34
なんでもこういう事言って満足してるアホがいるが、
普通に質問への答えに関わる事として重要なことだってのも分からんのか、
単に何か言いたいだけなのか、何なんだろうな。


876:デフォルトの名無しさん
09/06/22 11:55:46
ArrayListあるいは配列の中に入っているobjectを、
ToStringかけながらカンマ区切りで連結するのってどうやるんだろう?
できれば区切り文字はあとから変更できる形が望ましい。

.NET 3.5以降ならLinq付随のジェネリックテンプレートが使えるんだけど、
サポートOS(2000以降)の関係で.NET 2.0でお願いします。


877:デフォルトの名無しさん
09/06/22 11:58:59
String配列生成
forでそれぞれToStringしながら配列に入れていく
String.Join

878:デフォルトの名無しさん
09/06/22 12:01:56
ConvertAllだったかとString.Joinの組み合わせで。
あ、ConvertAllは配列にしてからじゃないとダメだったかな…

879:デフォルトの名無しさん
09/06/22 12:17:42
>>877
なるほど……。そんな感じでやってみようかと思ったらStringBuilderを見つけて、
そっちで書いてみたら簡単だったのでコード片を載せておく。

IronPython.Runtime.List python_result;

var builder = new StringBuilder();
foreach(var e in python_result)
{
builder.Append(","+ e.ToString());
}
Console.WriteLine(builder.ToString().Substring(1));

>>878
対象がIronPython.Runtime.ListなんでConvertAllは使えないっぽいね……。


880:デフォルトの名無しさん
09/06/22 12:47:10
パイソンは知らないんだが、ToArrayはないのかな?
ToArrayしてConvertAllしてJoinに渡す。

ってまあ別にベタで書いても全然構わないんだけど。

881:デフォルトの名無しさん
09/06/22 13:00:37
IEnumeratorは返してくれるんだけど、ToArrayは無いのよね。
枯れたライブラリならともかく、
こんなホットなもの相手に中のコードはいじりたくない。


C#は巨大な.NETクラスライブラリの関係で
同じことをやるのに方法がたくさんあるから、最適な方法を探すのが大変ですね。

882:デフォルトの名無しさん
09/06/22 13:05:47
Listって名前なのにIEnumerableのみかよwww

……XmlNodeListもそうなんだよな

883:デフォルトの名無しさん
09/06/22 15:31:14
提示された情報だけでは符号付きか符号無しか判断できないし
別に型が確定しなくても今回の質問には答えられる。
ちょっと注意書きを入れれば済むことだから両方書けばいいだけ。
BitConverter.ToUInt16()  符号無し
BitConverter.ToInt16()  符号あり

884:デフォルトの名無しさん
09/06/22 15:35:02
DataGridViewの一番左の項目に1,2,3と番号振りたいんだけどどうすればいいですか?
DataGridView.Rows[].Cells[0]のことではないです。

885:デフォルトの名無しさん
09/06/22 15:51:39
>>884
DataGridView.CellPaintingで

886:デフォルトの名無しさん
09/06/22 15:54:05
すいませんこれでいけました

DataGridView1.Rows[0].HeaderCell.Value

が、なぜか、マス目でいうと上から3つ目のところに表示されます
上から3つ目のマスが最初の行ということですか?
だとしたら、その上の行はなんなのか?あとインデックスって-1になるということ?
どうもよくわからない

887:デフォルトの名無しさん
09/06/22 16:00:27
ハァ?
コーディングミスだろ。

URLリンク(www.dotup.org)

888:デフォルトの名無しさん
09/06/22 16:08:24
dataGridView1.ColumnCount = 6;

this.dataGridView1.Rows[0].HeaderCell.Value = "0";

③this.dataGridView1.Rows.Add("1","2","3","4","5","6");

やってるのはこれだけなんですが、行のヘッダは3マス目に0が入り
③のデータはなぜか2マス目の行にデータが収まります
どうしてなんでしょうか?

889:デフォルトの名無しさん
09/06/22 16:24:38
試しに新規プロジェクト作ってDataGridView貼り付けて
そのコードだけを書いたやつ実行してみなよ。

890:デフォルトの名無しさん
09/06/22 16:25:07
>>888
人がわざわざ正しいやり方を示してくれているのに謝意も述べず、
自分勝手なやり方をしてそれがどういう結果をもたらすのか
自分で考えずに人に質問するような態度で、
答えを教えてもらえると思っているのか?

ちなみに887≠オレ

891:887
09/06/22 16:26:25
初心者スレの割にキビシイっすね

892:デフォルトの名無しさん
09/06/22 16:41:56
愛の鞭です

893:デフォルトの名無しさん
09/06/22 17:36:29
飴ちゃんちょうだい

894:デフォルトの名無しさん
09/06/22 21:19:42
バイトオーダー嫌って文字列で送った俺は勝ち組。

895:デフォルトの名無しさん
09/06/22 21:29:49
数が少なく整数のみならそれが勝ちだね

896:デフォルトの名無しさん
09/06/22 22:01:33
エンコードが違って文字化け

897:デフォルトの名無しさん
09/06/22 22:36:57
コード以外の文字列はBASE64ヽ(´▽`)ノ検索無くてよかったよかった。

898:デフォルトの名無しさん
09/06/23 00:45:53
そんな私はwebで公開

899:デフォルトの名無しさん
09/06/23 03:28:34
byte[]に格納したバイナリデータをascii文字列にするにはどうすればいいですか?

900:デフォルトの名無しさん
09/06/23 03:33:02
Convert.ToBase64Stringが手軽で鼻血が出る

901:デフォルトの名無しさん
09/06/23 03:33:06
どんなバイナリをどんな文字列にしたいのさ

902:デフォルトの名無しさん
09/06/23 03:38:03
31 30 30 25→100%
みたいな感じです

バイナリエディタのようなものを作ろうとしているので
stirlingは左バイナリデータで右側にShift-Jis, ASCIIなどを表示してますよね?
そういう感じのものを作りたい

903:デフォルトの名無しさん
09/06/23 03:48:11
charにキャスト

904:デフォルトの名無しさん
09/06/23 04:01:56
Encoding

905:デフォルトの名無しさん
09/06/23 04:04:34
>>899
URLリンク(dobon.net)

906:デフォルトの名無しさん
09/06/23 05:36:19
>>900
>>901
>>903
>>904
>>905
試してみますありがとう

907:デフォルトの名無しさん
09/06/23 09:47:01
なぜかBio100%を思い出した

908:デフォルトの名無しさん
09/06/23 10:02:41
どこからの連想か全く分からないが懐かしいな>Bio_100%

909:デフォルトの名無しさん
09/06/23 13:11:53
俺がバイナリエディタを毎日のように使っていた時代と
Bio_100%の全盛期が重なってね。で、>>902から連想した。

あの頃はアセンブラが必須科目だったし、バイナリのデータ構造なんて
知ってて当たり前だった。ちょっと上の方で揉めてエンディアンの話とか。

910:デフォルトの名無しさん
09/06/23 13:16:26
>>909
> 知ってて当たり前だった。
の割にはあまり刊行物では取り上げられなかったけどな。

911:デフォルトの名無しさん
09/06/23 13:21:59
>>910
C/C++の入門書ならほぼ間違いなく取り上げてる話題なんだが、どうよ。

912:デフォルトの名無しさん
09/06/23 13:23:56
>>911
悪い、勘違いした。
バイナリの構造って、たとえばPEヘッダとかそういうのだと思った。

913:デフォルトの名無しさん
09/06/23 13:31:43
また話がそれかかってるので燃料投下する。

C#で作ったプログラムで他のモジュールを読み込む場合、
モジュールをサブディレクトリに置いた場合に
アプリケーション設定ファイル(*.exe.config)に
<probing privatePath="libs" />
といった形で検索パスを記入するが、他の方法はどういったものが挙げられるだろうか。
いいところ、悪いところなど教えてくれると助かる。

914:デフォルトの名無しさん
09/06/23 13:52:31
>>913
API

915:デフォルトの名無しさん
09/06/23 14:05:15
URLリンク(www.atmarkit.co.jp)
を踏まえた上での話?

916:デフォルトの名無しさん
09/06/23 15:09:07
確かにPEヘッダは資料が少なくて苦労した

917:デフォルトの名無しさん
09/06/23 15:18:16
そういうのって、Linkers & Loadersが出るまでは、断片的な情報しか
手に入らなかったような気がするけど。

918:デフォルトの名無しさん
09/06/23 17:58:25
漠然とした質問ですが、
アセンブリ情報のGUIDってなんですか?
なんのためにあるんでしょう。

919:デフォルトの名無しさん
09/06/23 18:23:06
厳密名を定義するため

920:デフォルトの名無しさん
09/06/23 18:47:13
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Url = textBox1.Text;
}

エラー 1 型 'string' を型 'System.Uri' に暗黙的に変換できません。

webBrouserのURLプロパティに文字列を渡したいのですがどうすればできますか?

921:デフォルトの名無しさん
09/06/23 18:49:35
できません

922:デフォルトの名無しさん
09/06/23 18:52:30
string型をUri型に変換するメソッドを使うよ
webBrowser1.Url = New Uri(textBox1.Text);

923:デフォルトの名無しさん
09/06/23 19:01:04
>>919
何さらっと嘘書いてんだっ

924:デフォルトの名無しさん
09/06/23 19:11:56
webBrowser1.Navigateでできました。
かなり前に使ったときは別の方法を取ったのですが…

もうひとつ質問なのですがJaneの板一覧とスレ欄の間にある移動可能な敷居?はなんという名前でしょうか?

925:デフォルトの名無しさん
09/06/23 19:15:12
JaneはWinFormじゃないから同列には論じられないけどな
.NET 2.0のWinFormならSplitContainer

926:デフォルトの名無しさん
09/06/23 19:18:09
>>925
ありがとう

927:デフォルトの名無しさん
09/06/23 23:35:14
3週間経たずに埋まってしまいそうだな

928:デフォルトの名無しさん
09/06/24 00:33:30
LINQでfromが複数ある場合の挙動ってどうなるんでしょう。
情報を調べても見つけれず、実際の動作調べてはみたものの、
状況次第で動作が変わっているようなのでちょっとキモチワルイです。

 var src = { "Hoge", "Hage", "Huge" };
 var dist1 =
   from p in src
   from q in src // pから取得した値以外をqの情報源にすると...
   select new { P=p, Q=q }; // {Hoge,Hage,Huge}x{Hoge,Hage,Huge} 全組み合わせ9通りに展開される
 var dist2 =
   from p in src
   from q in p // pから取得した値をqの情報源にすると...
   select q; // 全pの中の全qの数だけ展開される。つまりH,o,g,e,H,a,g,e,H,u,g,eの12個
        // {H,o,g,e,H,a,g,e,H,u,g,e} x {Hoge,Hage,Huge}の全組み合わせ36通りにはならない

929:デフォルトの名無しさん
09/06/24 00:46:24
それぞれfrom...inの代わりにforeachで列挙してみれば分かると思うよ

930:デフォルトの名無しさん
09/06/24 00:48:02
>>929
あぁ、なるほど、納得です。ありがとうございます。

931:デフォルトの名無しさん
09/06/24 03:31:23
メソッド構文で書くとこう
var r1 = src.SelectMany(_ => src, (p, q) => new { p, q });
var r2 = src.SelectMany(p => p);
こちらのほうが実際の動作イメージはつかみやすいと思う。

932:デフォルトの名無しさん
09/06/24 04:32:33
会社でWindows 2000の縛りがあって
いつまで経っても.NET 3.0~3.5の世界に踏み込めないオレは
Linqなどグッジョブなテクノロジーがうらやましいぜ!

933:デフォルトの名無しさん
09/06/24 05:32:51
こんな時間に起きている人ってプログラマーじゃないよね?
ホビーグラマーだよね?

934:デフォルトの名無しさん
09/06/24 05:33:59
いつも5時に起きて23時に寝ていますよ

935:デフォルトの名無しさん
09/06/24 05:35:48
そんな健康的なプログラマーがいるのか

936:デフォルトの名無しさん
09/06/24 05:39:57
個人事業主ですが

937:デフォルトの名無しさん
09/06/24 05:56:36
>>936
雇ってください。年収200万で何でもします

938:デフォルトの名無しさん
09/06/24 06:02:42
ふらっとC#プログラマ始めました(初心者用) Part1

939:デフォルトの名無しさん
09/06/24 06:28:20
>>937
個人投資家ですが、ほんとうに200万でいいですか?

940:デフォルトの名無しさん
09/06/24 06:34:06
939はC#プログラマ(初心者)兼、個人付きメイドをゲットした。

941:デフォルトの名無しさん
09/06/24 06:36:54
メイド服も着れと言われれば着ます。男ですけど。
子供の時は女の子に間違われていたのでカツラも用意していただければたぶん・・・
プログラミングは最近始めたので余りお役にいは立てません

942:デフォルトの名無しさん
09/06/24 06:43:12
住民税+来年度の予定納税で 250万を超えることになって、
すでに死にかけですよ・・・orz

943:デフォルトの名無しさん
09/06/24 06:45:30
金融から200マン借りてる俺よりマシ

944:デフォルトの名無しさん
09/06/24 07:25:24
クラスは出来るだけ簡略化して多く作った方がいいとよく言われていますが
そうなんですか?

メソッドみたいな短い命令文をクラスにして大量に作るって感じでしょうか?

945:デフォルトの名無しさん
09/06/24 07:32:49
>>944
そうではなく、情報同士の依存性をなるべく減らすべき、ということ。
そして情報同士の関係性を形作る設計は、デザインパターンと呼ばれてカタログ化されている。

もっとも、.NET クラスライブラリみたいな巨大なツールセットが最初からあるから、
そもそもそのような複雑なことを考えるまでも無くかなりのことができてしまうわけだが。

946:デフォルトの名無しさん
09/06/24 11:31:18
>>944
問題は大きさとか数じゃなくて、ちゃん整理されているかどうかだよ。
どちらかと言えば簡略化すべきはクラスじゃなくてメソッドだな。
単純で確実に動くメソッドは再利用もしやすい。

947:デフォルトの名無しさん
09/06/24 11:42:44
Linqについてうまいことまとまってるサイトや書籍はないですか?
概論や入門レベルの情報はたくさん見つかるんですが、応用というか
「こういう事もできますよ」といった感じの

948:デフォルトの名無しさん
09/06/24 11:43:38
>>945
>>946
なんか奥が深そうですね

話は変わるけどプログラムする人は頭良さそうだけど
よくテレビでやってる能力テスト(知識を必要とするクイズとかじゃなくて)などはいい点取れるの?
関連のある図形を選びなさいとかの問題だとすぐ解けそうだね

949:デフォルトの名無しさん
09/06/24 11:48:16
気のせいだ

950:デフォルトの名無しさん
09/06/24 11:57:53
昔IBMのプログラマー適性検査みたいなの受けたが
まさにその図形を選んだりする、子供の時やった知能テストみたいなやつだったな。

951:デフォルトの名無しさん
09/06/24 12:10:54
すいませんC#で作ったソフトは、別途ランタイムが必要ですか?

952:デフォルトの名無しさん
09/06/24 12:18:43
>>951
いるいる

VISTA以降ならいらない

953:デフォルトの名無しさん
09/06/24 12:28:46
将来
.NetFrameWork6.7b以降が必要
なんてプログラムがでてきても

Vistaなら・・・Vistaならなんとかしてくれる!

954:デフォルトの名無しさん
09/06/24 12:30:05
>>952-953
ご丁寧にありがとうございます
Cの勉強で頑張ってみたいと思います

955:デフォルトの名無しさん
09/06/24 12:30:24
byte[] data=new byte[5000];
BitConverter.ToInt16(data,0);
これでバイナリデータを数値に変換できたんですけど

data[6]~data[7]
だけを数値にしたい場合良い方法はないでしょうか?

必要なだけ空の配列に代入しながらするのは大変なのです
こんな感じでかなりの数があるので
data[8]~data[10]
data[200]~data[204]
data[1200]~data[1204]

今はこんな感じで代入してます
num[0] = data[0x80];
num[1] = data[0x81];

956:デフォルトの名無しさん
09/06/24 12:32:54
>>955
同じような処理は関数化すればいいでそ

957:デフォルトの名無しさん
09/06/24 12:35:22
BitConverter.ToInt16(data, 6);
BitConverter.ToInt16(data, 8);
BitConverter.ToInt16(data, 200);
BitConverter.ToInt16(data, 1200);


958:デフォルトの名無しさん
09/06/24 12:36:17
Bufferクラス

959:デフォルトの名無しさん
09/06/24 12:36:23
>>952
ウソ言うなやボケ。
XPであっても、VISTAであっても、7であってもランタイムは必要。
VISTAには2.0と3.0のランタイムがすでに入っているが1.1や3.5,4.0のランタイムは含まれていないので
別途インストールしないとだめ。

960:デフォルトの名無しさん
09/06/24 12:41:53
>>956
private byte[] byteSpliter(byte[] data, int startIdx , int length)

なるほど、こんな感じかな?

>>957
これでいけましたw
それ以降全部数字に変換されると思ってました

ありがとうございます

961:デフォルトの名無しさん
09/06/24 13:02:51
職業プログラマーの適性は協調性があること、
コミュニケーションができること。

あとは腰痛などの持病がないこと。

962:デフォルトの名無しさん
09/06/24 13:05:26
プログラマは協調性が無く、女にモテなさそうだから就職しなかった

963:デフォルトの名無しさん
09/06/24 13:11:25
職業の性質上、元々問題がある奴が多いからそんな当たり前のことが言われてるだけだろ

964:デフォルトの名無しさん
09/06/24 13:15:02
未経験でプログラミングのお仕事がやりたいんですけどどのスレで助言を頂けますか?

965:デフォルトの名無しさん
09/06/24 13:15:30
助言を与える服がない

966:デフォルトの名無しさん
09/06/24 14:04:14
うちはプログラマの1/4はバイトからスタート。
2年ぐらいやってもらって見込みがあれば社員にスカウト。
あとの3/4は新卒か転職組。
いきなり未経験でプログラマーの正社員は無理じゃね?

967:デフォルトの名無しさん
09/06/24 14:07:24
マ板でやれ

968:デフォルトの名無しさん
09/06/24 14:07:53
バイトでよければ情報誌にいろいろ出てる
うちも求人出してるし

969:デフォルトの名無しさん
09/06/24 14:10:05
板違い

970:デフォルトの名無しさん
09/06/24 14:20:12
スカウトとか言ってる企業はブラック間違いなし。

971:デフォルトの名無しさん
09/06/24 14:42:49
35でプログラマ目指している俺がきましたよ

972:デフォルトの名無しさん
09/06/24 14:47:00
帰れ

973:デフォルトの名無しさん
09/06/24 16:35:18
ifを使って変数を比較したら何クロックぐらいですか?

974:デフォルトの名無しさん
09/06/24 16:38:05
>>973
ケースバイケース

975:973
09/06/24 16:44:53
変数の型によって等の条件によって違ってくるような気がしますが
平均的にはいくつぐらいになるのでしょうか 数十くらいですか?


976:デフォルトの名無しさん
09/06/24 16:45:03
>>973はツンデレ保守わかる

977:デフォルトの名無しさん
09/06/24 16:45:04
知らないなら黙っててください

978:デフォルトの名無しさん
09/06/24 16:46:34
CPUのクロックを測定するスレがあるからそっちで聞いてみたら?
昔と違って並列で動作したり、C#レベルだとJITでの最適化などで
単純に測定できないことが分かると思うから。

979:973
09/06/24 16:48:24
>>978
そうしてみます。
ありがとうございます。

980:デフォルトの名無しさん
09/06/24 16:50:21
>>975
本気で聞いているの?
全体集合(比較可能な型の全ての集合)もわからないのに,平均ってなんぞい?

正確なクロック数はわからないけど,Step by Stepの利いていないCPUでWindows環境なら
数百万回くらい比較を行うループの実行時間とQueryPerformaceFrequencyからクロック時間が割り出せそう
もちろんスレッドのコンテキストスイッチなど目にも留まらぬ速さの場合

981:973
09/06/24 17:05:22
本気で聞いています。
厳密なクロック数が知りたい訳ではなく
数十なのか、数百なのか、数千なのか、
そのぐらいのレベルで知りたいんですが。

982:デフォルトの名無しさん
09/06/24 17:10:49
980の言うように回数こなして実測が一番現実的だと思うがね。

CPUの命令レベルだったらだったら0~2クロック。
分岐予測を失敗したらストールで数十クロックとか。意味ないっしょ。
cmp EAX, EBX
jne   LABEL1

それからJITで特定の方向にしか分岐しないなら分岐命令自体が削除されることもある。

983:973
09/06/24 17:13:18
すいません。
ありがとうございました。

984:デフォルトの名無しさん
09/06/24 17:13:54
>>981
今のCPUはパイプラインだし多重キャッシュだし投機だし、正確に計るのは無理というか、
前提条件が足りなさすぎ。
とりあえずコードが最適化されてて変数の内容が32bit以下の整数値なら
レジスタに入ってるはずだからifは単純にCMP reg,reg、JE xxxxあたりに置き換えられて
合計で1.0クロック。
スレッドの遷移はifの数百倍以上のコストがかかるから外部から調べるのは困難。

詳しいことは、ここにCPUのマニュアルがあるから嫁。
INSTRUCTION LATENCY AND THROUGHPUTのところ
URLリンク(www.intel.com)

985:デフォルトの名無しさん
09/06/24 17:24:53
誰か実際にやってみれ
1億回ぐらいループ回して平均
該当部分の逆汗も頼むぜ

986:デフォルトの名無しさん
09/06/24 17:28:07
なんか難しい話してるね
俺からしたら宇宙語だわ

987:デフォルトの名無しさん
09/06/24 17:28:53
初心者スレでやるこっちゃないわな

988:デフォルトの名無しさん
09/06/24 17:29:14
>>985
言い出しっぺの法則

989:デフォルトの名無しさん
09/06/24 17:29:49
誰か次スレ立ててくれ
うちはずっと規制中で手も足も出ん

990:デフォルトの名無しさん
09/06/24 17:31:12
[>>1]>>980を踏んだ人は新スレを建てて下さい。

C#, C♯, C#相談室 Part53
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)

991:デフォルトの名無しさん
09/06/24 17:41:47
構造って作った後から重複をまとめて基本クラスにするのを繰り返すのが普通なんですか?
それとも最初から基本クラスから考えて派生を作っていくんですか?
最低でも書く前にこれはベースにまとめていくのがいいと思って構造を作っていって、出来あがってからコード化するのが限界だと思うんですが
最初からベースクラスから考えられる人っているんですか?いるとしたら日本語から英語を勉強した人が頭で考えるのが英語になるぐらいすごいんですが

992:デフォルトの名無しさん
09/06/24 17:55:24
いや基本的にそういう継承の使い方は間違い

993:デフォルトの名無しさん
09/06/24 18:12:14
>>991
3行目から下、いらないと思うぞ。何が聞きたいのかポイントがボケる。

最初から継承ありきで考えるのは、大抵の場合、間違いのもと。

994:デフォルトの名無しさん
09/06/24 18:18:31
ある機能が重複するなら、その機能をクラスに括り出してそのクラスのインスタンスをそれぞれが持つようにする。継承は不要。
最近は継承よりもそういうやり方の方が良いとされてる。

995:デフォルトの名無しさん
09/06/24 18:26:20
基本的には同じ動作だけど、個性を持たせたいとか
オセロ作るときに初級AI、中級AIのために必要だなって思ったよ
でも、継承しなくてもできることはできるんだよねー
このときは継承じゃなきゃだめだってのがよくわからない

996:デフォルトの名無しさん
09/06/24 18:29:22
単純に同じ配列、リストに入れたいときくらいかなあ

997:デフォルトの名無しさん
09/06/24 18:35:47
つinterface

998:デフォルトの名無しさん
09/06/24 18:37:45
うめ

999:デフォルトの名無しさん
09/06/24 18:38:59
ポリモルフィズム使いたいときだけだな
実装の継承はまさに>>991のような難しさがあるから避けられる
そりゃControlみたいに完璧な設計ができるというならやればいい

1000:デフォルトの名無しさん
09/06/24 18:39:36
継承は最後の手段って、あれは誰の言葉だっけ。マーティンファウラー?

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


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