ふらっとC#,C♯,C#(初心者用) Part24at TECH
ふらっとC#,C♯,C#(初心者用) Part24 - 暇つぶし2ch175:デフォルトの名無しさん
08/02/05 23:00:11
なんでC#ってネイティブコード吐けないんだろ

176:161
08/02/05 23:00:46
monoはうにx版.NETみたいな感覚でした、それは置いておいて無理ですか、把握しましたありがとう

177:デフォルトの名無しさん
08/02/05 23:01:40
無理じゃないと言っているのだが。

178:デフォルトの名無しさん
08/02/05 23:01:44
>>175
.NETを使うために作られた言語だから

179:デフォルトの名無しさん
08/02/05 23:01:45
一応マルチプラットフォームを考えてるんだろうが、
だったら MS が色んなプラットフォームで処理系作りやがれと。

180:デフォルトの名無しさん
08/02/05 23:02:45
吐けないんじゃない。吐かないだけ。

181:デフォルトの名無しさん
08/02/05 23:03:27
馬鹿でかいBCLが障害

182:デフォルトの名無しさん
08/02/05 23:03:51
>>175
フレームワーク使う言語としては正しいけどね・・・

183:デフォルトの名無しさん
08/02/05 23:04:12
>>177
馬鹿?

184:デフォルトの名無しさん
08/02/05 23:04:17
ネイティブコード吐ければもっと普及すると思う

185:デフォルトの名無しさん
08/02/05 23:04:54
何でネイティブコードにこだわってるんだ?馬鹿なの?

186:デフォルトの名無しさん
08/02/05 23:05:26
>>185
そこは突っ込みどころと違う

187:デフォルトの名無しさん
08/02/05 23:06:24
>>185
バカはお前だろ

188:デフォルトの名無しさん
08/02/05 23:06:35
そもそも.NETを普及させるための言語なわけだから
ネイティブコードを吐けるようにして普及を図ったところで意味がない

189:デフォルトの名無しさん
08/02/05 23:07:04
CPU ごとに別のマシン語はかないといけないとなると
処理系作るの面倒だし・・・。

190:デフォルトの名無しさん
08/02/05 23:07:04
もう.NETとかいう思想自体が古いけどな

191:デフォルトの名無しさん
08/02/05 23:08:17
>>175
いきなりネイティブコード吐くとリフレクションやLCGと相性悪そうだがその辺考えてみた?

192:170
08/02/05 23:08:26
MSDNの読み方というか、歩き方みたいなのがいまいち分からんのです。
ググる時も、大抵先頭にくるMSDNはなるべく避けて、@ITとかのサイトに逃げてます・・・
機械翻訳ぽいのがどうにも

193:デフォルトの名無しさん
08/02/05 23:08:32
>>190
何が古いんだ?具体的にどうぞ。

194:デフォルトの名無しさん
08/02/05 23:10:18
新しいのが出てないのに古いとはなかなか言い辛いでしょう

>>192
俺がMSDN渡り歩けるようになったのはプログラミング歴5年目くらいです
非常に遅いな

195:デフォルトの名無しさん
08/02/05 23:10:32
というかネイティブコードじゃないこととフレームワークは関係ないだろ。

196:デフォルトの名無しさん
08/02/05 23:12:17
>>192
基本的にMSDNはリファレンス。辞書。
分からないときに引くものであって、教科書じゃない。
MSDN2になって翻訳は随分まともになったと思うが。

197:デフォルトの名無しさん
08/02/05 23:13:07
>>192
@ITは正しい選択

198:デフォルトの名無しさん
08/02/05 23:13:54
まあ変なVB系Tipsサイトよりは

199:デフォルトの名無しさん
08/02/05 23:14:04
そしてブーデー川俣の記事読むのか

200:デフォルトの名無しさん
08/02/05 23:17:31
.NET Tipsで十分場合が多い

201:デフォルトの名無しさん
08/02/05 23:18:13
緑のバイク

202:デフォルトの名無しさん
08/02/05 23:19:46
C#、でぐぐってでた1ページ目が日本語C#情報の9割だと思う俺

203:デフォルトの名無しさん
08/02/05 23:20:18
むしろ9割9分くらいだろ

204:デフォルトの名無しさん
08/02/05 23:24:27
何件表示するかの設定によるんじゃ

205:デフォルトの名無しさん
08/02/05 23:54:25
多次元配列の初期化で、配列初期化子は変数かフィールド初期化子の中でのみ使用できます。新しい式を使用してください。
というエラーが取れなくて困っています。
int[ , ] hoge = new int[ , ] {
 { 1, 2 },
 { 1, 2 }
};
は問題ないのに、
int[][ , ] hoge = new int[][ , ] {
 { new int[]{ 1, 2 }, new int[]{ 1, 2 } }, // ★
 { new int[]{ 1, 2 }, new int[]{ 1, 2 } }, // ★
};
とすると、★の行を指して上記のエラーがでます。
intからint[]に型を変えただけだと思っているのですが、何が違うのでしょうか。

206:デフォルトの名無しさん
08/02/05 23:58:49
>>205
int[]の[,]なんだから逆
int[,][]

207:デフォルトの名無しさん
08/02/06 00:00:10
基本やり直し。

配列初期化子ってわかる?

208:デフォルトの名無しさん
08/02/06 00:01:33
>>207
お前は分かってるのかよ。わかってるなら書け。

209:デフォルトの名無しさん
08/02/06 00:01:51
>>207
そんな大げさな間違いじゃない

210:デフォルトの名無しさん
08/02/06 00:03:03
>>206
ほんとだ…
ありがとうございます。

211:デフォルトの名無しさん
08/02/06 00:21:43
>>179
いろんなプラットフォームありますよ。
x86, x64, IA-64
.NET Compact Framewrok
.NET Micro Framework
どれもWindows上というのはご愛敬w。

後は申し訳程度にSSCLIがFreeBSD対応だった気がする。

212:デフォルトの名無しさん
08/02/06 00:23:00
Linuxはmonoがあるしなぁ
MSも支援してるし

213:デフォルトの名無しさん
08/02/06 00:25:52
質問した当人ですがあらゆるWindows上で使えたらなぁとか思ってました

214:デフォルトの名無しさん
08/02/06 00:26:23
フィールドって言葉がイマイチなじめない
メンバ変数って言いたくなる

215:デフォルトの名無しさん
08/02/06 00:46:59
>>213
「あらゆるWindows」ってなにがあるの?

216:デフォルトの名無しさん
08/02/06 00:48:40
Windows1.0

217:デフォルトの名無しさん
08/02/06 00:49:29
ごめんなさい凡そ今いるWindowsユーザーです
だから.NETなくて良いって条件さえあればVistaは知らないけどいけるかな

218:デフォルトの名無しさん
08/02/06 00:49:50
最後にとが抜けたorz

219:デフォルトの名無しさん
08/02/06 00:50:30
.net入れればいいじゃん。

220:デフォルトの名無しさん
08/02/06 01:13:06
今時.NETくらい誰でも入れてるだろ、とかいう認識の俺はだめなんだろうな

221:デフォルトの名無しさん
08/02/06 01:14:33
.NET程度が使えない環境は切り捨てられるべき

222:デフォルトの名無しさん
08/02/06 01:24:51
private void foo(string hoge, string piyo)
{
 いろいろ処理
 foo(fuga, hogehoge);
}



private void foo(ref string hoge, ref string piyo)
{
 string hoge0 = hoge;
 string piyo0 = piyo;
 いろいろ処理
 foo(ref fuga, ref hogehoge);
}

どっちが良いんでしょうか?
渡す文字列は100文字程度で再帰による関数の呼び出しは100~5000回くらいです
後者が良い気がするのですが、文字列100文字程度なら前者のがいいのかなぁと考えてます

223:デフォルトの名無しさん
08/02/06 01:26:39
やっとまともな質問だなw

後者でいいよ、むしろなんで前者選ぼうと思ったの?

224:デフォルトの名無しさん
08/02/06 01:27:31
      ___    ━┓
    / ―\   ┏┛
  /ノ  (●)\  ・
