[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 13:25 / Filesize : 190 KB / Number-of Response : 890
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part24



1 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:44:27 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

ふらっとC#,C♯,C#(初心者用) Part23
pc11.2ch.net/test/read.cgi/tech/1200033660/

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

332 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:42:42 ]
File.Copyだと止められないんじゃない
SHFileOperation使えば


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

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

334 名前:デフォルトの名無しさん [2008/02/07(木) 16:19:46 ]
>>327
変化なし

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

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

337 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:18:48 ]
CopyFileExだとファイル単位でコールバックだね

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

339 名前:337 mailto:sage [2008/02/07(木) 17:27:08 ]
>>338
すまん嘘だった



340 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:27:48 ]
そして属性やNTFSサブストリームが消える罠

341 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:37:11 ]
それらもコピーされると書いてある。
msdn.microsoft.com/library/ja/jpfileio/html/_win32_CopyFileEx.asp

342 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:51:44 ]
うん、338へのレスだったんだ

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


344 名前:デフォルトの名無しさん [2008/02/07(木) 21:17:54 ]
>>343
詳しく

345 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:16:18 ]
>>324
クライアントにパスワード残して「解析しようと思えば」っておかしいだろ・・・
本気でやるなら認証鯖立てるしかないんじゃね?

347 名前:デフォルトの名無しさん [2008/02/07(木) 22:20:22 ]
>>345
おぅ
動いた


348 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:07:17 ]
>>343
ナイス!

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

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



350 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:28:45 ]
スレッドモデル指定なしのCOMを使ってるのか
COMのスレッドモデルは死ぬほどややこしいからな〜

351 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:53:29 ]
ありません。

352 名前:デフォルトの名無しさん [2008/02/08(金) 09:04:24 ]
>>346

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

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

353 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:30:50 ]
誰から守りたいわけ?

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

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

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

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

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

359 名前:デフォルトの名無しさん [2008/02/08(金) 14:55:57 ]
>>345
動かなくね?



360 名前:デフォルトの名無しさん [2008/02/08(金) 15:03:37 ]
動かん
a-draw.com/uploader/src/up31487.zip.html

361 名前:359,360 mailto:sage [2008/02/08(金) 15:07:43 ]
>>345>>360>>345の指示で>>318を修正したもの

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

腐ってやがる・・・

362 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:24:14 ]
早すぎたんだ

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

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

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

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

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

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

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



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

371 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:35:48 ]
>>369
訳分からんやつはそも参加しない話

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

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


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

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

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

375 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:15:33 ]
VC#では_

376 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:21:38 ]
まずCOMとIDLを用意してください

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

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

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



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

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


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

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

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

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

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

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

387 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:53:57 ]
>>386
何が流れているの?

データ?処理?他?

388 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:34:49 ]
public class A {
 何か処理

 class AData {
 }
}

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

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



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

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

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

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

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

398 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:15:49 ]
子に親への参照を持たせるかな

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



400 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:30:28 ]
>>397
日本語でおk。

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

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


402 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:51:55 ]
>>398
それアリなの?おぶじぇくと思考的に

403 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:54:55 ]
Parent プロパティ
でMSDN引いてみれば

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

405 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:50:05 ]
オブジェクト思考ではなくオブジェクト指向な。

406 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:17:22 ]
本末転倒だな

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

409 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:54:12 ]
なんで馬鹿ってのはすぐに「〜スレ行けよ」って言いたがるんだろうねw




410 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:02:59 ]
そりゃ自分に理解できないことは全部すれちがい

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

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

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

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

413 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:17:26 ]
こんばんは

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

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

414 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:45:11 ]
確保してどうしようってんだ

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

416 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:01:14 ]
>>413
new

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

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

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

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

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



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

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

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


423 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:40:03 ]
初心者は構造体を使うな。


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

425 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:09:39 ]
構造体なんて自作するもんじゃないやね

426 名前:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:59:23 ]
>>426
20020101 〜 20040131
20030101 〜 20030131
20020201 〜 20030115
こういうケースはどう並ぶの?

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

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

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

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

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



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

431 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:11:56 ]
>>429
何が頑張ろうだ、頑張るのはお前だw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<190KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef