C#, C♯, C#相談室 P ..
310:デフォルトの名無しさん
09/04/28 01:39:19
Graphicsに任意のControlを描画することって出来ます?
var webControl=new WebControl()
webControl.Draw(graphics);
みたいな感じで。
311:デフォルトの名無しさん
09/04/28 01:44:28
Excel 2003 vbaの関数をC#から呼んでるんですが
実行時にvba内のブレークポイントで処理を止めるには
どうしたらいいんでしょうか。
312:デフォルトの名無しさん
09/04/28 02:05:10
>>310
でやってみていかがでしたか?
313:デフォルトの名無しさん
09/04/29 18:41:06
public partial class Form1 : Form
{
[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static string mecab_sparse_tostr(int m, string str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int mecab = mecab_new2("");
string s = mecab_sparse_tostr(mecab,textBox1.Text);
mecab_destroy(mecab);
textBox2.Text = s;
}
}
これがXPでは動くのだけど、Vistaでは動かない。
mecab_sparse_tostr(mecab,textBox1.Text); で
System.AccessViolationException はハンドルされませんでした。
Message="保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。"
がでる。
意味がわからない。なぜ?
314:デフォルトの名無しさん
09/04/29 18:51:15
そのメカブってどこからもってきてんのよ
315:デフォルトの名無しさん
09/04/29 18:55:02
これ。
URLリンク(mecab.sourceforge.net)
316:デフォルトの名無しさん
09/04/29 18:55:19
オレも何かメカブそば食いたくなったわw
317:デフォルトの名無しさん
09/04/29 18:58:36
実はVista x64版だったというオチ、とか
318:デフォルトの名無しさん
09/04/29 20:04:16
>>317
それはさすがに大丈夫だった。
また、Mecabインストール時についてくるEXEは、普通に動きます。
319:デフォルトの名無しさん
09/04/29 20:06:30
とりあえずpInvoke行って宣言正しいかみてこようず
320:デフォルトの名無しさん
09/04/29 20:37:13
>>313
いま実際に動かしてみた
返値がStringだとマーシャラがギブアップするみたい
IntPtrで受けてMarshal.PtrToStringAnsiとかで文字列変換すべし
321:デフォルトの名無しさん
09/04/29 21:21:30
ref string でもいけそうな気がする。
322:デフォルトの名無しさん
09/04/29 21:28:24
返値にrefは使えない
エラーが出る原因だけど、あくまで推測レベルだが
返値にStringを指定した場合UnmanagedType.BStrならSysFreeStringが、
それ以外ならLocalFreeだかCoTaskMemFreeだかが自動的に呼び出されたはずなんで
メモリ周りの保護の強化との兼ね合いと思われる
323:デフォルトの名無しさん
09/04/29 22:10:13
>>320 >>322
ありがとう。XP、Vista両方動いた。
324:デフォルトの名無しさん
09/04/30 09:23:57
DataGridviewって動的列つかったCross集計もできないし機能ショボスギですね 代わりにMSレポートのマトリックス使ってますが将来DataGridviewにGrapeCityのGridみたいな機能が付加されることはないでしょうか
325:デフォルトの名無しさん
09/04/30 11:46:10
高機能すぎると独禁法が面倒なんだ
326:デフォルトの名無しさん
09/04/30 14:35:30
コンポーネントは機能が少ないほど良い。
327:デフォルトの名無しさん
09/04/30 19:31:39
×コンポーネントは機能が少ないほど良い。
○コンポーネントは機能が洗練されているほど良い。
328:デフォルトの名無しさん
09/04/30 21:23:18
>>326機能ゼロが最高だよね。
329:デフォルトの名無しさん
09/04/30 21:52:40
せめてAlt+F4で終了する機能ぐらいはつけてくれ
330:デフォルトの名無しさん
09/04/30 22:54:12
ListView を View == Details で使っていて、
選択された行をタブ区切りでクリップボードに転送してみようと思っているのですが
簡単な方法もしくは、一般にListViewからクリップボードへの定型的なやり方ってありますか?
331:デフォルトの名無しさん
09/04/30 23:02:53
1パターンしかないと思うが 細かい差異はあるかも知れんけど
332:デフォルトの名無しさん
09/05/01 02:27:08
C++で
const int data[] = {1, 2, 3, 4};
のようにやっていたのを
C#で書き直したいんだけど、
const int[] data = {1, 2, 3, 4};
とか
const int[] data = new int[]{1, 2, 3, 4};
って書くと文句言われる。
int[] data = {1, 2, 3, 4};
なら、文句言われなくなるんだけど、
C#でconst配列の初期化ってどうすればいいの?
333:デフォルトの名無しさん
09/05/01 02:29:31
そんなもの無い
dataそのものへの代入不可ならreadonly
要素の変更不可ならReadOnlyCollection<T>でラップ
334:デフォルトの名無しさん
09/05/01 02:31:20
private readonly int[] data = new int[] {1,2,3,4};
335:デフォルトの名無しさん
09/05/01 11:22:09
>>334
配列の要素に書き込めます
336:デフォルトの名無しさん
09/05/01 11:37:53
>C++で
>const int data[] = {1, 2, 3, 4};
は要素の書き換え可なの?
337:デフォルトの名無しさん
09/05/01 12:22:30
>>336
それは
int const data[] = ...
と同義だから、constはintに掛かってて、要素は書き換えられない。
338:デフォルトの名無しさん
09/05/01 13:03:46
スレ違いだが、
>>336
要素の書き換えは不可。
>>337
前半がウソ。それは同義ではない。
339:337
09/05/01 13:40:55
ごめん適当に書いたんだけど、C++とCで違いがあるの?
リンケージ変わったりとか?
340:デフォルトの名無しさん
09/05/01 14:16:41
static または auto に宣言しているなら変わらないかと、つか C# スレですが
専門のスレで聞いた方が良いで
341:デフォルトの名無しさん
09/05/01 14:21:46
>>335
readonly System.Collections.ObjectModel.ReadOnlyCollection<int> data = Array.AsReadOnly(new int[] { 1, 2, 3 });
こうかな、使ったことないんで自分で確かめてくれ。
342:デフォルトの名無しさん
09/05/01 14:23:28
読み取り専用その他、各種アダプタ類は、class に static 関数として定義されている事が多いんで、いろいろ見てくらはい。
343:デフォルトの名無しさん
09/05/01 16:36:37
メインのフォームから別スレッドを起動して、そのスレッドからフォームのテキストボックスにアクセスすると
CrossThreadMessagingExceptionが投げられるのですが、どのように回避するのが良いでしょうか?
344:デフォルトの名無しさん
09/05/01 16:42:06
コントロール スレッド でぐぐれ
345:デフォルトの名無しさん
09/05/01 17:48:18
スレッドをAbort()した後に、同じスレッドをStart()すると、
ThreadStateException
{"スレッドが実行中か、または終了しています。再起動できません。"}
が投げられます。
一度Abort()したスレッドを再開するにはどうすればよいでしょうか?
毎回new Threadをし直す必要があるのでしょうか?
できれば、new Threadはアプリ起動時に1度だけで済ませたいです。
346:デフォルトの名無しさん
09/05/01 18:00:27
メッセージどおり、Abortしたら再起動はできない
つーかAbortなんか使っちゃダメ SuspendとかResumeとかも禁止
フラグとかでスレッド自身が自分の状態を管理するようにする
別にThread作りなおしてもかまわんとは思うが
347:デフォルトの名無しさん
09/05/01 18:08:39
自分も独学でフラグで誤魔化したので、
スレッドの待機をメッセージが無い.NETでどうするか疑問だった
マジでみんなフラグ管理で逃がしてるの?
348:デフォルトの名無しさん
09/05/01 18:48:39
>>346
Resume、Suspendは「使用しないでください」と書いてありますが、Aboteには書いていません。
何故、Abortを使うのはダメとおっしゃっているのでしょうか?
349:デフォルトの名無しさん
09/05/01 18:52:43
>>348 マジ?どこどこ??
350:デフォルトの名無しさん
09/05/01 18:56:26
>>348
メモとかに書いてるっしょ どこで終了するか分からないからオブジェクトが不完全な状態になりうるとか
更には確実に終了されるかどうか保証できないとか実にやばそうな匂いが漂ってくる
351:デフォルトの名無しさん
09/05/01 19:14:36
>>349
Visual C# Express 2008のインテリセンス
>>350
そうは書いていないようです
352:デフォルトの名無しさん
09/05/01 19:26:48
インテリセンスて
ヘルプの解説見ろよ……
353:デフォルトの名無しさん
09/05/01 19:35:28
>>352
ヘルプの解説でも、
SuspendとResumeの項には
「メモ : このメソッドは,互換性のために残されています。」
「[ObsoleteAttribute("Thread.Resume has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. URLリンク(go.microsoft.com)", false)] 」
とありますが、
Abortの項にはありません。
詳しくはヘルプをご覧ください。
354:デフォルトの名無しさん
09/05/01 20:21:44
Thread.Sleep() に Timeout.Infinite を渡す。
再開は Thread.Interrupt() で ThreadInterruptedException をスローさせる。
355:347
09/05/01 21:40:05
さんくす
Thread.Interruptのコード例でsleepSwitchフラグの位置がイマイチ納得いかなかったけど
>>354に書いてあるように使うよ
356:デフォルトの名無しさん
09/05/01 22:04:03
>>347
一般にはフラグは使わない、イベントやセマフォやミューテックスの類を使って制御する。
フラグは簡単にミスするしバグりやすいよ、CPUパワーは無駄にするし、スレッドの実行優先順位も狂って非効率になる。
357:デフォルトの名無しさん
09/05/01 22:10:40
再開はそれでいいんだけど休止をどう伝えるのかイメージつかないんですが
358:デフォルトの名無しさん
09/05/01 22:25:42
>Thread.Interruptのコード例でsleepSwitchフラグの位置
デバッガで確認したけど、Thread.SpinWait(10000000);の行には行かないね。
シングルコアだとJoin呼ぶまでスレッド動かないからだね。
試しにInterrupt()のあとでThread.Sleep()入れてメインスレッドをスリープ待機に
入れちゃうとThread.SpinWait(10000000);がThreadInterruptedException起こすし。
マルチコアだと動かないんじゃないか?このサンプル。
359:デフォルトの名無しさん
09/05/01 22:48:07
>>357
メモリ操作オンリーの計算なら止めてしまっても問題ないと思うが
普通にいろいろなリソースを操作しているなら勝手なタイミングで止められたらマズくね?
もちろん上記のような特殊な状況があるならそれこそSuspendしちまっても全然問題ないと思われますけど。
普通の状況では、イベントを確認して問題なければそこで止める。
360:デフォルトの名無しさん
09/05/01 23:04:40
Sleepする前にInterruptされていたら停まらないでThreadInterruptedException起こすし
問題ないかを確認するのはInterruptする側でしろということじゃないかな。
361:デフォルトの名無しさん
09/05/01 23:07:19
なんつーか、AbortにしてもInterruptにしても、これらの操作はスレッドに対する最終手段だぜ
普通に使うものじゃない
362:デフォルトの名無しさん
09/05/01 23:09:02
同期を使わないなんてアリエナイ。
363:デフォルトの名無しさん
09/05/01 23:11:25
いや、開発するアプリの種類によるか・・・
スレッド自体、使わない人は使わないんだし。
364:デフォルトの名無しさん
09/05/01 23:11:48
スレッドの外部から停止再開させたいなら、同期オブジェクトを使おうが
結局フラグ的な使い方をすることになりそうな気がする。
365:デフォルトの名無しさん
09/05/01 23:13:55
>>364
フラグだとvolatile付け忘れたり、メモリーバリア忘れたり、素人には難しいぞ。
366:デフォルトの名無しさん
09/05/01 23:23:06
ManualResetEvent だともろフラグだ。
そういえばBackgroundWorkerの実装をみると
volatileもmemorybarrierも使ってなかったのを思い出した。
367:デフォルトの名無しさん
09/05/01 23:24:28
つかEventはマルチスレッド用のフラグですから
セマフォはマルチスレッド用のカウンタですから
368:358
09/05/02 03:35:46
嘘こいてた。
>入れちゃうとThread.SpinWait(10000000);がThreadInterruptedException起こすし。
起きない。そもそも待機してない風?
>スレッドを iterations パラメータで定義した時間の間待機させます。
ってヘルプにあるのに・・・ある・・・定義した時間って単位はいくらだ?フェムト秒?
Causes a thread to wait the number of times defined by the iterations parameter.
・・・誤訳かよ!
待機とブロックと中断の用語がなんか変な気もするし。日本語ヘルプはだめすぐる。
369:デフォルトの名無しさん
09/05/02 03:40:54
WCFとかAzureの質問ってここでしていいのかな。
Azure SDKのdevelopment fabric上でWCFサービスを動かすと、
127.0.0.1からはアクセスできるのに、自分のホスト名から叩くとアクセスできなくて、
俺の設定ミスなのかAzure SDKのバグなのか分からないんだけど。
解決策を知ってる人がいたら教えて欲しい。
370:デフォルトの名無しさん
09/05/02 03:56:03
切り分けしようぜ
371:デフォルトの名無しさん
09/05/02 03:56:30
手元に無いんで試してないがエスパーしてみると
リスナーでIPAddress.Anyとすべきところがそうなってないとか
372:デフォルトの名無しさん
09/05/03 10:20:58
>設定ミスなのかAzure SDKのバグ
自分のプログラムが悪いとはこれっぽっちも考えてないのね
373:デフォルトの名無しさん
09/05/03 11:22:10
>>372
「俺」って言うのは日本語で「自分」を示す一人称の一つだよ。
374:デフォルトの名無しさん
09/05/03 11:42:24
設定ミスと考えてるってことはプログラムは悪くないと思ってるってことだろ
375:デフォルトの名無しさん
09/05/03 11:44:41
設定はプログラムでするだろ
376:デフォルトの名無しさん
09/05/03 12:15:09
何言い返してんだよ、本人か?
そうでなけりゃ、自分のプログラムミスを設定ミスと言い直してごまかす人か?
377:デフォルトの名無しさん
09/05/03 12:58:12
あ、回答どうも。
>>370
がんばってみたんだけど無理だった。。
とりあえず、MS提供のサンプルで同じことが起こるのは確認済み。
別環境でやっても同じく。
>>371
なるほど。そういうオプションがあるのか。
IISでその辺設定するにゃどうしたらいいんだろ。調べてみますわ。
>>372
ランタイムの初期化って設定って言いませんかねぇ。
あと、言うの忘れてたけど.svc使ってIISの機能でホスティングさせてたんで。
378:デフォルトの名無しさん
09/05/03 13:43:49
WCFはIISでホスティングさせているか否かでだいぶ違うから、
そういう大事なことは先に言えよな。
あとはトランスポートになに使ってるかかな、BasicHttpBindingとかそんなの。
379:377
09/05/03 14:05:03
失礼(´・ω・`)
バインディングはBasicHttpBindingにしてる。
ウィザードのデフォルトはWebHttpBindingだけど、
それだとそのまま使うとなんか例外投げたので。
とりあえず、MSの開発者側も認識している既知の問題としては、
WCFアプリをAzureにうpすると、自分のホスト名を、
ユーザが使うロードバランサのアドレス(URLリンク(***.cloudapp.net))ではなく、
分散環境内でアプリが実際にロードされている鯖(URLリンク([guid].cloudapp.net))のもの
として認識してするせいで、それをendpointとしてWSDLを生成してしまう、
というのはどっかで見かけたけど、それがこの問題とも関連しているのかよく分からない。
380:デフォルトの名無しさん
09/05/03 14:06:36
ちなみにこれ。
URLリンク(code.msdn.microsoft.com)
381:デフォルトの名無しさん
09/05/03 14:10:18
内部識別子でWSDLを公開している様子
URLリンク(wcfazure.cloudapp.net)
URLリンク(wcfazure.cloudapp.net)
けど、ローカルで動かす分には鯖名自体は(もちろん)合ってるから関係ないはずではあるんだけど。
382:デフォルトの名無しさん
09/05/04 15:59:03
まずはIISで動かしているのかASP.NET開発サーバーで動かしているのか確認かな。
後者なら127.0.0.1(localhost)しか受け付けない。
タスクトレイにASPNET開発サーバーアイコンが表示されているようなら後者。
IISで動いているなら、コンピューターの管理からIISの設定を確認する。
まずWEBサイトの識別のIPアドレスで「未使用のIPアドレスすべて」になっているかどうか。
ここが127.0.0.1になっていればそれでしか繋がらない。
次にこのアプリの仮想ディレクトリを確認でセキュリティ関係に矛盾がないか確認。
よくやってしまうのが、統合認証+匿名認証の設定になっていて、
WEBで公開しているディレクトリにIUSR_xxxxのアクセス許可がないケース。
統合認証で認証された場合は問題ないが、匿名の場合にアクセス拒否を食らう。
383:デフォルトの名無しさん
09/05/04 17:09:52
>>382
ありがとう。
いま、手元に環境がないので、後日確認してみて報告しますわ。
384:デフォルトの名無しさん
09/05/04 18:30:41
C#でテキストを1行ずつ読み込み、条件に合った行を取得するような簡単なものを組んでいるのですが、
条件に合った行から連続する3行とかを取得するにはどうすれば良いのですか。
初歩的かもしれませんが、ご教示願います。
385:デフォルトの名無しさん
09/05/04 18:32:17
>>384
とりあえず下の場合の動作は?
テキスト
1234
1234
1234
abcde
abcde
abcde
条件: 1234
386:デフォルトの名無しさん
09/05/04 18:37:32
>>384
条件に一致した行のインデックスとって自分でそこから2行読めば?
387:デフォルトの名無しさん
09/05/04 18:41:59
なんかJavaより面倒そう
388:デフォルトの名無しさん
09/05/04 18:42:02
var result = new List<string>();
int flag = -1;
foreach (string line in lines)
{
if (条件に合ってる行の場合)
{
flag = 0;
}
if (flag =! -1)
{
result.Add(line);
flag++;
if (flag > 3)
{
flag = -1;
}
}
}
389:デフォルトの名無しさん
09/05/04 18:50:20
=! だと・・・?
390:デフォルトの名無しさん
09/05/04 19:08:04
grepと同じ挙動ならこんな感じか
IEnumerable<string> Grep(IEnumerable<string> source, string pattern, int after) {
int n = 0;
foreach (var line in source) {
if (line.Contains(pattern)) n = after + 1;
if (n > 0) {
n--;
yield return line;
}
}
}
391:デフォルトの名無しさん
09/05/04 19:25:31
>>384
bbbが条件だとして、そこから3つを取得
string[] list = { "aaa", "bbb", "ccc", "ddd", "eee" };
var result = list.SkipWhile(s => s != "bbb").Take(3);
392:デフォルトの名無しさん
09/05/04 19:44:16
linqを使いたいお年頃なんですね
393:384
09/05/04 20:03:01
返事が遅くなりました。
1234
aaa
bbb
ccc
2345
ddd
eee
fff
のようになっていまして、ReadLineで順に読んでいって、1234を発見したときに、
aaa、bbb、cccの3行を取得するようにしたいです。
1234の行は取得できるのですが、その次の行を読んでbreak;の方法がいまいちわかりません。
394:デフォルトの名無しさん
09/05/04 20:10:11
もし1234が見つかったらのifステップ中は
ReadLine();
ReadLine();
ReadLine();
じゃだめなの(;´Д`)
395:デフォルトの名無しさん
09/05/04 20:10:39
>>393
1234が2回以上あらわれることはあるか、
また1234に続く3件のうちに1234が含まれていた場合の扱いは?という確認だろ。
そういうことはありえないという条件でもよいのだが。
その条件が確定すれば簡単だよ。
396:デフォルトの名無しさん
09/05/04 20:16:30
すみません。おそらくすごい初歩的なことだと思います。
検索する行(この場合は1234)は、他の行には一切ありません。
>>394さんの3回記述をするのは、次の2行も取得できるということですか?
Webはいろいろ調べてみたのですが、1行ずつ読み込む方法しか書いてなかったもので。
397:デフォルトの名無しさん
09/05/04 20:30:44
>>385はスルーですかそうですか
398:デフォルトの名無しさん
09/05/04 20:31:52
>>391はスルーですかそうですか
399:デフォルトの名無しさん
09/05/04 20:33:15
>>398
いやまて391は流石に役に立たないだろう根本的な部分で
400:384
09/05/04 20:41:24
>>385を書かれた時点で自分の伝えたいことが伝わってないことがわかり、をれを参考にして例示を上げてみました。
スルーするつもりはありませんでしたのでご容赦ください。
今>>394の方法でやってみたところ、思った通りの挙動が確認されました。
まだ本片手で勉強している最中ですので、このような質問内容になったことをお詫びいたします。
みなさん、ありがとうございました。
401:デフォルトの名無しさん
09/05/04 20:59:57
ReadLine()は
今まで読んだ行の位置からスタートして
次読み込む行を調べて
その行に移動して
その行に書いてあることを読んで
今読んだ行を覚えておいて
読んだ内容を返す
っつー動作をするんじゃね?
402:デフォルトの名無しさん
09/05/05 17:19:16
ちなみに和布蕪(めかぶ)は, 作者の好物です.
403:デフォルトの名無しさん
09/05/07 00:49:52
.net framework って、普通1.1なの?
2.0や3.0, 3.5って企業や業務アプリで使ってないノア?
404:デフォルトの名無しさん
09/05/07 00:52:12
使っていいよ。
405:デフォルトの名無しさん
09/05/07 00:53:08
2.0は十分なシェアあるだろうが可能な限り低いバージョンでやるべきだろ
406:デフォルトの名無しさん
09/05/07 01:03:04
ほとんど2.0じゃないかな。1.1まではベータ版みたいなものだし。
407:デフォルトの名無しさん
09/05/07 01:10:24
FrameworkClientProfileで開発しとけば色々便利
408:デフォルトの名無しさん
09/05/07 01:22:03
俺様メモからの引用
--
.NET Framework 3.5 Client Profile
3.5 SP1のサブセット
インストール可能な環境は
Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP(SP2以降)
であるが、さらに次の条件が付加されるため実質XP(SP2以降)だけが対象となる。
フルセットの.NET Frameworkが導入されていないこと。(2.0以降だけでなく1.1や1.0も!)
フルセットの.NET Frameworkがすでに導入されている場合に
Client Profileのインストーラは3.5SP1フルセットのインストールを行う。
409:デフォルトの名無しさん
09/05/07 01:40:15
3.5 SP1
410:デフォルトの名無しさん
09/05/07 01:41:20
3.5 SP1 フルインストールってすごい長いんだよな・・・
411:デフォルトの名無しさん
09/05/07 02:18:57
>>394で正解とか他の解答者がさすがにかわいそうすぎたw
412:デフォルトの名無しさん
09/05/07 02:19:21
Silverlightで皆幸せ
413:デフォルトの名無しさん
09/05/07 03:58:32
和暦のカレンダーコントロールが必要になった
めんどくさいからだれか知ってたらサンプルのページ紹介か作ってくれw
サードパーティはバグに引っぱられるからかるからなるだけ使いたくねえ…
もう和暦とか辞めればいいのに
西暦で統一してぇ・・・
414:デフォルトの名無しさん
09/05/07 04:07:32
天皇制がある限り無理
415:デフォルトの名無しさん
09/05/07 07:10:32
面倒だけどそんなに手間じゃないよな
416:デフォルトの名無しさん
09/05/07 11:28:41
まあ、「今後は」西暦に統一したとして、
過去に作った分にまで遡及させるのは無理だから
実際に和暦が消えるのは数十年後よ。
417:デフォルトの名無しさん
09/05/07 11:37:04
太陽暦移行後だけでいいなら簡単だろうな。
418:デフォルトの名無しさん
09/05/07 11:59:10
普通は平成、昭和、大正、明治をサポートすれば大丈夫なんだろうけど、
お寺の過去帳データベースを作ったときはまいったな。
419:デフォルトの名無しさん
09/05/07 13:47:29
和暦とか旧暦とか六曜とか月齢とかまとめて計算してくれるクラス欲しいな
海外ローカルも含めて国際カレンダークラスみたいなもの。
420:デフォルトの名無しさん
09/05/07 13:50:57
暦計算だけならCalendarクラス使えばいいだろう。
六曜や月齢はないが。
421:デフォルトの名無しさん
09/05/07 17:17:40
和歴はあってもイイけど業務で使うのは辞めて欲しい
役所が一生懸命使ってる限りは無理だろうけどさ
422:デフォルトの名無しさん
09/05/07 17:36:57
和暦に命をかけてるんじゃないかってほどこだわってた客がいたな
昭和何年何月何日は存在しないから入力できないようにしてくれとか
結果的にあってんだからいいんだよ!
423:デフォルトの名無しさん
09/05/07 18:14:23
世界のローカル暦サポートなんて、Unicodeの比じゃない難事業だぞ。ヨーロッパ各国に限っても、
ユリウス暦からグレゴリウス暦の移行期は国ごとに日付が違うし、ユリウス暦の初期は閏年が
いつだったのかわからないし、ユリウス暦導入前は最高神祇官が勝手に閏年を決めるし、一方
ギリシアではポリスごとに暦が違うし……
日本だって南朝と北朝で暦が違っていたり、暦書がなくて暦を復元できない時代があったり、
ああもう面倒くせえ
424:デフォルトの名無しさん
09/05/07 18:16:23
旧暦の暦の正当性は閏月とかあってとてもじゃないけど保障できない。
さきの過去帳DBなんだけど、古いのはもう計算じゃ出せなくてテーブルで持つしかなかった。
古いのは書き写したときのミスとかいろいろあってもう記述がいい加減なんだよね。
咸豊とか中国の元号が出てきたときにはもう勘弁してください状態だった。
南北朝や九州年号はさすがになかった・・
425:デフォルトの名無しさん
09/05/07 19:35:09
さすがだな、おまえらw
”和暦のカレンダー”だけでここまで穿り返すとはwww
426:377
09/05/07 19:43:50
>>382
今日いろいろ調べてみた。
結果としては、Development Fabricは内部でASP.NET開発サーバを使っているのではないか、
という感触を持った(サービスが自分をホストしている鯖の情報を取る方法を知らないので確定的ではないけど)。
AzureのドキュメントにはIISを使ってるって書いてあるし、ASP.NET開発サーバアイコンも表示されていないんだけど、
IISにアクセスログを吐かせてみても、127.0.0.1:81を叩くときだけログに残らないし、
よく考えると、80番の設定で起動してるのに81番で起動するのは、IIS以外に鯖を起動した上でホストしている証拠かな、と。
そうなると、ホスト名がつかえないのは、現状では「仕様」ということになるんだと思う。
とりあえず、CTPの文字が外れるまではこのままなんだろうなぁ、というオチにしておく。
みんな、いろいろ教えてくれてありがとう。
427:デフォルトの名無しさん
09/05/07 20:20:27
すみません、
HTML文からタグのみを取り出す関数はありませんか?
逆に言うと、HTML文のタグ以外を削除するような関数
のことですが。
428:デフォルトの名無しさん
09/05/07 20:32:18
安易に考えたらXML名前空間の機能使って取り出すとか?
429:デフォルトの名無しさん
09/05/07 20:34:59
関数はないな
正規表現使えばタグの抽出だけなら比較的簡単だ
>>428
XHTMLじゃない限りほぼパース不可能だよ
430:デフォルトの名無しさん
09/05/07 20:35:48
酷いHTML読まされる事考えるなら、MSHTML使うのが一番楽じゃないかね
431:デフォルトの名無しさん
09/05/07 20:56:10
SgmlReader っていうのもある。
432:デフォルトの名無しさん
09/05/07 21:04:57
CommitChanges()はパフォーマンス面で悪かったりする?
普通に多用していいもの?
433:432
09/05/07 21:42:45
ああスレ間違えた
434:デフォルトの名無しさん
09/05/08 00:20:25
>>427
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
435:デフォルトの名無しさん
09/05/08 00:26:09
System.Windows.FormsのHTML DOMはWebBrowserなしだと普通には作れないのが難
標準でwebスクレイピングライブラリとか作られんかのう
436:デフォルトの名無しさん
09/05/08 00:31:13
寺とかちょっとした歴史の勉強だなw
437:デフォルトの名無しさん
09/05/08 00:31:51
プログラムにフォルダ名が入っているのですが、いれないようにするにはどうすればいいですか?
438:デフォルトの名無しさん
09/05/08 00:34:01
SilverLight
439:デフォルトの名無しさん
09/05/08 00:37:25
>>435
んじゃ、これ。
URLリンク(htmlagilitypack.codeplex.com)
440:デフォルトの名無しさん
09/05/08 00:38:35
すんません、書きなおします
プログラムをバイナリエディタでみたところプログラム内にフォルダ名が書き込まれているのですが、
ビルド時、かきこまれないようにするにはどうすればいいですか?
441:デフォルトの名無しさん
09/05/08 00:38:55
>>437
相対パス使うか、定義ファイルにパス書くか、レジストリにパス書く。
442:デフォルトの名無しさん
09/05/08 00:39:43
>>440
リリースビルド & .pdb を作らないようにすればいいんじゃなかったっけ?
443:デフォルトの名無しさん
09/05/08 00:40:43
あ、ありがとうございます
ビルドー詳細設定でデバッグ情報をnoneにしたらいけました
あせった><
444:デフォルトの名無しさん
09/05/08 00:48:43
ビルドーってディルドーに似てる
445:デフォルトの名無しさん
09/05/08 02:31:26
2000年問題に対応したとき、「なんでこんなややこしい閏年の置き方をするんだ!」とか
思ったものの、よく勉強してみたら、現行暦がいかに単純で合理的か納得したw
446:デフォルトの名無しさん
09/05/08 06:10:15
>>445
日本の季節感にはまったくあってないけどな
昔は一番寒い時期が1月1日で新年を迎えると暖かくなる一方だった
戦争に負けたアジアは所詮白人のおまけということだな
447:デフォルトの名無しさん
09/05/08 07:14:01
>>446
おじいちゃん乙
448:デフォルトの名無しさん
09/05/08 07:21:58
>>446
中国行って旧正月でも祝ってればいいんじゃない
449:デフォルトの名無しさん
09/05/08 07:22:24
そのせいで地方によってはいくつかの行事は月遅れでやることが多いけどな。
ひな祭り、七夕、盂蘭盆会などなど。
450:デフォルトの名無しさん
09/05/08 10:56:45
なんか思いっきりスレチ方向へ進んでないか?ww
451:デフォルトの名無しさん
09/05/08 12:22:22
じゃあディルドーの話に戻そう
452:デフォルトの名無しさん
09/05/08 23:07:53
三叉路まで戻って別の違う道に進んだみたいな。
453:デフォルトの名無しさん
09/05/08 23:17:29
ディルドゥーなら喜んで食いついたのに
454:デフォルトの名無しさん
09/05/09 13:32:15
vbでいうところの
for i=0 to 4
label(i)="abc"
next
みたいな
ループの添字で複数の連番的なオブジェクトを指定するにはどうしたらいいのでしょうか
オブジェクトに番号振るっていう状態をどういうのかがわからなくて調べられないです
1日いろいろ探してみましたが思いつく宛が詰まってしまったのでヒントが欲しいです
455:デフォルトの名無しさん
09/05/09 13:35:24
配列に入れておいて、あとは同じように。
456:デフォルトの名無しさん
09/05/09 15:23:13
ありがとうございます
457:デフォルトの名無しさん
09/05/09 21:20:30
質問です
フォームのテキストラベルにH2Oと入れたいんだけど2を下付きにするにはどうすればいいのですか?
Hのラベル、2のラベル、Oのラベルを3個並べてお茶を濁してきたけど、詳しい方どうか教えてください。
458:デフォルトの名無しさん
09/05/09 21:23:57
そうやるしかない
459:デフォルトの名無しさん
09/05/09 21:30:23
自前で描画するしかないな Paintイベント使って
460:デフォルトの名無しさん
09/05/09 21:30:36
>>457
U+2082 ₂ SUBSCRIPT TWO
461:デフォルトの名無しさん
09/05/09 22:04:02
>>457
文字を書いてつくったイメージを貼り付ければいいじゃん
462:デフォルトの名無しさん
09/05/09 23:36:39
H₂0
な なるほど!thx
463:デフォルトの名無しさん
09/05/09 23:44:44
リッチテキスト
464:デフォルトの名無しさん
09/05/09 23:48:55
₀₁₂₃₄₅₆₇₈₉
465:デフォルトの名無しさん
09/05/12 11:40:49
ComboBoxの項目の表示色を項目内容によって変えるとき
DrawItem()でDrawString()すれば良いんだけど。
ComboBoxの数が多いのでユーザコントロールにするとしたら
どこでDrawString()すればいいんだろう?
OnDrawItem()で直接書いちゃっていいのかな?
466:デフォルトの名無しさん
09/05/13 23:19:39
その前にやってみれば?
467:デフォルトの名無しさん
09/05/14 01:11:13
>>465
OnDrawItemでいいよ。
468:デフォルトの名無しさん
09/05/14 09:36:16
ありがとう。
OnDrawItem()でうまくいきました。
ついでに背景色とかも変更してみます。
469:デフォルトの名無しさん
09/05/14 16:20:55
指定したディレクトリ以下のすべてのファイルを効率的に列挙していく場合どのクラス、メソッド使うのがいいですか?
GetFilesみたいにリストを作って返すのではなくWin32APIのFindFirstFile/NextFile相当のものが使いたいんですが。
470:デフォルトの名無しさん
09/05/14 17:01:05
Linq
471:デフォルトの名無しさん
09/05/14 17:08:21
FindFirstFile/NextFile
472:デフォルトの名無しさん
09/05/14 17:18:48
.NETは非コンテナに対するイテレータが弱すぎる
473:デフォルトの名無しさん
09/05/14 17:29:26
yieldがありゃ十分だろ
474:デフォルトの名無しさん
09/05/14 17:30:22
>>469
.NET Framework 4.0 のGetFiles
475:デフォルトの名無しさん
09/05/15 02:24:16
実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
その手のライブラリなど、ご存知の方いますでしょうか? Reflection で自前
で再帰するしかない?
476:デフォルトの名無しさん
09/05/15 02:42:10
CodeProjectとか探せばありそうな予感。
まぁ実装してもたいした手間じゃな下げだけど。
477:デフォルトの名無しさん
09/05/16 13:13:47
>>475
>実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
object階層の意味がよく分からないけど、
Visual Studioのウォッチウィンドウみたいな感じで
インスタンスの情報を展開してくれるのが欲しいってこと?
だったらオブジェクト参照が循環している場合もあるので注意かな。
シリアライザ/デシリアライザみたいにグラフとして扱うか、
ウォッチウィンドウみたいにクリックするまで子ノードの評価を行わないといった
工夫が必要になると思う。
478:475
09/05/16 16:25:07
>>476
いや、それが結構面倒くさい。CodeProject はなさそうでした。
>>477
なるほど、シリアライズして XML を使うのもありですね。
どうもありがとう。
479:デフォルトの名無しさん
09/05/16 16:58:37
ソースいじくれるのならExpandObjectConverterでPropertyGridとかがお手軽じゃね
480:90
09/05/16 20:36:16
すいません、教えてください。
ユーザコントロールを作成していますが、
既存の型を使用した場合は問題ないのですが、enum型を定義して
使用すると、このコントロールを使用するプログラムで
デザイン時に初期値を選んだ場合は問題ないのですが他の候補(この場合type2)を
セットすると
「'System.Windows.Forms.Control.ControlCollection' に 'xxxComboBox' の
定義が含まれておらず、型 'System.Windows.Forms.Control.ControlCollection' の
最初の引数を受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。」のエラーになります。
481:デフォルトの名無しさん
09/05/16 20:39:20
名前を間違えました。90のかた申し訳ありません。
ソースはこんな感じです。
namespace Controls
{
public partial class xxxComboBox : ComboBox
{
public enum DrawingMode : int
{
type1 = 0,
type2 = 1
}
private DrawingMode _ItemDrawingMode;
[Category("Custom")]
[DefaultValue(typeof(DrawingMode), "type1")]
[Browsable(true)]
public DrawingMode ItemDrawingMode
{
get { return _ItemDrawingMode; }
set { _ItemDrawingMode = value; }
}
482:デフォルトの名無しさん
09/05/16 20:40:31
private Color _FirstBGColor;
[Category("Custom")]
[DefaultValue(typeof(Color), "White")]
[Browsable(true)]
public Color FirstBGColor
{
get { return _FirstBGColor; }
set { _FirstBGColor = value; }
}
public xxxComboBox()
{
InitializeComponent();
_ItemDrawingMode = DrawingMode.type1;
_FirstBGColor = Color.White;
}
...
}
使用する側では参照設定にこのdllを指定しています。
FirstBGColorプロパティは他の色に変更しても正しくビルド・実行できます。
DraingModeのプロパティをtype2に変更してビルドすると上記の
エラーがでます。
エラー箇所を見ると
this.xxxComboBox1.ItemDrawingMode = Controls.xxxComboBox.DrawingMode.type2;
の行が解決できないようです。
using Controls;を加えても同じです。
ControlCollectionに追加するにはどのメソッドを使用すればいいのでしょうか?
483:デフォルトの名無しさん
09/05/16 22:32:52
使う側を
this.xxxComboBox1.ItemDrawingMode = 1;
にしたらエラーでないよね?
484:デフォルトの名無しさん
09/05/16 22:41:13
何もおかしなことはない。エラーメッセージの通り
this.Controls は Control.ControlCollection クラスのインスタンスだろ
485:480
09/05/17 08:30:40
>>483, 484
ありがとうございます。
this.xxxComboBox1.ItemDrawingMode = 1; は型が違うのでエラーになります。
呼び出し側でusing Controls;を定義して、コードで(例えばForm1_Load内で)
xxxComboBox1.ItemDrawingMode = xxxComboBox.DrawingMode.Type2;
のように書けば、正常にビルド・実行可能です。
ただし、先程書いたようにデザイナからプロパティ値を変更すると
エラーになります。ControlCollectionにxxxComboBoxを追加して
導出してやらないといけないのかと思いますが、やり方が分かりません。
486:デフォルトの名無しさん
09/05/17 09:23:29
名前空間にglobal::Controlsなんてのはやめようよ
せめてライブラリ名.Controlsに
487:480
09/05/17 11:08:57
お騒がせしました。解決しました。
そうだよな、namespaceの名前を変えよう・・・
ということでControlsからmalib.Controlsにnamespaceを変更したら
ちゃんと動作しました。
488:デフォルトの名無しさん
09/05/20 21:40:44
この言語笑うしかないわw いい意味で。
今C#の勉強の意味もこめてC#のいろんな機能をフルに利用するつもりで
ちょっとしたプログラムを作っているんだが
本当にC++、Javaから発展してきた言語とは思えん。
まず、DataGrid使って表を作る。
row.SetValues(1,2,3)とやることで、一行のデータを一気に入れられる。
そこで一行全部の背景色をつけたいと思った。
SetValuesと同じように、row.SetStyle(style)とやりたかったが、
残念ながらSetStyleはセルごとしかなかった。
DataGrid(正確にはDataGridViewRow)になんでSetStyleが無いんだよ!って
怒るような事例なのに、拡張メソッドを使うことで継承を利用せずに
いとも簡単にrow.SetStyle()を付け加えることができるとはw
489:デフォルトの名無しさん
09/05/20 23:09:50
>>488
それでC#にケンカ売ってるつもり?
まさかそんなわけないよねwww
490:デフォルトの名無しさん
09/05/20 23:13:11
C#はあれだよあれ
メロンパン言語だ
491:デフォルトの名無しさん
09/05/20 23:25:01
どう見ても誉めてるじゃん
492:デフォルトの名無しさん
09/05/20 23:36:57
コンポーネントと言語をごっちゃにして、的外れだけどな。
493:デフォルトの名無しさん
09/05/21 00:24:35
うん
C# の話じゃなくてフレームワークの話だな
494:デフォルトの名無しさん
09/05/21 00:25:41
C#じゃなくてWinFormsの話だな。
C#はソースが読みやすいとか、一貫した仕様でスッキリしてて覚えやすいとか色々あるけど、
何よりVSっていう最強のIDEが付っきりで開発支援してくれるのが最大のアピールポイントだと思う。
VSが無ければ他の言語でいいけど、一回VS+C#で慣れると他の言語やる時にかなりメンドクサイ。
・・・あれ、ここって相談室だよな?
495:デフォルトの名無しさん
09/05/21 00:34:35
C#ならまずdelegateを褒めたいな。リスナめんどい。
496:デフォルトの名無しさん
09/05/21 00:42:09
Enumerable.DistinctにはなぜFunc<TSource, TSource, bool>を受け取るオーバーロードがないんだ
497:488
09/05/21 00:44:37
>>492
> コンポーネントと言語をごっちゃにして、的外れだけどな。
言っとくけど、言語の話だよ。
mix-inといえばわかるかな?
(標準ライブラリの)クラスに、メソッドを後付できる。
という言語仕様。
498:デフォルトの名無しさん
09/05/21 00:47:05
拡張メソッドは便利だな、で終わる話なのに、つらつら書かれても・・・
ってことを言ってるんだと思うよ。
499:デフォルトの名無しさん
09/05/21 00:48:35
俺「拡張メソッドは便利だな」
他の人「そうだな」
で終わってくれればいいのに、
コンポーネントとかWinFormsの話だなとか
間違ったこと言い出すからレスせざるを得なかったんだよw
500:デフォルトの名無しさん
09/05/21 00:49:48
>>497
あきらかに主題の文章量と副題の文章量の比がおかしいww
おまえは女かwwwwww
501:デフォルトの名無しさん
09/05/21 00:51:06
>>499
先に言っとく。基地外(500など)は無視したほうがいいよw
502:デフォルトの名無しさん
09/05/21 00:52:42
>>501
おけw
間違ったことを何も言っていないのに、
なんで変なやつがまとわりついてくんだか。
こちとら本格的にC#はじめて五日目だ。なめんじゃねーぞw
503:デフォルトの名無しさん
09/05/21 00:54:31
それでは次の型どうぞ〜
504:デフォルトの名無しさん
09/05/21 01:01:24
System.Collections在住 : ArrayList さん
最近みんなジェネリック、ジェネリックって言って僕を呼んでくれないんです。
昔はあんなにちやほやされてたのに・・・。
これから僕はどうしていけばいいんでしょうか。
505:デフォルトの名無しさん
09/05/21 01:02:54
つまらん
それでは次の型どうぞ〜
506:デフォルトの名無しさん
09/05/21 01:42:30
ブラウザの機能が安定しません。
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}
たったこれだけの実装ですが、googleのページがすぐに表示されるときと
ずっとまっ白でまったく表示されない時があります。
環境は、XPProSP2、IE6です。
どなたか解決方法を知りませんか?
507:デフォルトの名無しさん
09/05/21 01:47:34
つける薬は無い
508:デフォルトの名無しさん
09/05/21 01:48:23
ロード後に Navigate しても状況は一緒?
509:デフォルトの名無しさん
09/05/21 01:54:11
ロード後にというのがよくわかりませんが、
ボタンをひとつつけて、その中でNavigateしても状況はかわりません。
非常に安定しないんです。
510:デフォルトの名無しさん
09/05/21 01:56:19
ウェブブラウザーコントロールは一度「about:blank」を表示してから
目的のページを表示するんが一般じゃなかったっけ?
511:デフォルトの名無しさん
09/05/21 02:04:35
>>510
書き忘れましたが、それも試して効果はありませんでした。
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}
512:デフォルトの名無しさん
09/05/21 02:06:14
じゃあ、無理じゃね? 素直にリロードしてもらえよ。
513:デフォルトの名無しさん
09/05/21 02:13:33
わかりました。
自分でもかなり調べてダメだったので、諦めることにします。
ありがとうございました。
514:デフォルトの名無しさん
09/05/21 02:51:04
前にAxWebBrowser使ってた時に俺もそんなことあったな。Navigateするタイミングだと思うんだけど。
起動時にNavigateするようにした時に稀にあった。
とりあえず、起動時にいきなりNavigate使う時はコンストラクタじゃなくてLoadイベントなり登録してそこでやった方がいいと思う。
それでこの症状が直るわけではないと思うけど。
515:デフォルトの名無しさん
09/05/21 12:03:16
>>506
webBrowserだけじゃなくて
IE6のそのものが、ずっと真っ白のままで表示されないことがあるんだが・・・
AVGのリンクスキャナを停止してからは少しマシになったかも?
普段はChromeを使っているから見なかったことにしてるけど。
516:デフォルトの名無しさん
09/05/21 14:18:15
>>506とおんなじコードで試してみたけど、
何度やっても問題なく表示されるな。
環境はXPProSP2、IE6、VS2008Pro
517:デフォルトの名無しさん
09/05/21 14:49:26
webBrowser1.BusyがTrueのときそうなるんじゃないか?
518:デフォルトの名無しさん
09/05/21 15:58:51
>>515
ウィルス対策ソフトは切ってます。
>>516
ほんの2日ほど前まで私もその環境でしたが、なぜか動きません。
XPProSP3、IE8、VS2008Exにしましたが、改善はありません。
>>517
ちょっと見てきます。
519:デフォルトの名無しさん
09/05/21 16:02:12
取り敢えず514な
System.Windows.Forms.WebBrowserはコントロール上に乗って無くても大丈夫なように作られてるけど一応
520:デフォルトの名無しさん
09/05/21 16:23:25
>>517
■PG
public Form1()
{
InitializeComponent();
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.yahoo.co.jp)");
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
}
■出力
IsBusy:False
'Test.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll' が読み込まれました
IsBusy:False
■結果
画面まっ白
>>514
LoadイベントでやってもThread.sleep(5000)をnavigateの前後に入れてもまっ白になることが多々ありました。
521:デフォルトの名無しさん
09/05/21 18:07:17
Shownを使え
522:デフォルトの名無しさん
09/05/21 22:09:23
IE でダメなら、WebBrowser でもダメだろよ。
523:デフォルトの名無しさん
09/05/21 22:32:09
ReadStateがcompleteになるまで待ったほうがいいんじゃないかな?
524:デフォルトの名無しさん
09/05/21 22:49:46
ContextMenuStripに追加したToolStripMenuItemの
DropDownItemsに追加したToolStripMenuItemのイメージ余白の消し方を教えてください。
1階層目はShowImageMarginをFlaseにすれば消せるのですが
2階層目以降のToolStripMenuItemは余白が出たままになってしまいます…。
525:デフォルトの名無しさん
09/05/22 01:41:24
>>313さんのMecabの返り血をAnisで受けると文字化けするんですけど、
文字化けしない方法をどなたか教えてください orz
526:デフォルトの名無しさん
09/05/22 01:44:57
キャー!
527:デフォルトの名無しさん
09/05/22 01:46:46
PtrToStringAuto だとどうなる?
528:デフォルトの名無しさん
09/05/22 02:00:25
>>527
こんななりました。。
?慣???麩????????????弊(ry
529:デフォルトの名無しさん
09/05/22 02:26:54
Shift_JIS(CP932)をUTF-8と誤認識してるんじゃね。
530:デフォルトの名無しさん
09/05/22 03:09:18
俺はこれでできた
[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static IntPtr mecab_sparse_tostr(int m, byte[] str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);
int mecab = mecab_new2("");
this.textBox2.Text = Encoding.Default.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Unicode.GetBytes(
Marshal.PtrToStringUni(mecab_sparse_tostr(mecab, Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(
this.textBox1.Text))))))).Replace("\n", "\r\n").Replace("\r\r\n", "\r\n");
mecab_destroy(mecab);
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4323日前に更新/229 KB
担当:undef