. | (●)   ⌒)\
. |   (__ノ ̄  |
  \        /
    \     _ノ
    /´     `\
     |       |
     |       |

225:222
08/02/06 01:28:48
>>223
やっぱりそうですか

>>224
参照渡しって初めて知りまして、なんかやばいですか?

226:デフォルトの名無しさん
08/02/06 01:29:08
5000plyも呼べたっけ?

227:222
08/02/06 01:31:12
実際はあんな形ではないんですが、想定してるのは5000回くらいまでです

228:デフォルトの名無しさん
08/02/06 01:31:22
ああ末尾ね

229:222
08/02/06 01:36:42
すみません、fugaとhogehogeはいろいろ処理、と書かれてる部分で引数を元に
値を設定されたstring型です

230:デフォルトの名無しさん
08/02/06 01:43:15
>>225
なんかやばいかどうかは使いどころ

たとえば,参照渡しだと副作用完了点が関数内部まで拡大する可能性がある.
 2*n*val_func(n) ≠2*n*ref_func(n)

かもしれない

231:デフォルトの名無しさん
08/02/06 01:48:55
とりあえず自宅のC#3.0で下記を試したら,一つだけ結果違った
static void Main(string[] args) {
    int n;
    n = 5;
    Console.WriteLine(2 * n * valfunc(n));
    n = 5;
    Console.WriteLine(2 * n * reffunc(ref n));

    n = 5;
    Console.WriteLine((2 * valfunc(n)) * n);
    n = 5;
    Console.WriteLine((2 * reffunc(ref n)) * n);
    Console.ReadLine();
}
private static int valfunc(int n)     { n = -n; return n; }
private static int reffunc(ref int n) { n = -n; return n; }

あと再帰に関してはrefもvalも計算コストはそんなに変わらないと思っている.
とある言語の実装だと「refは,呼び出し元でコピーした変数を値渡しして,戻ってきたら本物に上書き」みたいなことやってたみたい.

232:222
08/02/06 01:53:51
参照渡しじゃなくてポインタ使えればなぁ、と思うんだけどそうもいかないんですよね

>>230
それだと非常にやばいです、それとあまり差がないんですか、ありがとうございます
どの道わからなければ安全そうな値渡しにしようと思ってたのでこれでいってみます
ありがとうございました

233:デフォルトの名無しさん
08/02/06 02:05:19
C#ってオブジェクト渡しは全部参照渡しみたいなもんじゃないの?

234:デフォルトの名無しさん
08/02/06 02:07:22
参照型は参照渡し
値型は値渡し

235:デフォルトの名無しさん
08/02/06 02:07:53
FileInfoとか渡したらどうなるんだろうね

236:デフォルトの名無しさん
08/02/06 02:09:55
参照だろ

237:デフォルトの名無しさん
08/02/06 07:28:13
stringは参照渡しだからrefなんざつけんでいい
stringの代入はコピーではなくポインタを代入してるだけ

238:デフォルトの名無しさん
08/02/06 07:40:12
>>232
stringを渡すときrefつけるのとつけないので結果が変わる場合があるのはわかってる?

239:デフォルトの名無しさん
08/02/06 08:23:49
>>234
参照型を値で渡すのと参照渡しは違うよ。
揚げ足取りじゃなくて全然違う。

240:デフォルトの名無しさん
08/02/06 09:26:56
なぜ説明を書かないのだろう。

241:デフォルトの名無しさん
08/02/06 09:59:58
揚げ足取りだから

242:デフォルトの名無しさん
08/02/06 10:34:02
MSDNでrefで検索して最初に出て来るページにすっかり書いてあるだろJK

243:デフォルトの名無しさん
08/02/06 11:03:23
メソッド内で生成された参照型のインスタンスへの参照を、呼び出し元で受け取るには、refなりoutなりを使って参照の参照を渡す必要がある。(returnは別として)
呼び出し元で作成したインスタンスを操作するなら、インスタンスの参照を渡せばいいから、refはいらない。

引数をメソッド内で変更したい場合、Stringみたいに操作する度に新しいインスタンスが生成されるタイプのクラスは前者。StringBuilderみたいに新たなインスタンスを生成せずに操作できるタイプのは後者。

244:デフォルトの名無しさん
08/02/06 11:16:06
読み返してみるとくどくて意味不明だな。すまん。
徹夜明けだからもう寝るわ。

245:デフォルトの名無しさん
08/02/06 14:51:23
using System;
using System.Text;

namespace ConsoleApplication1{
  class Program
  {
   static void Main(string[] args)
   {
    StringBuilder strbld = new StringBuilder("Start");
    EditValue(strbld);
    Console.WriteLine(strbld.ToString()); //出力:Start+Edit

    ChangeValue(ref strbld);
    Console.WriteLine(strbld.ToString()); //出力:Changed

    NotChangeValue(strbld);
    Console.WriteLine(strbld.ToString()); //出力:Changed

    Console.ReadKey(true);
   }
   static void EditValue(StringBuilder value)
   { value.Append("+Edit"); }

   static void ChangeValue(ref StringBuilder value)
   { value = new StringBuilder("Changed"); }

   static void NotChangeValue(StringBuilder value)
   { value = new StringBuilder("NotChanged"); }
  }}

こういうことか。勉強になった。Thx

246:デフォルトの名無しさん
08/02/06 15:00:13
違うだろ

247:デフォルトの名無しさん
08/02/06 15:06:43
参照型の参照渡しはポインタtoポインタ(**object)だな
まぁ,C風に覚えてもかまわないと思われ

248:デフォルトの名無しさん
08/02/06 15:16:11
>>246
どう違うの?
出力結果を見ると違わないんだけど。
アホにも分かるように教えてくれ。

249:デフォルトの名無しさん
08/02/06 15:22:19
>>248
>>246 ではないが NotChangeValue の後が違うかと。

250:デフォルトの名無しさん
08/02/06 15:29:56
ん?stringもref stringも
関数内で引数を書き換えなきゃ変わらんだろ

251:デフォルトの名無しさん
08/02/06 15:48:50
あーそうか、ChangeValueとかNotChangeValueとかいう関数名が分かってないようにとられた原因か。
ChangePtrとNotChangePtrに名前を変更して読んでちょうだい。

上記二つのメソッドは参照の参照を変更しようとしているから、
参照渡しをしないNotChangePtrの方は当然参照が変更されない

EditValueというメソッドは、参照型を値渡しで受け取り、それのインスタンスメソッドによって
インスタンス自身が変化する。

こういう認識でいいんだよね?

252:デフォルトの名無しさん
08/02/06 15:51:24
>>250
意味分からん。
コードで書くとどういうこと?



253:デフォルトの名無しさん
08/02/06 15:52:24
他Formから値を参照したいのだがわからないww
初心者過ぎて笑われそうだが…
Form1,2で
1に設置しているRadiobuttonをCheckすることで
2に値の変化を与えたい。
わかりにくい説明ではあるが誰か教えてくださいな^ω^

254:デフォルトの名無しさん
08/02/06 15:53:18
>>249
コンパイルして走らせてみた?
出力結果は間違いないよ?

255:デフォルトの名無しさん
08/02/06 15:53:45
>>253
C#の基礎というかプログラミングの基礎のページ見て来い

256:デフォルトの名無しさん
08/02/06 15:55:22
>>253
"デリゲート"でググれ

257:デフォルトの名無しさん
08/02/06 15:59:35
すまんID出ないんだったな。

>>245
>>248
>>251
>>254

全部同一人物です。
以後コテハン245になるとしよう。




258:デフォルトの名無しさん
08/02/06 16:00:24
>>250
static void Main( string[] args )
{
    string str = "250 は";
    Manuke( str );
    Console.WriteLine( str );
    Teinou( ref str );
    Console.WriteLine( str );
    Console.ReadKey();
}

static void Manuke( string s )
{
    s = "間抜け";
}

static void Teinou( ref string s )
{
    s = "低能";
}


259:坊
08/02/06 16:03:50
ありがとっす^ω^

260:坊
08/02/06 16:05:29
あっ
>>253
ですww
困ったらまたきますんでw

261:254
08/02/06 16:05:47
>>258

禿同。

参照渡しと値渡しの違いって中級者でも分かってない人が多いって記事をどっかで見たことある。

262:デフォルトの名無しさん
08/02/06 16:06:01
>>258
そんなレベルの話してたのか?

263:262
08/02/06 16:07:05
あ、値渡しはともかく参照渡しってCのアドレス(ポインタ)渡しと結局同じだと思ってたけど違うの?って意味な

264:デフォルトの名無しさん
08/02/06 16:08:55
>>258
だからそうやって引数を書き換えなきゃ同じだろ

265:デフォルトの名無しさん
08/02/06 16:11:19
>>264
彼らは参照渡しは知ってても使い方を知らないんだろう

266:デフォルトの名無しさん
08/02/06 16:13:00
>>258が話の流れと日本語を読めないってことだけは分かった

267:デフォルトの名無しさん
08/02/06 16:14:53
>>263
まあ凡そ。
それを大前提に進んでた話なんだけど>>258が爆発した

268:デフォルトの名無しさん
08/02/06 16:16:08
かわいそうな>>258がいるスレ

269:デフォルトの名無しさん
08/02/06 16:27:43
で、話の大元の>>222に立ち返ったとして何を議論してたんだっけ?



270:デフォルトの名無しさん
08/02/06 16:32:29
>>222は前者でいいってことじゃね
余計な副作用を与えないために

271:デフォルトの名無しさん
08/02/06 18:05:58
>>247
というか、むしろそのほうが分かりやすいような気が
「参照情報」なんて回りくどい言い方せずに、「アドレス」って言ったほうがイメージが伝わりやすいような

272:デフォルトの名無しさん
08/02/06 18:36:51
>>271
根本に返って冷静に考えてみ。
アドレスの方が本来間接的な表現な上に間違ってるでしょ。

参照をもし言い換えるのなら、俺なら「位置情報」と言うな。

273:デフォルトの名無しさん
08/02/06 18:37:58
いやそりゃアドレスじゃん、英語のアドレスが住所としか略されないとでも思ってるのか?

274:デフォルトの名無しさん
08/02/06 18:38:52
位置情報を英語に置き換えりゃアドレスになんだろ
機械翻訳で訳される2単語が実用される英語だとでも思ってんのかね

275:デフォルトの名無しさん
08/02/06 18:40:47
>>272
厳密な意味ではいろいろあるだろうけど、初心者にとっては直感的にはアドレスが一番しっくりくると思うが

276:デフォルトの名無しさん
08/02/06 18:41:26
最近はスレタイも読めないバカが増えたな

277:デフォルトの名無しさん
08/02/06 18:43:29
>>273
住所にすら略されないが?

278:275
08/02/06 18:44:59
×初心者
○日本人の初心者

まぁ瑣末事だけどw

279:デフォルトの名無しさん
08/02/06 18:51:16
>>274
言葉にはそれぞれ意味上のふり幅ってものがあるんだよ。
特に英語のような多義的な言葉を文脈によって使い分ける傾向が高い言語ではね。

"address"は多義的過ぎる上に、コンピュータの世界では別の抽象レベルで
既に別の意味で使われているから望ましくない。

もっと意味のふり幅が少ない言い方を工夫すべき。

……ここまで補足しないとわからないかねえしかし。。

280:デフォルトの名無しさん
08/02/06 18:53:19
エイリアスでええやん

281:デフォルトの名無しさん
08/02/06 19:00:55
アプリケーション設定を暗号化して保存したいんですが、いまいち
system.comnfigurationクラスの使い方がよくわかりません。
どっか良いサンプルないですか?
MSDN読んでもいまいちよくわかりません。


282:デフォルトの名無しさん
08/02/06 19:34:25
暗号化は変なサンプルも多いから気をつけろよ

283:デフォルトの名無しさん
08/02/06 21:00:59
ポインタの参照渡し

284:デフォルトの名無しさん
08/02/06 21:27:31
最近のスレの内容・・・予想以上に.NET普及は早そうだな

>>281
BinaryFormatterとかでは駄目なの?

285:デフォルトの名無しさん
08/02/06 22:37:14
メソッドに渡す引数の属性で[in]や[out]があるんですが、
これはC#のrefやoutとは違うものなんでしょうか

286:デフォルトの名無しさん
08/02/06 22:41:38
そいつはマーシャラに対する指令

287:デフォルトの名無しさん
08/02/06 22:41:57
[Out]はoutと同じ。
refは[In][Out]相当。
[In]単独は、アンマネージとの相互運用で使うことがある。

288:デフォルトの名無しさん
08/02/06 22:45:50
C#の中だけで完結する限りは[in]や[out]は無意味

289:デフォルトの名無しさん
08/02/06 22:47:46
C/C++で作ったコードをC#で使えるようなラッパーを作りたいんですが
参考になるようなHPとか本あったら教えてください

290:デフォルトの名無しさん
08/02/06 22:48:35
俺も知りたい

291:デフォルトの名無しさん
08/02/06 22:48:49
C++/CLIでいいじゃないか。

292:デフォルトの名無しさん
08/02/06 22:51:14
>>289
本は知らんが、このあたりのキーワードでMSDNとか
探してみればなんかヒントあるんじゃね。

* COM Interop
* P/Invoke
* C++/CLI

293:デフォルトの名無しさん
08/02/06 22:54:18
VC#2008対応の解説本早く出せよ。

294:デフォルトの名無しさん
08/02/06 22:57:05
誰に言ってるのw
君統合失調の初期症状じゃないのマジで

295:デフォルトの名無しさん
08/02/06 22:59:48
確かにアンマネージドとの連携について詳しい本があったら欲しいな

Win32API叩く度に検索して調べるの面倒になってきた

296:デフォルトの名無しさん
08/02/06 23:00:45
つMSDN

297:デフォルトの名無しさん
08/02/06 23:08:54
>>295
Win32API使うだけなら、P/Invoke.netとかでいいだろ。

298:デフォルトの名無しさん
08/02/06 23:10:21
>C#の中だけで完結する限りは[in]や[out]は無意味
そうでもない。


299:デフォルトの名無しさん
08/02/06 23:16:48
>>298
具体的にkwsk

300:デフォルトの名無しさん
08/02/06 23:18:40
WebBrowserコントロールでブラウザ作ってるんですが、yahoo.co.jpを開いて閉じるとフリーズしてしまいます。
Googleとかだと大丈夫なのですが。
なんででしょうか?
バグってるんでしょうか?

301:デフォルトの名無しさん
08/02/06 23:20:26
説明にもなってない
それで解決できるはずも無い

まあ確かにWebBrowserは色々胡散臭いが

302:デフォルトの名無しさん
08/02/06 23:24:52
あなたのコードがバグってるんでしょうね

303:デフォルトの名無しさん
08/02/06 23:33:14
WebBrowserはJavaScript周りがバグりまくっている。
JavaScript以外にもFlashを使っているサイトを表示した直後も半フリーズ状態になる。

で、結論は「使うな」。
IEコンポーネントで全て置き換えろ

304:デフォルトの名無しさん
08/02/06 23:46:28
新規プロジェクト作ってWebBrowser貼り付けて、下記の1行を追加しただけで終了時に固まる。

public Form1()
{
InitializeComponent();
webBrowser1.Url = new Uri("URLリンク(www.yahoo.co.jp)");
}

で、原因はWebBrowserは開いたページの内容によっては内部で立ち上がった謎のスレッドが終わらなくなる
直る見込みはない
諦めろ


305:デフォルトの名無しさん
08/02/06 23:50:33
>直る見込みはない
何故ですかね?MSにやる気がないから?

306:デフォルトの名無しさん
08/02/06 23:55:02
>>305
WebBrowser Controlが登場して何年経ったと思ってるんだ
海外の方でも2年近く前から話題になっているくらいの問題だぞ
URLリンク(www.eggheadcafe.com)

直るならとっくの昔に直ってる

307:デフォルトの名無しさん
08/02/07 00:09:08
>>304
固まらなかったよ

308:デフォルトの名無しさん
08/02/07 00:29:46
>>304
VS2005
Win2003R2x64
固まる

309:デフォルトの名無しさん
08/02/07 00:34:05
>>304
固まるというか、ウィンドウは閉じてるのにVS2005がデバッグ実行中のままになった

310:デフォルトの名無しさん
08/02/07 00:42:20
>>304
XP
VS2008
.NET Framework3.5
固まらない

311:デフォルトの名無しさん
08/02/07 00:42:25
WebBrowser使ったこと無いからよく分からんが
スレッドがバックグラウンドになってないんじゃないか?

312:デフォルトの名無しさん
08/02/07 00:44:07
WebBrowserと名前のつくコントロールは、
大昔のVBやDelphiからあったが、
どれもこれもまともに使える代物じゃなかったな。

313:307
08/02/07 00:44:20
VS2005Pro
XPx64SP2
IE:7.0.5730.11
Flash:9.0.115.0
プラットフォーム:x86
固まらない

314:デフォルトの名無しさん
08/02/07 00:47:52
コンストラクタ内で実行しなけりゃいいんじゃね?

315:デフォルトの名無しさん
08/02/07 00:48:36
>固まる環境の人
Navigateメソッドでもなる?

316:デフォルトの名無しさん
08/02/07 00:58:16
>>315
なった
コンソール用のテストコード書いてみたが、こちらも見事に固まる
ちなみに終了シグナルは飛んできて一見終わった様に見えるが、
残骸が残っていて悪さしているようだ

class test {
ManualResetEvent _mre = new ManualResetEvent(false);
public void run() {
Thread thread = null;
try {
_mre.Reset();
thread = new Thread(new ThreadStart(entry));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
} finally { _mre.WaitOne(); }
}
void entry() {
WebBrowser bra = new WebBrowser();
browser.Navigate("URLリンク(www.yahoo.co.jp)");
while (_browser.ReadyState != WebBrowserReadyState.Complete) { // 省略 }
_mre.Reset();
}
}

317:デフォルトの名無しさん
08/02/07 01:02:56
>>306
海外とか知らねえよバカ

318:デフォルトの名無しさん
08/02/07 01:29:08
テストプログラム
URLリンク(www2.uploda.org)

319:デフォルトの名無しさん
08/02/07 01:37:03
>>318は www.google.co.jp になっているから、www.yahoo.co.jp に変更して試して見るべし

320:デフォルトの名無しさん
08/02/07 01:40:36
>>316
ちなみにIEのバージョンは?

321:デフォルトの名無しさん
08/02/07 01:43:14
>>320
Windows Server 2003R2 x64
IE 6.0.3790.1830 SP1
.NET3.0は入れてない

322:デフォルトの名無しさん
08/02/07 01:52:31
家のパソコンにIE6が入ってるから試そうと思ったけど繋がらないや
帰るか

323:デフォルトの名無しさん
08/02/07 02:15:42
>>318-319
このエラーでた
意味はわからん
URLリンク(msdn2.microsoft.com)

324:デフォルトの名無しさん
08/02/07 08:25:57
>>284
binaryformatterは暗号化していないので解析しようと思えば
すぐできてしまうから、パスワードなんかは保存したくないわけです。
system.security.cryptographyのクラス群で暗号化してから保存すれば
同じことなんですが…。

アプリケーション設定が.net2.0以降すごく使いやすくなっているみたいなので、
そちらで暗号化できるならそっちを使いたいなあと思った次第です。
設定クラスの定義、設定ファイルの読み出し、保存を毎回毎回アプリ作るたびに
実装するのって、エラー処理なんかまで含めて考えると意外と面倒くさいもんで。。

325:デフォルトの名無しさん
08/02/07 12:58:22
またWebBrowser被害者か

326:デフォルトの名無しさん
08/02/07 14:16:27
loaderLock マネージ デバッグ アシスタント (MDA: Managed Debugging Assistant) は、Microsoft Windows
オペレーティング システムのローダー ロックを保持するスレッドでマネージ コードを実行しようとする試みを
検出します。

このような実行は不正であり、デッドロックの発生につながり、DLL がオペレーティング システムのローダーに
よって初期化される前に使用される可能性があります。


327:デフォルトの名無しさん
08/02/07 15:00:57
>>323
IEのアドイン全部停止して試してみるとかどう?

328:デフォルトの名無しさん
08/02/07 15:19:01
質問です。
インターネット上にあるpng形式のファイルを取得して保存したいと考えています。
そこで、
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();

StreamReader objReader = new StreamReader(objStream);

string filepath;

filepath = "C:\\hoge\\hoge.png";

if (File.Exists(filepath))
{
File.Delete(filepath);
}

StreamWriter w = new StreamWriter(filepath);

w.Write(objReader.ReadToEnd());
w.Close();
objStream.Close();

とやりましたが、保存できないようです。
StreamReaderのどのメソッドを使えば、インターネット上の画像ファイルの読み込みを一括でおこなえるのでしょうか?

329:デフォルトの名無しさん
08/02/07 15:20:48
どこでおかしくなってるのかちゃんと調べろよ。

330:デフォルトの名無しさん
08/02/07 15:26:48
StreamReader/StreamWriterはストリームを文字列で扱うクラス。
画像みたいなバイナリファイルに使っちゃ駄目。

331:デフォルトの名無しさん
08/02/07 15:28:07
File.Copy()でファイルをコピーする場合、
途中で止めるにはどうすればいいですか?
プログラムを強制終了しても、止まらないようなのですが・・・

332:デフォルトの名無しさん
08/02/07 15:42:42
File.Copyだと止められないんじゃない
SHFileOperation使えば


333:デフォルトの名無しさん
08/02/07 15:55:34
>>332
ダイアログがうざいから
SHFileOperation使いたくなくてFile.Copy()にしたんですが
やっぱり止める方法はないんですかね・・・

FileStreamでnバイトずつ読み込み→書き込み→停止信号監視
とやれば止められそうですが遅くなりそうで

334:デフォルトの名無しさん
08/02/07 16:19:46
>>327
変化なし

335:デフォルトの名無しさん
08/02/07 16:39:19
>>331
Windows APIのCopyFileExだと
コールバック付きで途中中断もできる。
こっちはだめ?

336:デフォルトの名無しさん
08/02/07 16:47:50
>>335
ありがとうございます
そんなのがあるんですか
Win32APIだとVISTAへの対応が心配ですが試してみます

337:デフォルトの名無しさん
08/02/07 17:18:48
CopyFileExだとファイル単位でコールバックだね

338:デフォルトの名無しさん
08/02/07 17:20:09
>>337
>ファイル単位
そうですかぁ・・・
ファイルコピー/移動中にスキップしたりしたいので
>>333の方法しかないですかね
オーバーヘッド食いそうだなぁ('A`)

