C♯相談室 Part23

このエントリーをはてなブックマークに追加
664デフォルトの名無しさん:2005/05/19(木) 23:05:57
なにが?
665デフォルトの名無しさん:2005/05/19(木) 23:11:26
666デフォルトの名無しさん:2005/05/19(木) 23:13:08
オープンソースなだけで手本にはならないと思うが。
667デフォルトの名無しさん:2005/05/19(木) 23:30:56
以下のプログラムはコンパイルはできるんですがなぜか実行できません。
何ででしょうか?

#include <stdio.h>
#include <stdlib.h>
typedef struct node *link;
struct node {int item; link next;};

int main(int argc,char *argv[]) {
struct node heada,headb;
int i,N=atoi(argv[1]);
link t,u,x,a = &heada,b;
srand(1);
for(i=0,t=a;i<N;i++){
t->next = malloc(sizeof *t);
t = t->next; t->next = NULL;
t->item = rand() % 1000;
}
b = &headb; b->next = NULL;
for(t=a->next; t!=NULL;t=u){
u=t->next;
for(x=b;x->next!=NULL;x=x->next)
if(x->next->item > t->item) break;
t->next = x->next;
x->next = t;
}
}
668デフォルトの名無しさん:2005/05/19(木) 23:32:05
csc.exeではコンパイルも不可能だな。
669デフォルトの名無しさん:2005/05/19(木) 23:35:35
axWebBrowserについて質問させてください。

単純にaxWebBrowser組み込んだだけのページでブラウザ内のJavaアプレットが動作しません。
同じURLをIEで開くと普通に動作します。

何か設定をしてやらないといけないのでしょうか?
670667:2005/05/19(木) 23:37:41
言い忘れました。コンパイラはgccです。
671デフォルトの名無しさん:2005/05/19(木) 23:38:59
>>669
appletタグじゃなくてobjectタグを使うしかない
672デフォルトの名無しさん:2005/05/19(木) 23:43:13
>>671

即レスありがとうございます。
明日早速やってみます。
673667:2005/05/19(木) 23:43:51
すみません、タイトル見間違えてました。スレ違いでした。
674デフォルトの名無しさん:2005/05/19(木) 23:53:10
675デフォルトの名無しさん:2005/05/20(金) 03:04:17
>>673
お疲れ〜
676デフォルトの名無しさん:2005/05/20(金) 03:18:34
677デフォルトの名無しさん:2005/05/20(金) 11:05:01
C#で、テキストボックスの値を数値か文字かわかるようにして、
文字が入力されたらエラーメッセージを出すようにしたいのですが、
分かりません。教えてください。
678デフォルトの名無しさん:2005/05/20(金) 11:08:42
>>677
TextChanged イベントでチェックすればいいんじゃね?
679デフォルトの名無しさん:2005/05/20(金) 11:23:40
>>678
そのチェックの方法を教えてください
680デフォルトの名無しさん:2005/05/20(金) 11:40:19
正規表現でも使えば?

