ふらっとC#,C♯,C#( ..
692:デフォルトの名無しさん
09/06/19 11:17:29
//javaでの実装(期待通りに動く)
//※インデントに全角空白*2を使用
public class Test{
public static class ThreadMain implements Runnable{
private Object lockObj;
public ThreadMain(Object lockObj){
this.lockObj = lockObj;
}
public void run(){
synchronized(lockObj){
System.out.println("sub in sync");
lockObj.notifyAll();
System.out.println("sub out sync");
}
}
}
public static void main(String args[]) throws InterruptedException{
Object lockObj = new Object();
ThreadMain tm = new ThreadMain(lockObj);
Thread t = new Thread(tm);
synchronized(lockObj){
t.start();
System.out.println("main in sync");
lockObj.wait(); //待機中はlockObjのモニタは解放されている
System.out.println("main out sync");
}
}
}
693:デフォルトの名無しさん
09/06/19 11:18:59
上(>>691)のプログラムで、
main in sync
sub in sync
sub out sync
main out sync
というシーケンスになるようにしたいんだけど、どうしたらいいだろう?
期待している動作は、メインスレッドがWaitOneに入るときlockObjのロックが解放されて、
サブスレッドがSet()して、さらにlock文から抜けた後、
mainがlockObjのロックを再獲得してWaitOneから復帰するようなイメージ。
Visual C# 2005 Express SP1 (.NET 2.0)
694:デフォルトの名無しさん
09/06/19 11:29:32
lockとEventWaitHandleは全然別物なんだからそりゃうまくいくわけないな
lockはMonitorの糖衣構文だから、Monitor.WaitとMonitor.Pulseを使えば
695:693
09/06/19 11:29:40
あ、待機はスピンロックでなければ、EventWaitHandle,lock以外でも良いです
696:デフォルトの名無しさん
09/06/19 11:30:38
>>694
レスサンクス
ちょっとやってみる
697:デフォルトの名無しさん
09/06/19 11:38:20
うほ出来た
Monitorクラスはlock文用のEnterとExitしか無いと思い込んでた^q^
>>694 ありがとう
(変更点)
//EventWaitHandle lockObj
Object lockObj
//lockObj.Set();
Monitor.Pulse(lockObj);
//lockObj.WaitOne();
Monitor.Wait(lockObj);
698:デフォルトの名無しさん
09/06/19 13:30:18
VC++のCTreeCtrl(MFC)
CTreeCtrl::GetEditControl
に相当する処理を、
C#のTreeView
で探しています(VS2005 .NET Framework 2)。
なんとかして、エディット コントロールのハンドルが欲しいんですが、
どうしたらいいか、わかる人おられませんか?
699:デフォルトの名無しさん
09/06/19 14:46:48
道路標識みたいなアイコンのついたダイアログってどうやって出すんでしょう?
フォームを自作しなくても、既製の部品があると読んだ覚えがあるんですが、
どうしても思い出せません。
こういうやつです。
URLリンク(f.hatena.ne.jp)
700:デフォルトの名無しさん
09/06/19 14:53:41
MessageBox.Show("text", "caption", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
701:デフォルトの名無しさん
09/06/19 14:54:07
MessageBoxIcon
702:699
09/06/19 15:03:01
ありがとうございます。助かりました。
703:デフォルトの名無しさん
09/06/19 16:10:51
INTもクラスなんだなー
int x=new int();
x=12;
ってやってもちゃんとできるね。
704:デフォルトの名無しさん
09/06/19 16:26:27
クラスじゃないです
705:デフォルトの名無しさん
09/06/19 16:58:00
とりあえずINTとIntとintは違う物なので
きちんと書き分けないと話が通じなかったりするぞ
706:デフォルトの名無しさん
09/06/19 17:00:17
object i = 3;
なんてこともできます。
実際はboxingでInt32に変換されてるだけですが。
707:デフォルトの名無しさん
09/06/19 17:04:58
Int32に変換? 「から」だろ?
708:デフォルトの名無しさん
09/06/19 17:11:03
class Program {
static void Main(string[] args) {
object i = 3;
Console.WriteLine(i.GetType().FullName);
}
}
709:デフォルトの名無しさん
09/06/19 17:12:57
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Func(ref int x){
x=10;
}
private void Form1_Load(object sender, EventArgs e)
{
int y;
this.Func(ref y);
}
}
}
これコンパイルできない
引数に10を代入する関数Func作ったが
this.Func(ref y)のyがグローバルとか意味輪からんことでてきてる
どうすればなおせる?
710:デフォルトの名無しさん
09/06/19 17:15:32
エラー CS0165: 未割り当てのローカル変数 'y' が使用されました。
711:デフォルトの名無しさん
09/06/19 17:16:04
refじゃなくてout使っとけ
それかyに初期値代入しとくか
つかエラーメッセージぐらいちゃんと書け
712:デフォルトの名無しさん
09/06/19 17:45:54
豆知識
ダイアログがアクティブな状態でCtrl+Cを押すと
エラーメッセージがクリップボードに入るぞ
713:デフォルトの名無しさん
09/06/19 19:10:26
常識だろjk
714:デフォルトの名無しさん
09/06/19 22:32:06
練習として、例のごとくテキストエディタを作っているのですが、「切り取り」「コピー」「削除」の表示について質問です。
テキストが選択されている間のみ上記のメニューを選択できるようにしたいのですが、上手く表示されません。
具体的には、
TextBox内のテキストを選択している状態で編集メニューを開いても上記のメニューは選択できる状態にはならず、
右クリックでメニューを表示してから編集メニューを開くと上記のメニューが選択できる状態になります。
右クリックをした瞬間に何かを呼び出しているんでしょうか?
ちょっとわかりにくいでしょうか・・
ご教授願います。
715:デフォルトの名無しさん
09/06/19 23:23:00
>>714
メニューを開かれるタイミングで調べるんじゃなくて、
TextBoxの選択が変わったときにメニューのプロパティを書き換えるんだ。
716:デフォルトの名無しさん
09/06/19 23:24:18
メニューってContextMenuStripなのかMenuStripなのか
どっちにしろOpendイベントで判定すればいいと思うけど
717:デフォルトの名無しさん
09/06/20 01:06:17
string[] line = text.Split('\n');
string[] cell = line.Split('\t');
と書いたとき、
for (int i = 0; i < line.Length; i++) {textBox[i].Text = lineView[i];}
みたいに行は書けるけど、[i]行目のcell[0]はなんて書けばいいのでしょうか?
718:デフォルトの名無しさん
09/06/20 01:08:21
>string[] line = text.Split('\n');
>string[] cell = line.Split('\t');
どうみてもエラーです
719:デフォルトの名無しさん
09/06/20 01:23:29
列数が固定(widthとする)なら
string[] cells = table.Split(new char[]{'\t','\n'},StringSplitOptions.None)
ここでx列y行はcells[x+y*width]
720:デフォルトの名無しさん
09/06/20 01:53:38
なるほど。
cells[0] | cells[1] | cells[2]
cells[3] | cells[4] | cells[5]
と左から順番に設定するんですね!
これはすごい。
サンクス!!!
721:デフォルトの名無しさん
09/06/20 01:58:09
あんまりアホなこと教えないであげてください
722:デフォルトの名無しさん
09/06/20 02:03:07
微笑ましいじゃないか。
723:714
09/06/20 02:57:30
>>715
できました!
ありがと〜
Opendイベントとやらも調べてみます
724:デフォルトの名無しさん
09/06/20 02:59:17
どういたしまして
725:デフォルトの名無しさん
09/06/20 03:09:50
スレチな質問なんですがどこで聞いたら良いのか分からないので
ここで質問させてください。
Visual Studio 2008 StdのC#でGUIなアプリケーションを作成しているのですが、
ファイルを参照するボタンに画像を貼り付けたいと思います。
凝った画像ではなく、エクスプローラの「ファイルを開く」メニューに表示
されているようなアイコンで構わないのですが、どこかで配布されているの
でしょうか?
それとも皆さん毎回オリジナルの画像を作っているのですか?
726:デフォルトの名無しさん
09/06/20 03:18:13
初心者スレなのでアホな質問にも回答するが、スレ違いはお断り
727:デフォルトの名無しさん
09/06/20 03:27:21
>>725
MDI親フォームのリソースファイルの画像を使うとか。
728:デフォルトの名無しさん
09/06/20 03:29:33
シェルアイコンに微妙なセンスのアイコンがいっぱいある。
729:デフォルトの名無しさん
09/06/20 03:34:12
>>726
すまんです。
>>727-728
Windowsのシステムアイコンを抜き出して使うと言うことでしょうか?
アイコンの抜き出し方は知ってますが、やはりまずいですよね?
ここで聞けというスレがあれば誘導していただけるとありがたいです・・・
730:デフォルトの名無しさん
09/06/20 03:36:04
スレ違いだってわかってるなら汎用質問スレいけよカス
731:デフォルトの名無しさん
09/06/20 03:39:24
c#とVB両方インスコしちゃったら
ソリューションファイル開くときに
VisualC#とVBどっちで開くか聞いてきてうざい
VBけしたほうがいい?
732:デフォルトの名無しさん
09/06/20 03:45:03
>>731
>>726
733:デフォルトの名無しさん
09/06/20 03:57:11
>>725
インスコ先探せばVS2008ImageLibraryってのが多分どっかにある。無くても確かMSDNから落とせる。
>>731
.slnの関連付けを変えればいい。
まあ、無駄レス付けるくらいなら答え付けてもいいんじゃねってことで。
どこで聞いていいのか分らんなら汎用スレがある。次からこっち行ってね。
スレ立てるまでもない質問はここで
スレリンク(tech板)
734:727
09/06/20 04:13:29
>>729
ソリューションの新しい項目を追加でMDI親フォームを追加すると
アイコンついたボタンが最初からフォーム上にあるからその画像を使ったらって意味。
その画像の元はフォームのリソースファイルにある。
735:デフォルトの名無しさん
09/06/20 04:49:24
Visual Studio 2008 Part 17
スレリンク(tech板)
こっち行け
736:デフォルトの名無しさん
09/06/20 06:11:38
>>730
お前もいい加減スルーを覚えろよクズ
737:デフォルトの名無しさん
09/06/20 06:19:20
VS2003しか知らんが確かアイコン集が入っていたはず。
Common7フォルダだったかな?
最近は付いてないのかな?
738:デフォルトの名無しさん
09/06/20 06:34:03
あるスレッドで設定した変数を他のスレッドでも使うにはどうしたらいいでしょうか?
具体的にはBackgroudWorkerで設定した変数をstaticの変数に入れたいのです
別のスレッドではstaticが共有されないみたいなので行き詰ってしまいました。お願いします
739:デフォルトの名無しさん
09/06/20 06:45:42
silverlightでデータベース上に存在するバイナリファイルを呼び出してウェブ上で再生したいんですけど、どうすればいいのか分かりません。
誰かやり方or良いサイト知ってれば教えてください
英語でも構わないっす
740:デフォルトの名無しさん
09/06/20 08:07:50
>別のスレッドではstaticが共有されないみたい
そんなわけがない。
もしくは何か勘違いしてる。
741:デフォルトの名無しさん
09/06/20 08:24:41
>>740
なにか言葉足らずだったかもしれません、すいません
URLリンク(www.atmarkit.co.jp)
ここに共有されないと載っていたので
もう少しいろいろやってみます
742:デフォルトの名無しさん
09/06/20 09:24:56
C#初心者です。
ConvertとかString.Formatとか、特にnewで作成してないのに
使用できるクラスのメソッドがありますが、自分でもそんなクラスを作りたいのですが
どうすれば良いですか?
743:デフォルトの名無しさん
09/06/20 09:34:17
public int Method(int value){...}
↓
public static int Method(int value){...}
744:デフォルトの名無しさん
09/06/20 09:36:22
>>741
お、おまえは何を言っているのだ??
745:デフォルトの名無しさん
09/06/20 09:42:21
742
クラスがpublicでなかったようです。解決しました。
746:デフォルトの名無しさん
09/06/20 09:45:00
>>743
ありがとうございます。メソッドをstaticにしてみます。
747:738
09/06/20 10:13:29
public class userData
{
static public int a;
static public string b;
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
userData.a = 10;
userData.b = "abc";
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
MessageBox.Show("a : " + userData.a + ",b : " + userData.b);
}
わかりにくくてすいません
こんな感じでaとbを表示させたいのですが、どこがいけないのでしょうか
748:デフォルトの名無しさん
09/06/20 10:19:36
>>747
backgroundWorker1のRunWorkerCompleted イベントを作って、
その中で MessageBox.Show() を叩けば幸せになれるお。
749:デフォルトの名無しさん
09/06/20 10:25:41
>>748
ありがとうございます
表示できましたが、このaとbをBackgroundWorker以外でも使いたいのですが、これだとだめですよね?
750:デフォルトの名無しさん
09/06/20 10:34:29
>>749
俺はそういうことをしないようにしてるから、大正解の方法が分らんw
BackgroundWorkerの 「IsBusy プロパティが真の間は処理を待つ」とかかな?
751:デフォルトの名無しさん
09/06/20 10:35:57
>>750
そんなこと言ったらビジーループで待ってしまうじゃないか
752:デフォルトの名無しさん
09/06/20 10:39:25
>>750の補足
というか、BackgroundWorkerの処理完了後の動作はRunWorkerCompleted内に書けば全て解決。
button1は別スレッドを始動させるためだけのボタンと考えればいいんじゃないかな
>>751 本末転倒だなorzwww
753:デフォルトの名無しさん
09/06/20 10:55:32
そもそもバックグラウンドで処理するってのがどういうことか全然分かってないのかな?
754:デフォルトの名無しさん
09/06/20 11:06:57
順番に処理したいんなら普通に関数として呼ぶよな
755:デフォルトの名無しさん
09/06/20 11:07:11
一定時間ごとに前のBackgroundWorkerで設定したa,bを使ってまた処理させるみたいな感じなんですが、ちょっとやってみます
>>753
別スレッドで処理するってことくらいしかわかりません
756:デフォルトの名無しさん
09/06/20 11:11:18
>>754
結構時間がかかる処理なのでBackgroundWorkerでやってます
757:デフォルトの名無しさん
09/06/20 11:18:25
お前のレベルだとちょっと危ないな。
共有データの更新タイミングの同期とか、
何も考えてないってか気をつけなきゃならないって事も
何も分かってないだろ?
758:デフォルトの名無しさん
09/06/20 11:22:21
危ないだろうけど、でも必要ならやるしかない。
BackgroundWorkerの記事はネット上にあるはずだから、
自分で調べてどういうところに気をつければいいか勉強すればいいじゃない。
759:デフォルトの名無しさん
09/06/20 11:37:02
>>756
どんなに時間がかかろうと、結果が出るまで次に進めなくて、
ただ待ってるだけならバックグラウンドにする意味ナッシング。
760:デフォルトの名無しさん
09/06/20 11:50:14
>>747
public static volatile int a;
public static volatile int b;
a, b に volatile をつけると、あるスレッドで更新すれば別のスレッドに更新が伝わるようになる。
逆にvolatileのついていない変数では、あるスレッドで変更しても、その変更が別のスレッドにすぐに伝わるわけではない。
761:デフォルトの名無しさん
09/06/20 12:05:02
ここにあるはずのサンプルプログラムがほしいのですが、
ページの中に「ソースの表示」とか「ダウンロード」ボタンが見あたりません。
どうやって入手すればいいんでしょう?
URLリンク(msdn.microsoft.com)
762:デフォルトの名無しさん
09/06/20 12:23:23
>>759
進めなくても、キャンセルくらいはできて欲しい
あと、処理中に描画が止まる糞設計もやめて欲しい
763:デフォルトの名無しさん
09/06/20 12:34:14
>>760
適当なこと書くな。
だいたいこの場合だとvolatileとかいう問題じゃないだろ。
764:デフォルトの名無しさん
09/06/20 12:35:41
>>761
なんでここに質問するの?バカなの?死ぬの?
765:デフォルトの名無しさん
09/06/20 12:47:08
>>763
知らないならだまってればいいのに。
766:デフォルトの名無しさん
09/06/20 12:50:09
>>726
だまってろよw
767:デフォルトの名無しさん
09/06/20 12:50:42
単一のプロジェクト内で、特定の関数とかメソッドだけ
バックグラウンドにするメリットってあるの?
もちろん結果が出るまで待つ場合。
とりあえずバックグラウンドにするだけじゃ、
プロセスの優先順位は変わらないよね?
768:デフォルトの名無しさん
09/06/20 12:59:05
今回のはvolatileとかいう問題じゃなくて、
aとbを同時に更新(あたかも)する必要がないか、
更新タイミングの同期はどうするのかって方向であって、
この例でvolatile云々言うのは大抵的外れ。
769:デフォルトの名無しさん
09/06/20 13:05:28
だいたい、実質的にvolatileが要るのはもうちょっと状況が限られるよ。
必要な場合はあるけど、volatileつけないと別スレッドから見えないかっていうとそんなことはない。
まあ言い方に色々誤弊はあるけどね。
770:デフォルトの名無しさん
09/06/20 13:09:48
>>761
ローカルのヘルプからたどればいいのに・・・
それにそこのリンクからもダウンロードできるじゃないか
そこのリンク→方法 : サンプルを表示およびダウンロードする→Microsoft Download Center にアクセスします。
771:デフォルトの名無しさん
09/06/20 13:11:03
>>767
応答なしってタイトルバーに出たりするとユーザは不安になるもんだ
ちっとも経過を報告しないプログレスバーが行ったり来たりしてる方がマシ
キャンセルもできればなお良し
772:デフォルトの名無しさん
09/06/20 14:29:09
CLR2.0では暗黙に全ての書き込みがvolatile書き込みな件
773:デフォルトの名無しさん
09/06/20 14:44:36
double-checked lockingが使えるメモリモデルになってるって話か?
それ以上の意味なら、ソースが欲しい
774:デフォルトの名無しさん
09/06/20 14:46:03
初心者ネタじゃないからよそに行け
775:デフォルトの名無しさん
09/06/20 21:53:56
C#ではクラス名のあとに.をつけたら
いろいろ候補でるよね
Button1.って入力したら
ClickとかTopとかずらずらって。
あの候補のことなんていうんだっけ?
776:デフォルトの名無しさん
09/06/20 21:56:25
入力候補
インテリセンスの機能だな。
777:デフォルトの名無しさん
09/06/20 23:55:37
VS2008EEってセットアッププロジェクト作成機能ないの?
778:デフォルトの名無しさん
09/06/21 00:47:07
プロジェクトをすべて保存にしたら
フォルダが
binとobjにわかれていて
それぞれにdebug releaseの二つに分かれてて
全部で4つの同じexeがあるんだが
なんでこんなことしてんの?
20MBのexeを4つも作られたら容量圧迫してかなわん。
bin/obj
debug release
どのexeが正しいexeなの?
779:デフォルトの名無しさん
09/06/21 00:52:51
binが出力結果 objは中間ファイル置き場
DebugとReleaseは言わずもがな
780:デフォルトの名無しさん
09/06/21 01:53:10
20MBもいくほうがおかしい。
容量圧迫ってどんだけきつきつでやってんだよ。
781:デフォルトの名無しさん
09/06/21 03:25:53
exeが20MBって時点で、C#じゃなくてMFCアプリかなんかじゃね?
782:デフォルトの名無しさん
09/06/21 03:53:12
ベクタライズ最適化という言い方は中途半端だったかもしれない。
gccにおけるauto-vectorazationのことで、一般的には自動ベクトル化と訳されているようだ。
URLリンク(gcc.gnu.org)
本質的にはループを展開して並列実行させることだからSIMDが無くても
複数のレジスタに分ける方法だってあるわけだが、
SIMDに対応してるならそれに越したことは無いだろうな。
783:デフォルトの名無しさん
09/06/21 03:55:19
誤爆した。スマン。首吊ってくる。
784:デフォルトの名無しさん
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";
Bthis.dataGridView1.Rows.Add("1","2","3","4","5","6");
やってるのはこれだけなんですが、行のヘッダは3マス目に0が入り
Bのデータはなぜか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
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4690日前に更新/222 KB
担当:undef