339:337
08/02/07 17:27:08
>>338
すまん嘘だった

340:デフォルトの名無しさん
08/02/07 17:27:48
そして属性やNTFSサブストリームが消える罠

341:デフォルトの名無しさん
08/02/07 17:37:11
それらもコピーされると書いてある。
URLリンク(msdn.microsoft.com)

342:デフォルトの名無しさん
08/02/07 17:51:44
うん、338へのレスだったんだ

343:デフォルトの名無しさん
08/02/07 18:07:53
>>318
WebBrowserConstorlは基本的にメッセージポンプが必要。
だたメッセージポンプなしでも特定の条件が重なったときは動作する。
そのコードだと動くほうが例外的。


344:デフォルトの名無しさん
08/02/07 21:17:54
>>343
詳しく

345:デフォルトの名無しさん
08/02/07 22:04:02
>>318を下記のように修正
thread = new Thread(new ThreadStart(entry2)); 

void entry2(){
  bool once = false;
  EventHandler apidle = delegate(object sender, EventArgs e){
    if (once) return; else once = true;
    entry(); // 元のentry()をcall
    Application.ExitThread();
  };
  Application.Idle += apidle;
  Application.Run();
  Application.Idle -= apidle;
}


346:デフォルトの名無しさん
08/02/07 22:16:18
>>324
クライアントにパスワード残して「解析しようと思えば」っておかしいだろ・・・
本気でやるなら認証鯖立てるしかないんじゃね?

347:デフォルトの名無しさん
08/02/07 22:20:22
>>345
おぅ
動いた


348:デフォルトの名無しさん
08/02/08 00:07:17
>>343
ナイス!

ただ、
>>WebBrowserConstorl
これタイプミスしてなければ...

349:デフォルトの名無しさん
08/02/08 01:03:13
コメントにtodoとか入れておいたものがタスク一覧に現れるのは開いているファイルだけのようですが
ソリューションかプロジェクトの全てのファイルを一括で確認する方法はありませんか?

350:デフォルトの名無しさん
08/02/08 01:28:45
スレッドモデル指定なしのCOMを使ってるのか
COMのスレッドモデルは死ぬほどややこしいからな~

351:デフォルトの名無しさん
08/02/08 01:53:29
ありません。

352:デフォルトの名無しさん
08/02/08 09:04:24
>>346

確かに暗号化してあってもクライアントにパスワードを残すのはよろしくないですが、
ログイン名だけは記憶できるようにしたいとか、接続先URLも攻撃を避けるために
隠蔽したいとか、どうしてもクライアントに暗号化して残したい情報はあると思ってます。

windows認証(DPAPI)で暗号化して, windowsのパスワードが安全なポリシーに従って
設定されていれば、それなりの安全性は保てると思うんですが、やっぱまずいっすかね。

353:デフォルトの名無しさん
08/02/08 09:30:50
誰から守りたいわけ?

354:デフォルトの名無しさん
08/02/08 11:29:04
普通の配列
int[] array
から
List<int> list
に中身をコピーするメソッドって無いですか?
foreach(int i in array){ list.Add(i); }
ってしないと駄目ですか?

355:デフォルトの名無しさん
08/02/08 11:45:31
>>354
C#3.0用 array.ToList()
多分中身は>>354

356:デフォルトの名無しさん
08/02/08 11:46:08
new List<int>(array);
// たぶん中身は(ry

357:デフォルトの名無しさん
08/02/08 11:54:26
>>355,356
ありがとうございます。
10分も悩んでしまいました;;;

358:デフォルトの名無しさん
08/02/08 12:56:50
ToList()だとインスタンスが書き換わらない?
AddRangeって手もあるよ

359:デフォルトの名無しさん
08/02/08 14:55:57
>>345
動かなくね?

360:デフォルトの名無しさん
08/02/08 15:03:37
動かん
URLリンク(a-draw.com)

361:359,360
08/02/08 15:07:43
>>345>>360>>345の指示で>>318を修正したもの

で、Windows XP Pro SP2だと普通に動いた。
が、Windows Server 2003 R2 x64、Windows XP x64だと動かない。

腐ってやがる・・・

362:デフォルトの名無しさん
08/02/08 15:24:14
早すぎたんだ

363:デフォルトの名無しさん
08/02/08 15:25:44
つまり>>304>>316は別の問題だったわけか。
64bit環境はないからテストできんなぁ。
64bit環境で32bit指定したexeの場合はどうなの?

364:デフォルトの名無しさん
08/02/08 15:32:00
うちはXPx64だけど32bit指定でも64bit指定でも問題なかった

365:デフォルトの名無しさん
08/02/08 15:32:18
これ、どうなればいいの?
TEST押したらdoneが出るだけ?

366:デフォルトの名無しさん
08/02/08 17:06:01
>>365
doneダイアログが出た後にフリーズしなければok
問題がある場合はdoneダイアログが出てスレッドは終了しているはずなのに直後にフリーズするはず
あと、俺の環境でも32bitだと問題なし

367:デフォルトの名無しさん
08/02/08 17:06:57
レスをざっと見た感じNT5.2x64以外は大丈夫なんじゃね?
NT5.2x64なんて使ってる奴いるの?