と書くとその使い方を(ryと返ってきそうでヤだな。
681デフォルトの名無しさん:2005/05/20(金) 11:49:46
VCのテキストボックスには数値のみの入力のオプションがあったのに、
.netにはなんでついてないんだろうな。
682デフォルトの名無しさん:2005/05/20(金) 12:39:29
そうなんです。数値のみの入力オプションがないため困っているんです。

正規表現を教えてください。お願いします。
683デフォルトの名無しさん:2005/05/20(金) 12:46:32
数値のみ入力のコントロールなら、numericUpDownを使えばいいんじゃね?
684デフォルトの名無しさん:2005/05/20(金) 13:01:02
>>683
ありがとうございます。

でも、numericUpDownだと矢印がついてしまうのです。
685デフォルトの名無しさん:2005/05/20(金) 14:14:52
何か方法はないですかね?
686デフォルトの名無しさん:2005/05/20(金) 14:21:04
あのな、「TextBoxの入力内容を制限する」なんてのはFAQなのな
もうちょっと調べろ&フラットスレにでもいってろ
687デフォルトの名無しさん:2005/05/20(金) 14:22:05
検索すれば見つかりそうではある。
688デフォルトの名無しさん:2005/05/20(金) 14:59:59
例外について質問なのですが、以下のような使い方でいいのでしょうか?
それともProcBの中にtry〜catchを置くべきなのでしょうか?

ProcA(){
try{
 ProcB(filename);
}
catch(FileNotFoundException){
 Console.WriteLine("ファイルは存在しません");
 return;
}
・・・略・・・
 return;
}

ProcB(Strig filename)
{
 XmlDocument xml = new XmlDocument();
 xml.Load(filename);
・・・略・・・
}
689デフォルトの名無しさん:2005/05/20(金) 15:07:48
690デフォルトの名無しさん:2005/05/20(金) 15:14:04
>>688
時と場合によるので画一的には答えられない。
その例なら、ファイルが見つからないときにコンソールにメッセージを書くだけで済ませられる所でcatchする。
//勿論途中で一旦キャッチして再スローしてもいいわけだが。
691デフォルトの名無しさん:2005/05/20(金) 15:20:16
>>690
ありがとうございます。

例えばProcBがライブラリの一関数として様々な箇所から呼ばれることを
想定した場合はどのようにするべきなのでしょうか?
692デフォルトの名無しさん:2005/05/20(金) 15:34:52
>>691
ケースバイケース・・・設計者の気分しだい(w
693デフォルトの名無しさん:2005/05/20(金) 15:45:04
それだけの情報じゃ答えられん気も。
694デフォルトの名無しさん:2005/05/20(金) 17:05:50
基本的に、「ProcBの内部で何をやってるかはライブラリを利用する側には分からない」という前提で例外を設計すると良いですよ。
695デフォルトの名無しさん:2005/05/20(金) 20:00:45
どっちにしろ ProcB 内で FileNotFoundException をスローするのは
作法上正しいとおもうよ。
696デフォルトの名無しさん:2005/05/20(金) 20:15:07
こういうXMLをXmlTextWriterで書きたいんですが
<element1(改行)
(タブ)attribute1="value1"(改行)
(タブ)attribute2="value2"(改行)
/>

xtw.WriteStartElement("element1");
xtw.WriteWhitespace("\r\n");
xtw.WriteAttributeString("attribute1", "", "value1");
(略)
と書くと、WriteWhitespace("\r\n")がうまくいかないらしくて
属性部分が出力されません。
あと、タブの出力の仕方もよく分かりません。
WriteWhitespace("\t")みたいなのじゃ駄目みたいです。

xtw.WriteStartElement("element1\n");
と文字列中に改行を入れると一見イイのですが、
次の行に半角空白が1個出てしまいます。

どうするのがよいのでしょうか。
697デフォルトの名無しさん:2005/05/21(土) 00:13:55
C#勉強中ですが、疑問がひとつ。
C#ではなんでグローバル変数のことを「フィールド」なんていうややこしい
言い方にしてるんでしょうか?
698デフォルトの名無しさん:2005/05/21(土) 00:25:37
>>697
C# にグローバル変数は存在しません。出直してきなさい
699デフォルトの名無しさん:2005/05/21(土) 00:49:26
ないことはありません。出直してきなさい
700デフォルトの名無しさん:2005/05/21(土) 00:56:49
698じゃないが、697=699なの?
どっちにしても荒れそうだ。
701デフォルトの名無しさん:2005/05/21(土) 01:00:14
>>699
いや、ないだろ
702デフォルトの名無しさん:2005/05/21(土) 01:02:22
どっちでもいいが、使わないほうがいいってのが良く分からんのだよ・・・
703デフォルトの名無しさん:2005/05/21(土) 01:06:59
>>702
class外の変数にアクセスしたら、そのclassが独立できないじゃないか。
704デフォルトの名無しさん:2005/05/21(土) 01:08:26
>>702
697=699=702?
> 使わないほうがいいってのが良く分からんのだよ・・・
オブジェクト指向のカプセル化原則に反するからです。
複数のクラスから同じ変数(フィールド)をいじろうとすると、
発見しにくいバグの元になります。
705704:2005/05/21(土) 01:09:58
自分で書いていて文脈がつながらない文になった。
703が代弁しているからそれでいいや。
706デフォルトの名無しさん:2005/05/21(土) 01:20:25
グローバル変数って死語だろ
707デフォルトの名無しさん:2005/05/21(土) 01:22:41
ナウなヤングにバカ受け
708デフォルトの名無しさん:2005/05/21(土) 01:23:30
>703-704
697,699とは別人の702だが。
うむ。勉強しなおしてくるよ・・・。
709700,703:2005/05/21(土) 01:24:52
俺の言ってるのと違う話で代弁とか言われても困惑する。
バグの元とかいう次元じゃないつもりだ。
710704:2005/05/21(土) 01:26:23
オブジェクト指向の〜 → バグの元

という流れより

オブジェクト指向の〜 → クラスの独立性が〜

としたほうが自然だねってことで…
あまり気にしないでください…
711デフォルトの名無しさん:2005/05/21(土) 01:46:43
てかグローバル変数って何?そんなレベルの低そうなもの知らないんだけど
712デフォルトの名無しさん:2005/05/21(土) 02:02:22
Simulaの効率性の悪さに嫌気がさしたBjarne Stroustrupは、やっぱ
グローバル変数(つかstatic記憶クラスの変数)は必要だと
痛感したらしいけどね

そんな彼も、C++のstatic変数の初期化順序の問題に頭を悩まされる
ことになる
713デフォルトの名無しさん
>>711は窓際プログラマー