368:デフォルトの名無しさん
08/02/08 17:07:08
なるほど、Vista64でAny x86 x64 すべて動作。
ってVS2008ですが。2005でやったほうがいいかな

369:デフォルトの名無しさん
08/02/08 21:14:42
いやー、訳分からんPG起動させるオマイラほんと関心するわww

370:デフォルトの名無しさん
08/02/08 21:20:19
コントロールの再描画についての質問ですが、Control.Updateメソッドは
「再描画すべき所があればWindowsメッセージキューに即割り込んでPaintイベントを発生する」
という理解でいいんでしょうか?
いちおう↓とか読んだのですが、いまいちピンと来ないもので。
URLリンク(dobon.net)

371:デフォルトの名無しさん
08/02/08 21:35:48
>>369
訳分からんやつはそも参加しない話

そしてPGなんて略し方(笑)

372:デフォルトの名無しさん
08/02/08 23:09:26
すいません質問です。
PointFの引数になぜPointを代入できるのは仕様でしょうか?


373:デフォルトの名無しさん
08/02/08 23:10:37
修正してたら日本語がおかしくなってしまいました、すいません。

374:デフォルトの名無しさん
08/02/08 23:14:32
VC#2005で、プログラムを組んでいるのですが、
C言語で書いた関数(メソッド)を使いたいと思っています。
ですが、.Cファイルをコンパイル、リンクする方法がわかりません。
プロジェクトに.cファイルをぶち込むと、テキストファイル?として
認識され、うまくリンクされていません。
VC++だと.Cファイルも使えたのですが、C#ではできないのでしょうか?
.Cファイルをincludeする方法がありましたら、教えてください。

スレ違いでしたら誘導お願いします。

375:デフォルトの名無しさん
08/02/08 23:15:33
VC#では㍉

376:デフォルトの名無しさん
08/02/08 23:21:38
まずCOMとIDLを用意してください

377:デフォルトの名無しさん
08/02/08 23:23:15
>>372
暗黙の型変換が出来るように演算子がオーバーロードされている。
public static implicit operator PointF(Point p)

378:デフォルトの名無しさん
08/02/08 23:26:38
>>374
VC++でC向けのDLLとしてコンパイルしてC#からDllImport
またはC++/CLI

379:デフォルトの名無しさん
08/02/08 23:37:40
Cのソースがそのまま使えるかもなんて発想はどこから来るんだ

380:デフォルトの名無しさん
08/02/08 23:40:20
そんなに量が多くないんだったら手書きでC#に移植したら

381:デフォルトの名無しさん
08/02/08 23:41:03
>>370
ほぼOKじゃね
メッセージキューに割り込むってか
WndProcを直接呼ぶ


382:デフォルトの名無しさん
08/02/08 23:41:30
>>377
式で検索したら出てきました、ありがとうございました。
ということは内部で構造体を作り直してるのでやりすぎると遅くなりますね。

383:374
08/02/09 01:33:43
レスくれた方、ありがとうございます。
簡単には、C#でCのファイルは使えないんですね。
DllImportでの使用か、C#で書き直すか(限りなく大量ですが。)
検討してみます。
VC++でプログラム組んだほうが早い気もするし、困ったもんです。
ありがとうございました。

384:デフォルトの名無しさん
08/02/09 01:58:47
C++/CLIおすすめ
DLLコピーし忘れ事故を一番防止できると思う
プロジェクトに加えておけば勝手にコピーしてくれるし

385:デフォルトの名無しさん
08/02/09 02:01:17
>>383
普通にDLL作ってC#から読ませるだけやがね

386:370
08/02/09 03:35:09
>>381
"直接呼ぶ"というのはどういう意味ですか?
WndProcは「.NETの外から来るWindowsメッセージを.NETのイベントに置き換えるメソッド」なので
Updateメソッド→Windowsメッセージ(WM_PAINT?)→WndProcメソッド→Paintイベント
という流れなんでしょうか?
あと、Paintイベントを発行するOnPaintメソッドがありますが、これは上記には絡まないんですか??

Paintイベントが発行されるまでの流れが分からなくて混乱しています。。(まだこの辺理解するには早いのかも
質問ばかりですみません。

387:デフォルトの名無しさん
08/02/09 07:53:57
>>386
何が流れているの?

データ?処理?他?

388:デフォルトの名無しさん
08/02/09 08:34:49
public class A {
 何か処理

 class AData {
 }
}

みたいに、自クラス内のみ、もしくはそのファイル内でのみ使えて、
外部からは見えないクラスを使いたいのですが、
アクセスレベルはどのように書けば良いのでしょうか。

389:デフォルトの名無しさん
08/02/09 09:12:25
private。
ちなみに、A、ADataとも、互いのprivateフィールドやメソッドにアクセス可。
ソースファイル単位のアクセスレベルはない。

390:デフォルトの名無しさん
08/02/09 10:53:43
public class A {
 private void hoge() {
  AData data = new AData();
  data.ANum = 1;
 }

 private class AData {
  private int ANum;
  private AData(){}
 }
}

のように書いてみたんですが、

AData data = new AData();
data.ANum = 1;

この部分で両方ともアクセスできない保護レベルになってると怒られるんですが…。

391:デフォルトの名無しさん
08/02/09 11:06:28
>>390
AData は Aから見て別クラスなんだから、メンバまで private にしたら当然見えない。
ADataはAのprivateクラスだから、Aの外からは見えないがADataそのものはAからは
見える。

ので、ANumをAから見たければ、こうする。

public class A {
 private void hoge() {
  AData data = new AData();
  data.ANum = 1;
 }

 private class AData {
  public ANum;
  public AData(){}
 }
}

392:デフォルトの名無しさん
08/02/09 11:29:24
>>386
WndProcとPaintイベントの間にOnPaintが挟まる。
メッセージキューは、位置としてはWndProcより前にあるのだが、
(Updateのように)これを介さずWndProcへ送られる場合もあって、
それを381は直接呼ぶと表現しているんだろう。

393:デフォルトの名無しさん
08/02/09 11:48:46
>>391
それをやると、アクセシビリティに一貫性がありません、ADataのアクセシビリティは
フィールド○○よりも低く設定されています。
と怒られてしまいます。

394:デフォルトの名無しさん
08/02/09 11:59:09
>>393
>>391の通りならエラーにはならない
どこかでAData型をAの外に見せてるんだろ

395:デフォルトの名無しさん
08/02/09 12:03:07
>>393
今適当にやったけど、普通にできるぞ。本当にそのエラーなのか?
  

396:デフォルトの名無しさん
08/02/09 12:05:54
public class A {
 public AData data;//ここでエラー
 private void hoge() {
  data = new AData();
  data.ANum = 1;
 }

 private class AData {
  public int ANum;
  public AData(){}
 }
}
たぶんこうなってると推測
クラス外から見えない型のオブジェクトを公開しても外から触れないだろ

397:デフォルトの名無しさん
08/02/09 12:11:49
オブジェクト思考じゃないかもしれないですけど、階層型の構造になったプログラムで、兄弟(同階層)のオブジェクトの状態を知りたいときはどうするべきでしょうか?
親から回すしかないですかね?

398:デフォルトの名無しさん
08/02/09 12:15:49
子に親への参照を持たせるかな

399:デフォルトの名無しさん
08/02/09 12:18:28
漠然としすぎててワカンネ
兄弟だろうと姉妹だろうと参照もてばいいんじゃねーの

400:デフォルトの名無しさん
08/02/09 12:30:28
>>397
日本語でおk。

401:デフォルトの名無しさん
08/02/09 12:50:32
オブジェクト思考がなんだか解らないから、
参照持たせた所で、それは「オブジェクト思考」じゃ無いって叩かれるのを避けたかったんじゃない?

オブジェクト思考がなんだか解らないの、声だけ大きいキチガイが身近に居るとか。


402:デフォルトの名無しさん
08/02/09 12:51:55
>>398
それアリなの?おぶじぇくと思考的に

403:デフォルトの名無しさん
08/02/09 12:54:55
Parent プロパティ
でMSDN引いてみれば

404:デフォルトの名無しさん
08/02/09 12:59:43
>>352
もう少し隠蔽すべきデータかどうか考えてみたら?
他の鯖認証してるツールのアクセスログとか見てみな。

405:デフォルトの名無しさん
08/02/09 13:50:05
オブジェクト思考ではなくオブジェクト指向な。

406:デフォルトの名無しさん
08/02/09 14:08:52
>>390
これじゃだめなん?
private class AData {
private int aNum;
protected internal int ANum { get { return aNum; } set { aNum = value; } }
protected internal AData() { }
}
}

407:デフォルトの名無しさん
08/02/09 14:17:22
本末転倒だな

408:デフォルトの名無しさん
08/02/09 14:21:10
つーかC#の話題じゃなくてオブジェクト指向スレ行けよ

409:デフォルトの名無しさん
08/02/09 14:54:12
なんで馬鹿ってのはすぐに「~スレ行けよ」って言いたがるんだろうねw


410:デフォルトの名無しさん
08/02/09 15:02:59
そりゃ自分に理解できないことは全部すれちがい

411:デフォルトの名無しさん
08/02/09 15:22:58
何で直線バカって目先のことしか考えられないんだ
どうでもいい話は直ぐ飛びつくしキモいんだよな

412:370
08/02/09 16:30:52
>>392
>WndProcとPaintイベントの間にOnPaintが挟まる。
Paintイベントは直接的にはOnPaintによって発行される、ということでしょうか
ということはもしかして「イベントHogeは常にOnHogeメソッドによって発行される」のですか?
もしそうならスッキリしますね。

そうすると、例えばpictureBoxインスタンスのPaintイベント処理は、
「pictureBox_Paintイベントハンドラを設定」と「overrideしたOnHogeの作成」
のどちらでも機能的に同じことができる、ということでしょうか?
(そういえば誰かが「同じことをするにも何通りものアプローチがあるから、1つに拘るな」と言ってたのを見た記憶が)

>>387
他のウィンドウに隠れて無効化されたコントロールを再描画する、という単純なものです。。。

413:デフォルトの名無しさん
08/02/09 23:17:26
こんばんは

C#でメモリ確保の方法ってありますか?

指定したメモリ数を確保するツールを作りたいのです。
教えてください。

414:デフォルトの名無しさん
08/02/09 23:45:11
確保してどうしようってんだ

415:デフォルトの名無しさん
08/02/09 23:49:13
それで思い出したけどスタックアロケートみたいのあったよね、あれってなんだったんだか

416:デフォルトの名無しさん
08/02/10 00:01:14
>>413
new

417:デフォルトの名無しさん
08/02/10 00:12:19
クラスのフィールドを取得するとき、フィールドをpublicにするかプロパティを用意するかは、どうやって決めたらいいんですか?
チェックなどを設けずに単にset{ this.hoge=hoge; } get{ return hoge; }とするのでも、プロパティ使う意味あるんでしょうか?

418:デフォルトの名無しさん
08/02/10 00:15:21
>>413
一昔前にあったメモリを強制的に確保して開放するメモリ掃除ツールの模倣?

Console.ReadLine();
byte[] buffer = new byte[1024 * 1024 * 256];
buffer[1234567] = 5; //最適化防止用

Console.ReadLine()を抜けるとタスクマネージャにおけるPF使用量が増える。
ただNT系でメモリ掃除効果があるかは知らん。用途勘違いしてたら無視してくれ。

419:デフォルトの名無しさん
08/02/10 02:35:00
URLリンク(www.atmarkit.co.jp)
この記事を読んで一瞬でも難しいと思った自分は、まだまだ修行不足なんだろうなぁ…
返り血が構造体なプロパティや、構造体なコレクションのforeachなんかは
自分もそのうち使うと思うので注意だけど、他にも初心者は気をつけとけ!っていう所ありますか?

420:デフォルトの名無しさん
08/02/10 02:58:23
>>419
> 構造体なコレクション
これ,できるのか・・・継承とか委譲とかはクラスにしかできないとおもてた

421:デフォルトの名無しさん
08/02/10 03:25:22
>>419
フィールドやセッターならエラー吐いてくれるからまだいいけど、
破壊的なメソッド呼び出しはエラーにならずに
コピーに対して無意味な操作をしてしまうって方が厄介なんだよね。
これのせいで値型のメソッドはimmutableであるべきだとか
そもそもフィールド操作と区別がつかないプロパティのシンタクスが
問題なんだとか主張もあったりなかったり。

422:デフォルトの名無しさん
08/02/10 05:54:21
あと値型でジェネリック系のコレクションを使う場合は
IEquatable<T>.Equals(T o)やIComparable<T>.CompareTo(T o)を
実装しないとパフォーマンスが非常に悪いことになる。


423:デフォルトの名無しさん
08/02/10 10:40:03
初心者は構造体を使うな。


424:デフォルトの名無しさん
08/02/10 11:42:20
>>415
unsafe { byte* buf = stackalloc byte[10]; }

425:デフォルトの名無しさん
08/02/10 13:09:39
構造体なんて自作するもんじゃないやね

426:sage
08/02/10 13:11:27
データグリッドに以下の様な利用期間を表示しています
表示しているデータは、DBに対してSELECT文で SELECT data1,"~",data2...で取得しています(data1,2はstring型 "~"は表示上仕方なく)

開始日付 終了日付
20000101 ~ 20000131
20010101 ~ 20010131
20020101 ~ 20020131
20030101 ~ 20030131
20040101 ~ 20040131

必要だと思うことが以下の3項目です
1、更新ボタンを押された際に開始、終了のどちらかがNULL場合はエラー
2、入力された値が日付で無い場合はエラー
3、開始日付<終了日付で無い場合はエラー

処理としては更新ボタンが押された際"DBのデータを削除後、画面情報をDBにINSERT"しようと考えています。
その際に"昇順、かつ終了日付<次の行の開始日付の様にZの様な並び"にソートする方法を調べていますが今一よく分かりません。
多次元配列で[0,2]と[1,0]を比較して逆なら行を入れ替えて・・・の様な作りになるのでしょうか・・・。

IComparableとArrayListを調べてるのですが基礎が無さ過ぎる為にかなりパニクってます;
C#が初めての言語で経験2週間の度素人です・・・よければ教えてください。
開発環境はVisualStudio2003になります。

427:デフォルトの名無しさん
08/02/10 13:59:23
>>426
20020101 ~ 20040131
20030101 ~ 20030131
20020201 ~ 20030115
こういうケースはどう並ぶの?

428:デフォルトの名無しさん
08/02/10 14:00:46
>>426
「表示」だけじゃ無いんだよな?日付入力して更新ということであれば

1.チェックの1~3でOKならTMPテーブルに書き込む
2.TMPに書き込めたらcommitして元データ削除
3.TMPから元テーブルにコピー
4.元テーブルからSQLで読み込み(ここでソート)

どうしても配列でソートなら「配列、ソート」でぐぐるか本嫁、基本だから

排他が気になるけど全デリート全インサートなん?

429:419
08/02/10 14:01:16
レスありがとうございます。せいぜい気をつけるしかないってことですね。
そういえば、C#のjavaより良い点の一つが、値渡しができる構造体って教わりましたよ。
なんとか使いこなせるよう頑張ろう。

430:デフォルトの名無しさん
08/02/10 14:10:29
構造体を使うときに気をつけないといけないのはボクシング
こんなこというと,そんなもん大したコストじゃないだろとか言われそうだから先に言っとくけど,
構造体はそんなもんが問題になるような状況で使うもの

431:デフォルトの名無しさん
08/02/10 14:11:56
>>429
何が頑張ろうだ、頑張るのはお前だw

432:デフォルトの名無しさん
08/02/10 14:13:09
>>431
日本語って難しいよな

433:デフォルトの名無しさん
08/02/10 14:13:22
>>431
君頭悪いでしょw

434:デフォルトの名無しさん
08/02/10 14:13:34
読解力がないだけ

435:デフォルトの名無しさん
08/02/10 14:14:58
>>431
同意

436:デフォルトの名無しさん
08/02/10 14:15:05
>>430
なんか言ってること変じゃないか?w
よくわかってないのなら無理しない方がいいと思うよ

437:デフォルトの名無しさん
08/02/10 14:15:40
>>435
同意?

438:430
08/02/10 14:19:21
構造体はそんなもんが→構造体はその程度のコストが
これでいいか?

439:デフォルトの名無しさん
08/02/10 14:23:39
よくないでしょw
ボクシングは構造体にまつわる問題だ、と自分で言ってるのに、
どうして「ボクシングが問題になるような状況で」構造体を使うんだよw

440:デフォルトの名無しさん
08/02/10 14:25:43
そうじゃなくて構造体の一番の意義は、
たとえば配列の要素にアクセスするような場面における参照型のオーバーヘッドを
回避することでしょ。

441:デフォルトの名無しさん
08/02/10 14:42:26
>>439
GC負荷を減らしたいときに構造体が活用できることがある。
でも構造体を使うときはボクシングに気をつけないとかえってGC負荷を増やしてしまう。
だからGC負荷を減らしたいときは、ボクシングに気をつけながら構造体の活用を考えよう。

というような話を>>430はしたいのだろう。

442:デフォルトの名無しさん
08/02/10 14:49:39
構造体でボクシング利用するような事例ってどんなのだ?

443:デフォルトの名無しさん
08/02/10 14:52:35
ボクシングってなーに?

444:デフォルトの名無しさん
08/02/10 14:55:33
>>430はボクシングしないように構造体を使わないと早くならんぞといっているだけだろ
俺はほぼ全てのケースで構造体使っても早くならんと思ってるけどな

445:デフォルトの名無しさん
08/02/10 14:55:41
構造体のアップキャスト

446:デフォルトの名無しさん
08/02/10 14:57:15
>>442
例えば構造体のToStringをオーバーライドしてないとき。

public struct Hoge
{
  public int Fuga;
}

Hoge hoge = new Hoge();
string str = hoge.ToString(); // ←ここでボクシングがおきる

他にもIEquatable<T>を実装させずにDictionaryのキーにしたときとかボクシング起きまくり

447:デフォルトの名無しさん
08/02/10 15:04:16
>>444
構造体は速くするためというよりは遅くならないための仕組みな気がするね。

>>446
>他にもIEquatable<T>を実装させずにDictionaryのキーにしたときとかボクシング起きまくり

GetHashCodeのオーバーライドも忘れずに。

448:デフォルトの名無しさん
08/02/10 15:40:00
>>446みたいなのって単なる設計のミスだと思うんだけど。

449:デフォルトの名無しさん
08/02/10 15:56:38
static string ToString(ValueType this);//ValueTypeは参照型
こんなメソッドを呼び出してることに相当するわけだから

450:デフォルトの名無しさん
08/02/10 16:06:28
>>448
>>449
C#コンパイラが出力したIL見てみれば分かるけど
.NET 2.0以降ではconstrainedプレフィックスが使えるようになったので
ValueType.ToStringの呼び出しそのもののボクシングは回避できるようになった。
その意味では設計で対処されてる。

ただ、ValueType.ToStringが中でbase.GetType().ToString()を呼んでいるので
そこでボクシングとかGCヒープアロケーションは起きる可能性が高い。

451:デフォルトの名無しさん
08/02/10 16:28:54
GetTypeって実際は何をやってるんだろうなあ

452:デフォルトの名無しさん
08/02/10 17:13:59
試してみたけどGetTypeにもToStringにもヒープアロケーションはあるみたいだね

static void Main(string[] args)
{
for (int i = 0; i < 10000000; ++i)
{
Type t = i.GetType();
}

Console.WriteLine(GC.CollectionCount(0));
Console.WriteLine(GC.CollectionCount(1));
Console.WriteLine(GC.CollectionCount(2));
}

458
2
1

GetType→ToString

1206
2
1

ToStringはstringを作るわけだから当たり前だけど

453:デフォルトの名無しさん
08/02/10 17:53:12
ToStringは使用頻度が低いから特に問題にはならないと思うが、
ハッシュや比較はコレクションで大量に使うからきちんと実装しといたほうがいい。
IEquatable<T>やIComparable<T>などを実装しないならジェネリックでないコレクションを使ったほうが、
ボクシングの回数は少なくて済むから逆にパフォーマンスもいいんだよね。


454:デフォルトの名無しさん
08/02/10 18:06:28
今さらながら
プログラミング.NET Framework第2版
を買いました。
もう4月までずっと春休みなので
休み中に読破しようかな~

455:デフォルトの名無しさん
08/02/10 18:09:55
大学生は暇でいいですなー

456:デフォルトの名無しさん
08/02/10 18:37:24
あの本は勉強になるな

457:デフォルトの名無しさん
08/02/10 18:39:23
>>454
この業界来ないように他業種の勉強しておいた方がいいと思うよ

458:デフォルトの名無しさん
08/02/10 19:28:08
コレクションで使う場合はハッシュと比較が影響を与えやすい。
ほかに、領域確保の効率が悪くなることで参照型より負荷が高くなることもある。


459:デフォルトの名無しさん
08/02/10 19:28:52
第3版はいつ出るんだろ?

460:デフォルトの名無しさん
08/02/10 19:37:27
>>457
微妙に同意してしまうのだがw

461:デフォルトの名無しさん
08/02/10 20:01:22
>>460
激しくだろ?

462:デフォルトの名無しさん
08/02/10 21:02:03
まああれだ、不幸な奴ってのは不幸な理由を自分の置かれた環境に求めたがる、
という例の恥ずかしい法則でしょ
たとえば職業とかさw

お前が不幸なのはそれはお前だからだ、というのが真実なのにねw

463:デフォルトの名無しさん
08/02/11 08:22:09
タブページをSelectedIndexの変更で切り替えると、切り替え先のチェックボックスが何故か押されてしまいます。(しかも2番目)
クリックで切り替えたときは何も起こらないのですが、何か原因があるのでしょうか?

464:デフォルトの名無しさん
08/02/11 11:13:36
自己解決しました

465:デフォルトの名無しさん
08/02/11 11:14:29
質問はするが、解決結果をフィードバックする気はないと

466:デフォルトの名無しさん
08/02/11 11:31:27
なんかのイベントでChecked = true;って自分で書いたんだろ

467:デフォルトの名無しさん
08/02/11 12:48:18
とあるネイティブWin32アプリの拡張dllをC#で書くことって可能ですか?
つまりC#(.NET)でアンマネージなDLLの開発が出来るかということだと思うんですが・・。
因みにWin32アプリの方をCOM対応にするとかはなしで。

468:デフォルトの名無しさん
08/02/11 12:54:25
C#でアンマネージドなDLLは作れないけど、CLRの機能としてマネージド関数をアンマネージドの世界に公開することは出来る。
ただ、多くの場合まともに動かないから、素直にC++/CLIでラッパDLLを書いたほうがいい。

ここで気をつけなければならないのが、一つのプロセスには一つのCLRしかロードできないということ。
つまり、そのプロセスに別のバージョンのCLRを使うモジュールがロードされていると正常に動かない可能性がある。

469:デフォルトの名無しさん
08/02/11 13:23:56
やっぱり難しいですか。
C++はかなり苦手なんだけど、ラッパDLLがいいんなんですね。
念のため調べたいので、どっかにCLRでマネージドを公開するいい例が無いでしょうか・・?


470:デフォルトの名無しさん
08/02/11 13:28:03
ラッパより糖衣だろう

471:デフォルトの名無しさん
08/02/11 13:28:58
>>469
URLリンク(support.microsoft.com)

472:デフォルトの名無しさん
08/02/11 13:34:32
ILかw
これはひどい

473:デフォルトの名無しさん
08/02/11 13:39:54
>>471
逆PInvokeはさすがに知らんかった。
どの言語から使いたいのかわからないけどCOMが一番取り回しが楽だよ。
登録の問題はSxSで回避できるし。

474:467
08/02/11 13:51:19
もう圧倒的にCOMがいいのは重々承知なんですが、
OpenSource系のWin32だし苦手なC++なので手が入れられないんですよね。
逆アセンブリ?もちょっと・・


475:デフォルトの名無しさん
08/02/11 13:57:48
じゃあやっぱりC++/CLI

476:467
08/02/11 14:03:55
ですよねー。それがいいみたいですね。
よく分かってないので、C++/CLIでのラッパーの作り方とか調べてみます。


477:デフォルトの名無しさん
08/02/11 14:59:09
そこらへんくわしい書籍ないかな?
あんまり見かけない気がする
てかC++/CLI関係の本がないか。。。

478:デフォルトの名無しさん
08/02/11 16:24:41
装飾付きRTFファイルに装飾付きRTFデータを追記する方法で困っています

装飾部分が毎回同じ(黄色のハイライトのみ)なので単純合体の方法で
現存のRTFファイルをテキスト読込し最後の2行の終了部を削る
追加するRTFデータをRTFファイル出力してからテキスト読込して
最初の2行の装飾部を削ってテキストを合体させテキスト出力する

そのくらいしか思いつきません
他によい方法はありますでしょうか?

479:デフォルトの名無しさん
08/02/11 16:39:30
フォームにリッチテキストボックスを2つ置いて、起動時に引数でファイル読込して
片方に追加させファイルに書込んで終了する単独ソフトを作った方がいいのかなあ

480:デフォルトの名無しさん
08/02/11 19:46:07
Qtで作成させたウィンドウのイベントをフックするプログラムを作りたいのですが、
スパイ++で覗いたところ、QWidgetというクラスで、キャプションはlbOKというオブジェクトです
このlbOKをクリックするイベントを送りたいのですがどうしたらいいでしょうか?
ウィンドウハンドルやウィンドウProcなども分かっています
よろしくお願いいたします

481:デフォルトの名無しさん
08/02/11 19:58:02
実際にクリックしてみてどんなメッセージが飛んでるか、
Spy++で調べて、SendMessageで再現すればいいよ。

482:デフォルトの名無しさん
08/02/11 19:59:07
>>480
SendMessage, BM_CLICK

483:デフォルトの名無しさん
08/02/11 20:09:20
>>481
>>482
なるほど参考になりました
SendMessageですね!!
さっそくSpy++で調べてやってみます!!

484:デフォルトの名無しさん
08/02/11 21:28:58
Vistaの「Task Dialog」で
OPENFILENAME構造体のFlugsにEnableTemplateHandle、またはEnableHookを選択するとXP以前の外観に戻ってしまうんです。
ダイアログボックスをカスタマイズするには、ウィンドウメッセージをフックする必要があるので、EnableHookを必ず選択しないといけなく新しい外観のままカスタマイズすることはできないのです

C++では使えないようなんですが
URLリンク(msdn2.microsoft.com)
C#ではどうなんでしょう
おねがいします。

485:デフォルトの名無しさん
08/02/11 21:42:45
ものすごい初心的な質問だと思うんですが

ボタンだけを配置したフォームでキーイベントを受け取りたいのですが
どうすれば良いのか教えてください

486:デフォルトの名無しさん
08/02/11 22:55:36
結局はゆうが細かったということで

487:デフォルトの名無しさん
08/02/12 00:55:49
ContextMenuStripでShow()した時に、
ContextMenuStripが閉じるまでShow()から制御が戻らないようにしたいんだけど、
どうすればよい?

TrackPopupMenu()みたく、メニュー側でモーダルループ持たせたいんだけど。。。

488:デフォルトの名無しさん
08/02/12 05:27:39
HttpWebRequestを用いて通信したとき、
200successや404notfoundなどの
コードはどのように取得したらいいのでしょうか?
よろしくお願いいたします。

489:デフォルトの名無しさん
08/02/12 08:52:18
>>488
HTTPの応答時のステータスコードを取得する
URLリンク(dobon.net)

490:デフォルトの名無しさん
08/02/12 09:00:56
>>488
HttpWebResponse.StatusCodeとHttpWebResponse.StatusDescriptionに
はいってんじゃね?

404だと例外放るからWebExceptionキャッチして、webException.Response
をHttpWebResponseにキャストして、同様にStatusCodeなんかを見る。

491:デフォルトの名無しさん
08/02/12 12:47:34
>>489
>>490
ありがとうございます
HttpWebResponseにキャストしなくちゃいけなかったんですね
大変助かりました

492:デフォルトの名無しさん
08/02/12 15:07:00
PDFファイルの中の文字を検索とかってできるんかね?

493:デフォルトの名無しさん
08/02/12 16:35:42
ネットの海からライブラリを探すしかない

494:デフォルトの名無しさん
08/02/12 16:43:15
仕様は公開されてるから自分でできるよ

495:デフォルトの名無しさん
08/02/12 16:55:27
PDFってバイナリでしょ?
画像も入るからむずかしくね?

496:デフォルトの名無しさん
08/02/12 16:56:11
そういやGoogleボットはPDF内もクロールしてるな
できるんじゃね
PDFのgrep作ったら俺にもちょうだい

497:デフォルトの名無しさん
08/02/12 17:05:22
>>495
バイナリエディタで見ればわかるが、少なくとも文字はただのテキスト。

498:デフォルトの名無しさん
08/02/12 17:27:13
UserControlでスムーズスクロールを実装するにはどうやればいいのでしょうか?


499:デフォルトの名無しさん
08/02/12 18:06:14
ああ、つまりアレか
PDFファイルを開いて文字列だけ正規表現か何かで抜き出せばいいのか

500:デフォルトの名無しさん
08/02/12 18:27:22
画像と画像じゃない部分は区別しなくていいの?w
ダメだろそんなルーズな方法

501:デフォルトの名無しさん
08/02/12 18:42:02
pdfのライブラリでテキストだけ抜き出せるべ

502:デフォルトの名無しさん
08/02/12 21:18:19
バイナリから文字列っぽい部分拾ってくるだけなら、ただのstringツールだ

503:デフォルトの名無しさん
08/02/12 23:24:58
PDF -> テキスト ならTeXについてくるツールでいいんじゃね

504:デフォルトの名無しさん
08/02/13 01:14:16
携帯から失礼します

GameState = Title;

switch (GameState)
{
  case Title:
  処理
  if("Aを押したら")
  {
  GameState = Main;
  }
break;

case Main:
処理
  break;
}

こんな感じのプログラムを打っているのですが、実行結果が少しおかしいのです。

タイトル画面からAを押したらメイン画面に移行します。しかし、メイン画面での処理が始まりません。

試しにGameStateにMainを入れて始めたら、メイン画面の処理が行われました。

ちなみに、タイトル画面にメイン画面の処理を全て入れてタイトル画面→メイン画面と移行させたらメイン画面の処理が行われました。

しかし、タイトル画面ではタイトルの処理だけ、メイン画面ではメインの処理だけさせたいのでこれでは意味がないのです。

説明下手で申し訳ないです。何か分かりましたら教えて頂けないでしょうか?

505:デフォルトの名無しさん
08/02/13 01:20:14
>>504
breakしてんだから始まるわけないじゃん
処理のフローをちゃんと見直せ

506:デフォルトの名無しさん
08/02/13 01:29:16
アフォすぎてワラタ

507:デフォルトの名無しさん
08/02/13 01:38:51
PDFのフォーマットは失禁するほど複雑だし(1300ページ超)、文字列も何種類かあるし、
自前で解析なんてやってられない

508:デフォルトの名無しさん
08/02/13 01:39:28
なんでPDFなんてできたんだ

509:デフォルトの名無しさん
08/02/13 01:45:06
お答えありがとうございます。アホな質問に答えて頂き感謝します。

しかし、break文を消した所、

コントロールはひとつのcaseラベル(case 0)から別のラベルへ流れ落ちることはできません。

と、エラーが出ました。恐らく

case Title

処理

case Main

と書いてあるためだと思われますが、これだ


ここまで書いて思ったのですが、なんか質問する以前の問題のような気がしました。もっと勉強し直して来ます……すいませんでした

510:デフォルトの名無しさん
08/02/13 02:12:19
>>509
だからフローを見直せって
switchの使い方がおかしいんだろ

511:デフォルトの名無しさん
08/02/13 02:17:44
>>510
はい、もう一度見直します。もっとじっくり考えます。今日はこれが出来るまで寝ないつもりで頑張ります。

512:デフォルトの名無しさん
08/02/13 02:21:23
C#以前に構造化プログラムを理解してないんだろ
初心者はif while以外使うな
これだけでプログラム書ける

513:デフォルトの名無しさん
08/02/13 02:25:24
今時構造化プログラミングが何かすらソフトウェア工学で教えなかったりするらしいな

514:デフォルトの名無しさん
08/02/13 02:36:53
それってまずいだろw
構造化プログラムが書けなきゃOOPなんて絶対むりやん

515:デフォルトの名無しさん
08/02/13 02:45:56
そもそもソフトウェア工学学んだりしてるやつがほとんど居ないだろ
独学も含めてな

516:デフォルトの名無しさん
08/02/13 04:33:15
なんとか無事に出来ましたので報告します。やはりswitch文の使い方に問題がありました。

今思うとなんでこんなことを、と恥ずかしさで死にそうです。しかし、今回の経験を通してswitch文だけではなく、enum型、メソッドの使い方を学びました。

こんだけ必死になったのも、自分の醜態を晒したからだと思いますw これからも日々精進で頑張ります。

長々となりましたが、自分のしたいことが出来ましたので報告とさせて頂きました。色々とお見苦しい所があったかと思います。失礼しました。

517:デフォルトの名無しさん
08/02/13 04:38:38
うん、良い子だ

518:デフォルトの名無しさん
08/02/13 04:47:40
俺ん時はソフトウェア工学教える授業でちゃんとあったんだよな
んで、人伝に聞いただけなんだけどJava使っていきなりOOPだとか
って考え直したらソフトウェア工学自体やってねえだけか

519:デフォルトの名無しさん
08/02/13 04:48:47
>>516
解決してよかったね

520:デフォルトの名無しさん
08/02/13 09:52:19
三十郎か

521:デフォルトの名無しさん
08/02/13 10:30:13
>>516
報告乙。恥ずかしさを思い出して氏ね。

522:484
08/02/13 12:38:08
その後いろいろ調べてみたところ、Vistaで利用できる新しいファイルダイアログボックスをカスタマイズするには、
COMベースのAPIを利用する必要があるということがわかりました

C++での利用例を参考に(この時点では表示できている)、C++のヘッダーファイルを読み、C#で実装しました
そして、コンパイルし動かしてみると、メモリアクセス違反が発生し、ダイアログが表示されません
どうしてなんでしょうか?

ソースコードは
URLリンク(www.uploda.org)
開発環境はVS2005Pro
最新のMicrosoft Windows SDK for Windows Vistaが必要だと思います。
もちろん、Vistaでのみの動作です。
お願いします

523:484
08/02/13 12:44:54
すいません、アップロードに失敗したのでこちらをお願いします。
URLリンク(www.uploda.org)

524:デフォルトの名無しさん
08/02/13 14:23:08
>>513
順次構造・繰り返し構造・分岐構造やフローチャート程度のものなら高校でやるよ。
工業系でない一般高校でも。

525:デフォルトの名無しさん
08/02/13 14:51:28
>>524
まじ?一体いつから・・・
俺ん時はなかったな

526:デフォルトの名無しさん
08/02/13 15:49:29
くだ質でスンマセンですが
List<hoge>fuga1と
List<hoge>fuga2が
含まれるリストが同じか否かを知るには、どうやればいいですか?

527:デフォルトの名無しさん
08/02/13 16:24:39
>>526
Enumerable.SequenceEqual

528:526
08/02/13 16:51:15
>>527
C#3.0まだ勉強してないです・・・
とりあえずカッコ悪いけどforeachで回します

529:デフォルトの名無しさん
08/02/13 17:50:38
カウンタ使わないと無理じゃないの?
それならforのほうが

530:デフォルトの名無しさん
08/02/13 18:30:05
えっ?

531:デフォルトの名無しさん
08/02/13 19:21:46
^^;

532:デフォルトの名無しさん
08/02/13 19:34:39
>>526
まずは要素数を比較
一致するならリストをソートして先頭から順に一致するか検査

533:デフォルトの名無しさん
08/02/13 19:48:25
>>532
ソートしたらO(n logn)になっちゃうやん

534:デフォルトの名無しさん
08/02/13 19:49:25
順序も含めて「同じ」かもしれないだろ

535:デフォルトの名無しさん
08/02/13 19:59:29
>>532
アフォ過ぎてお茶吹いたwww

536:デフォルトの名無しさん
08/02/13 20:06:13
順序無視ならHashSet<T>が使えるな

537:デフォルトの名無しさん
08/02/13 20:14:51
使ったこと無いけど、Dictionaryのキーだけバージョンか

538:デフォルトの名無しさん
08/02/13 20:21:22
うるせー
ソートして何が悪い
俺はソートが好きなんだよ

539:デフォルトの名無しさん
08/02/13 20:22:29
HashSetは集合演算用だろ
よくしらんけど

540:デフォルトの名無しさん
08/02/13 20:37:11
>>536
同じ要素が複数あったらダメダな

541:デフォルトの名無しさん
08/02/13 20:41:05
集合演算したいだけならふつうのSetがあるだろ

542:デフォルトの名無しさん
08/02/13 20:41:37
>>538
ププププ

543:デフォルトの名無しさん
08/02/13 20:43:39
fuga1.TrueForAll(fuga2.Contains)
みたいなことやるよりはマシか

544:デフォルトの名無しさん
08/02/13 22:06:24
>>533>>535
アホは君らだ。

545:デフォルトの名無しさん
08/02/13 22:25:31
そーっとしとこう

546:デフォルトの名無しさん
08/02/13 22:34:35
マジレスしてい~い?

547:526
08/02/13 23:00:19
スンマセン自分のせいでスレのふいんきが
結局どんなのが良いんですかね?

ソートしちゃうのが一番単純ですが、ソートに使えそうなフィールドがない場合や
IComparable付けてない場合だと駄目ですよね??
fuga1.TrueForAll(fuga2.Contains)はいいかなと思ったんですが、駄目なんですか?

548:デフォルトの名無しさん
08/02/13 23:06:45
つかそもそもソートしていいの?

549:デフォルトの名無しさん
08/02/13 23:11:55
重複はあるの?

550:デフォルトの名無しさん
08/02/13 23:26:42
>>547
問題を具体的に示しなよ。
正解教えてあげるからさ。

551:デフォルトの名無しさん
08/02/13 23:29:19
>>546
 *      *
  *     +  いいよん
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *


552:デフォルトの名無しさん
08/02/13 23:31:16
最近のC#erってのはアルゴリズムもわかっとらんのか

553:デフォルトの名無しさん
08/02/13 23:35:55
いやここ初心者スレだし

554:デフォルトの名無しさん
08/02/13 23:36:58
URLリンク(www.atmarkit.co.jp)
この辺読んでるんだが、アセンブリの厳密名とか署名とか、なんか色々面倒くさいと感じた。
当分気にしなくてもいいんだろうか。

555:デフォルトの名無しさん
08/02/13 23:38:20
つまり回答者のお前らも初心者だったのか

556:デフォルトの名無しさん
08/02/13 23:40:21
悔しさが滲み出る良レス

557:デフォルトの名無しさん
08/02/13 23:40:42
>>547
それじゃ一方が他方の部分集合であることしか分からんじゃん。
それに、O(n^2)

558:デフォルトの名無しさん
08/02/13 23:45:36
ソートした後の結果が同じかどうか知りたいのであれば
最初からListを使うべきではないんだと思うな
SortedListあるいはDictionaryあたりを使うべきなんじゃないかね

559:デフォルトの名無しさん
08/02/13 23:48:16
(・∀・)ニヤニヤ

560:526
08/02/13 23:53:15
>>548
>つかそもそもソートしていいの?
「いい」というのは、「並びが変わってしまっていい」という意味ですか?
対象のリストは大丈夫です。必要ならソート用Listをコピーして用意すればいいと思いますが

>>549
ないです。ある場合はまた面倒なんでしょうかね・・・?

>>557
重複がないので↓で大丈夫だと思うのですが?(というか大丈夫でした)
bool b;
if(fuga1.Contains==fuga2.Contains) { b = fuga1.TrueForAll(fuga2.Contains); }


>>552さんのいうとおりアルゴリズムの基本もちゃんと分かってない阿呆なので、この辺で失礼します。
ありがとうございました。

561:デフォルトの名無しさん
08/02/13 23:54:05
ソートなんかしたらO(n logn)で無駄だろ
普通に要素比較しろ

562:デフォルトの名無しさん
08/02/13 23:54:23
>>557
二つのリストの長さは等しいの?

563:デフォルトの名無しさん
08/02/13 23:56:27
>>561
アホ。

564:デフォルトの名無しさん
08/02/14 00:00:44
何なのこの流れ

565:デフォルトの名無しさん
08/02/14 00:05:29
要素数はいくつなんだ?
100とかじゃないよな?

566:デフォルトの名無しさん
08/02/14 00:06:12
>>563
いや、アホはお前だろw

567:デフォルトの名無しさん
08/02/14 00:09:15
質問者も逃げ出したのか

568:526
08/02/14 00:11:20
スンマセン、>>560はfuga1.Contains==fuga2.Containsはミスです。

ふと思ったんですが、Listをコピーしておいて(←参照型だから軽いですよね)、
ContainsがtrueだったらRemoveしておけば多少早くなりませんか?

bool b = true;
if (fuga1.Count == fuga2.Count)
{
foreach (hoge f in fuga1)
{
if (fuga2.Contains(f))
{
fuga2.Remove(f);
}
else
{
b = false;
break;
}
}
}
else
{
b = false;
}

重複の場合はどうしょ・・・・

569:526
08/02/14 00:12:19
しまったスペースが
お見苦しくてスマンセン

570:デフォルトの名無しさん
08/02/14 00:17:20
>>568
二つのリストに同じ要素が入っているとしても順番までも同じとは限らないの?

571:526
08/02/14 00:25:17
>>570
順番は違います(とくに規則性はないです)
順番が一意に決まってるのならもっと早い方法があるってことですか?

572:デフォルトの名無しさん
08/02/14 00:26:39
うん

573:デフォルトの名無しさん
08/02/14 00:36:47
ハッシュテーブルに突っ込めばいいじゃん。

574:デフォルトの名無しさん
08/02/14 00:38:43
wpfでfarameを使ってwebページにnavigateした後にそのページのDOMを取得するには
どうしたらいいんでしょう。windows.formsのwebbrowserでdocumentを取るみたいに
したいんですが。

575:デフォルトの名無しさん
08/02/14 00:43:52
>>574
WPFって何なのですか?
新規作成のメニューにあって気になってたんですが・・・・

576:デフォルトの名無しさん
08/02/14 00:47:33
WPF は流石にぐぐったらいくらでも情報出てくる。

577:デフォルトの名無しさん
08/02/14 01:03:31
概要さらっとぐらい教えてくれたっていいのに・・・
まあいいか、自分で調べるわ

578:デフォルトの名無しさん
08/02/14 01:32:54
どう考えても調べたほうが速いし正確

579:デフォルトの名無しさん
08/02/14 01:45:48
大体解ったのでもういいです
URLリンク(channel9.msdn.com)


580:デフォルトの名無しさん
08/02/14 03:49:37
WPF 結構色々できますね、XMLのドキュメントはバイナリー化されているんだ、なるほど。
やっていたらもう四時になっしまった、寝なきゃ・・・


581:デフォルトの名無しさん
08/02/14 05:01:10
regsvr32使って登録したアンマネージドなDLLは,
そのまま[DllImport]で呼べると思ってたんだけど
DLLが見つかりませんって実行エラーがでる...

これってどうやればいいんですか?
DLLはいろんなファイルや他のDLL参照してるから
今のフォルダ構成から動かせられないって制限付きなんですが...

582:デフォルトの名無しさん
08/02/14 05:51:47
てs

583:デフォルトの名無しさん
08/02/14 05:55:50
>>581
DLLが見つからないんじゃない?

584:デフォルトの名無しさん
08/02/14 06:05:27
regsvr32ならCOM呼び出しになる
参照設定で追加

585:デフォルトの名無しさん
08/02/14 06:19:26
C#を使い、.net無し環境で動くまともなプログラムは作れますか?

586:デフォルトの名無しさん
08/02/14 06:31:21
なにをしてまともと言うのか

587:デフォルトの名無しさん
08/02/14 06:58:01
えっと、HelloWorldくらいなら出来る、とかそういうレベルではなく
普通に配布されているようなユーティリティのようなものを作れるのかなと
WinAPIを直接触ってしまったらしまったでC#でやる意味もない気もしますし

自分でもうまくまとまらないですすみません

588:デフォルトの名無しさん
08/02/14 07:08:28
Linuxへの移植も可能っぽいし(framework部は動かないが)、やろうと思えばできるんじゃない
つかC#から.net切ったら何も残らないと思うのだが

589:デフォルトの名無しさん
08/02/14 07:09:29
なるほど・・・C/C++をやってきての段階なので、ちょっと概要を調べつくしつつ
使い分けできるようにしていきたいと思ってます、ありがとう

590:デフォルトの名無しさん
08/02/14 07:19:00
むり

591:デフォルトの名無しさん
08/02/14 07:21:20
>>590
安価つけよう、なぜか>>589-590で笑っちまった

592:デフォルトの名無しさん
08/02/14 07:47:20
いや無理じゃないぜ
C#単体では動かないが

593:デフォルトの名無しさん
08/02/14 08:35:40
むりなものはむり

594:デフォルトの名無しさん
08/02/14 09:07:26
Windows限定なら.NETFrameworkなし環境用のexeを作るツールがある

でも借りたPCで.NETインスコ不可等の事情がない限り、そのまま配布してほしいな

よく考えてみたらスレ違いな気がする…

595:デフォルトの名無しさん
08/02/14 09:08:45
ngenは意味ないしなぁ
ネイティブコンパイラなんてあったっけ

596:デフォルトの名無しさん
08/02/14 09:13:37
gugurekasu

597:デフォルトの名無しさん
08/02/14 09:44:14
>>588
てか、そこは「Linux 版の .NET 環境もあるよ」と教えるべきでは。

>>595
URLリンク(www.remotesoft.com)

でも、言語仕様の時点で .NET Framework の存在を仮定してる言語のネイティブコンパイラ使ってもなぁ。


598:デフォルトの名無しさん
08/02/14 10:09:07
>>597
念のために言っておくと .NET Framework の存在は仮定してない。
# C# が必要とする BCL は Micro Framework に比べてもはるかに小さいし、アセンブリやリフレクションの概念さえない。
ただし、RTTI や GC を含む基本的な言語システムはどうしても必要になってくるけど。

599:デフォルトの名無しさん
08/02/14 10:23:30
TextBoxでマルチラインを有効にした状態で行間設定はできないのでしょうか?
行間がビチビチで読みにくいのですが。


600:デフォルトの名無しさん
08/02/14 10:48:15
>>597
monoって今ぶっちゃけどうなんすか?
専用スレが寂れまくってますが。

601:581
08/02/14 10:51:26
>584

参照設定でDLLを追加してみましたが,同じ結果でエラーが出ました

追加情報: System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。 ---> System.DllNotFoundException: DLL '***.dll' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E)

Webサービスで参照させているのが影響してたりしますでしょうか...?
(テスト環境はローカル)

参照の追加ダイアログで確認する限り,DLLへのパスはあっています


602:デフォルトの名無しさん
08/02/14 10:58:44
ソケットでサーバーで接続元のIPアドレスとポート番号を取得するにはどうすればいい?

603:デフォルトの名無しさん
08/02/14 11:24:11
Socket クラス使ってんなら RemoteEndPoint があるだろ

604:デフォルトの名無しさん
08/02/14 13:56:30
>>600
URLリンク(anonsvn.mono-project.com)

605:デフォルトの名無しさん
08/02/14 14:02:22
>>604
踏むのが怖い

606:デフォルトの名無しさん
08/02/14 14:04:59
torrentだから例え踏んでもその先に行けないだろう、キミは

607:デフォルトの名無しさん
08/02/14 14:05:39
C#伸びていくのかねぇ

608:デフォルトの名無しさん
08/02/14 14:11:18
なんだかんだある程度広がるのは確実だろうなぁ
VSのC#への偏向具合もあるし、MSは.NETひいてはC#を当分主軸として動きそうだし

609:デフォルトの名無しさん
08/02/14 14:16:39
なんだかんだだよななんだかんだ
なんだかんだWindowsシェア広いし

俺としてはASPが強力だと思えるからWindowsサーバがどれくらい増えるか気になる

610:デフォルトの名無しさん
08/02/14 14:28:36
vista以降は.NET標準で入ってるから、windowsが廃れない限り確実に伸びるんじゃないですかね?

611:デフォルトの名無しさん
08/02/14 17:06:37
windowsサーバをまともに構築する苦労というかは結構でかい気がするな

というのも初心者がWindowsサーバ構築して公開して悲惨なことになっているのを見てだけど

612:デフォルトの名無しさん
08/02/14 17:14:53
そんなんOS問わずだと思うが

613:デフォルトの名無しさん
08/02/14 17:17:34
そうかねぇ、初心者が構築したってんだからそうでもないだろ

linuxなんて最初からセキュリティ割とがちがちだし

614:デフォルトの名無しさん
08/02/14 17:19:08
初心者のLinuxサーバ構築よりマシかと、動いたところでいっぱいいっぱいで
もう触らないとか、目も当てられない状況になる事多々ありなんですが
素敵な踏み台サーバーは勘弁、某大学とかとかwww

615:デフォルトの名無しさん
08/02/14 17:19:48
WindowsServerがセキュリティは上だよ。

616:デフォルトの名無しさん
08/02/14 17:21:31
初心者linuxサーバはインスコから合わせて解説通りやる
ポート開放やデフォのセキュリティからちょこっと解放したり

Windowsは普通にデフォのWin環境で鯖構築するから目も当てられない
これくらいは常識以下

某大学は偶然狙われただけだろう、狙われればどこも同じなんて状況だよ
そんな悲惨なのが溢れてる
まあそういうとこは大学のページほどアクセスやらされ辛いわけだがな

617:デフォルトの名無しさん
08/02/14 17:22:41
WinXPやなんかで公開するのか?
そりゃ見事にアウトゾーンだがまあ初心者ならやるか・・

618:デフォルトの名無しさん
08/02/14 17:23:07
えー、めんどくさくなって全部ONにしてtelnetポート開けっぴろげだぜベィベー
とかよ

619:デフォルトの名無しさん
08/02/14 17:30:03
想像だけで語るスレはここですか?

620:デフォルトの名無しさん
08/02/14 17:41:44
WindowsServerは、馬鹿が使っても大丈夫なようになっているから、
生半可な知識でLinux鯖立てる人より安全。
なぜなら、彼らはOSのバージョンアップのやり方を知らないから。makeも知らない。
だから、人件費が削減できて、結果的に(フリーのLinuxより)Windowsを買った方が安くつく。
だから売れる。商売が成り立つ。もちろん知識のある人の多い会社はわざわざOSを買ったりしないが。
WinならWindowsUpdate一発だから。GUIだから馬鹿でもやれる。
大学のサーバは本当にひどい。
VineLinux3.2(M大、N大)とか、PHP3系(S大、W大)とか、普通に使っているし。
証明書なしで学外からパスワードを入力させる。うちの大学のことだが。
でもさすがにWinXPで鯖立てる大学は知らない。犯罪だしな。

621:デフォルトの名無しさん
08/02/14 17:45:03
犯罪にはならないよ

622:デフォルトの名無しさん
08/02/14 17:45:38
XPで鯖立てたら犯罪って。中途半端な知識だなぁ。

623:デフォルトの名無しさん
08/02/14 17:48:43
ヒント:同時接続数

624:デフォルトの名無しさん
08/02/14 17:50:11
wwwwwwwwwwwwwwww

625:デフォルトの名無しさん
08/02/14 17:51:09
大学は本当にヤバイですよ
このスレで質問してるような自分が相当できる人だと思われてる・・・

626:デフォルトの名無しさん
08/02/14 17:53:23
で、C#の質問はまだ?

627:デフォルトの名無しさん
08/02/14 17:54:15
×大学は本当にヤバイですよ
○私の大学は本当にヤバイですよ

628:デフォルトの名無しさん
08/02/14 17:57:27
>>627
俺の大学、高木先生に「この大学に入学するな」リストに入ってるwww

629:デフォルトの名無しさん
08/02/14 17:58:46
どこ?

630:デフォルトの名無しさん
08/02/14 18:01:49
URLリンク(takagi-hiromitsu.jp)

631:デフォルトの名無しさん
08/02/14 18:05:30
間違えた。
URLリンク(takagi-hiromitsu.jp)

632:デフォルトの名無しさん
08/02/14 18:06:52
スラドで話題になってた奴か

633:デフォルトの名無しさん
08/02/14 18:11:48
やべ、俺の大学もリストアップされてるwww

634:デフォルトの名無しさん
08/02/14 18:16:00
どこ?

635:デフォルトの名無しさん
08/02/14 18:49:31
法政

636:デフォルトの名無しさん
08/02/14 20:59:55
wpfで作られるWindow1クラスのクラス名とかWindow1.xamlのファイル名とか
リファクタリングしてもxamlの方が更新されなくて、いちいち手動で直さないと
いけないのがすごく面倒くさいんですが、なんか良い方法ってあるんでしょうか?

それとも、Window1でそのまま使った方が良いのかな…。なんか気分が悪い。

637:デフォルトの名無しさん
08/02/14 21:04:32
デフォルト設定ならWindows Serverの方が圧倒的に堅い。
素人が余計な事をしなければ、ある程度のセキュリティを確保できる。
が、ガチガチのセキュリティを確保しようとすると、やれレジストリだ何だと鬼のように難しい。
そしてちょっと凝った事をしようとすると「動かん」「バグですか」となる。

一方、デフォルトのLinuxはオープン。来る者拒まずな感じ。
そのかわりガチガチにするのは楽。
素人が訳も解らずにネット上の「入門」とか言ってるサイトに転がってる設定ファイルをコピペ
するだけでも、それなりになる。
そして自分が何をやったのか、訳も解ってないのに偉そうになる。

638:デフォルトの名無しさん
08/02/14 21:12:15
>>637
それはもう常識でしょう、語らなくてもいいです、スレ違い(笑

639:デフォルトの名無しさん
08/02/14 22:57:56
なんでサーバの話してんの?

640:デフォルトの名無しさん
08/02/14 23:01:10
少しくらいログ読めば?

641:デフォルトの名無しさん
08/02/14 23:17:01
UIのコンテナ関係の質問です。
元のコンテナをDisableにすると中のコントロールも灰色になってしまうのですが、
これを自前でドローする以外で回避するにはどうしたらいいでしょうか?

642:デフォルトの名無しさん
08/02/15 00:14:04
自前ドローだけで回避できるのか?
WS_DISABLEDが伝播してきてるんじゃないのかね

643:デフォルトの名無しさん
08/02/15 02:41:57
>>641
見たこと無いな、そんな機能
色は変えなくてもDisable?
それでなけれぱ、一旦コンテナから離して、優先順位を上にしてしまうのが楽チンそうな気がする。

644:デフォルトの名無しさん
08/02/15 10:02:09
ちょっと教えて下さい。
HttpRequest/HttpResponceを使ってWebサーバと通信して居ます。
WebサーバからCookieが送られて来るのですが、JavaScript中に埋め
込まれて送られてきます。
HttpResponceで受け取ったデータの中を舐めても良いのですが、もっ
とスマートにCookieを取り出したいのですが、何か良い方法は無いで
しょうか?
ちなみに、IEがDocument Setting\ユーザ名\Cookieに保存するCookie
ファイルを直接読み出す方法を考えて見たんですが、ログインユーザ
を意識しないでやる方法を探して居ます。
何か良い方法は無いものでしょうか?

645:デフォルトの名無しさん
08/02/15 10:23:20
>>644
Cookies

646:デフォルトの名無しさん
08/02/15 11:18:22
DateTime型のToString()メソッドで、XML SchemaのdateTime型(CCYY-MM-DDTHH:MM:SSZ)形式を
一発で出す方法は無いでしょうか?

DateTime dt = DateTime.Now();
dt.ToString("s");

でCCYY-MM-DDTHH:MM:SSまでは出る事がわかったのですが。
(タイムゾーンが出ないです)

TimeSpanを使って長ったらしい内容にしないと無理でしょうか?
後々、バグの原因になりそうなので簡潔に書いておきたいのですが。

647:デフォルトの名無しさん
08/02/15 11:35:15
dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss':'zzz");
とか?

648:デフォルトの名無しさん
08/02/15 12:15:14
つーかDateTime構造体にタイムゾーン情報って含まれてたっけ?
単なるlong値じゃねーの

649:デフォルトの名無しさん
08/02/15 12:17:49
UTCかGMTかの区別は入ってるよ。
あとは実行した環境のタイムゾーン見ればよし。

650:デフォルトの名無しさん
08/02/15 12:18:09
UTCかローカルタイムか、ね

651:デフォルトの名無しさん
08/02/15 12:48:47
>>647
XMLスキーマのdateTimeってGMT+タイムゾーンだからそれじゃダメじゃね?

>>648
.NET2.0から仕様が変わってタイムゾーンを保持するようになった



652:デフォルトの名無しさん
08/02/15 13:06:17
>>644
HttpWebRequest/HttpWebResponseではJavaScriptが動作しないので、
埋め込まれていたら無理。
IEで利用しているCookieを取得するには、InternetGetCookie。

653:デフォルトの名無しさん
08/02/15 13:51:37
>>651
なら 'GMT'zzだね。

654:デフォルトの名無しさん
08/02/15 13:54:03
'Z'

655:デフォルトの名無しさん
08/02/15 14:10:52
DateTimeはカスタムクラスを作っておいて必ずそれを呼ぶ様にした方がいい。
特にDBとか使ってるときにDB側の日付型の違いで地獄に堕ちるのを防いでくれる。

656:デフォルトの名無しさん
08/02/15 14:26:17
>DB側の日付型の違い
これって結構あるものなんですか?標準と微妙に違ってたり、とか?

657:デフォルトの名無しさん
08/02/15 14:36:05
フォームの質問です。

メインウィンドウからダイアログ1を開く→OK押す(ダイアログ1消える)→ダイアログ2が起動
(重い処理なのでプログレスバー表示)→完了(ダイアログ2消える)→メインウィンドウに戻る

をしたいのですが、1を消すタイミングでclose()、dispose()してるにも関わらず
ダイアログ2が終わるまで1のダイアログが残ってしまいます。(1の上に2が重なってるイメージ)
どうやれば、1のダイアログをすぐに消すことが出来るんでしょうか。



658:デフォルトの名無しさん
08/02/15 14:38:22
親ウィンドウをdisposeって普通しないんじゃ?
最小化すればいいんでないの

659:デフォルトの名無しさん
08/02/15 14:40:35
>>656
selectした際に特に変換せずに抜き出すと、各社ばらばら。
あと内部保持形式がUTCだったり設定依存だったりと。
俺は日付に関する値でも迷わずvarcharにしている。
で、どうしてもという時は、where句で必要に応じてvarchar -> dateとかキャストして使うようにしている。


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