1 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:53:21.18 ID:dhjmiKBp0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980 を踏んだ人は新スレを建てて下さい。>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part152 mevius.5ch.net/test/read.cgi/tech/1629888256/ ■関連スレ C#, C♯, C#相談室 Part94 mevius.5ch.net/test/read.cgi/tech/1553075856/ ■コードを貼る場合は↓を使いましょう。 https://ideone.com/ https://dotnetfiddle.net/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/ https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/ https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/ https://referencesource.microsoft.com/ https://source.dot.net/ ・Insider.NET > .NET TIPS - @IT https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html ・DOBON.NET .NET Tips https://dobon.net/vb/dotnet/index.html VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
26 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 13:11:56.87 ID:GoezKG390.net] inr fs; public void button1_Click(object sender, EventArgs e) { if (fs==0) { button1.Visible = false; button1.Enabled = false; anThread(); // ここをtest();に変えると直接実行になる } fs=1; }
27 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 13:12:29.66 ID:GoezKG390.net] もっとボタンのとこ具体的にかくと上のようにして一度しかtest()呼ばれないようにしてます
28 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 13:19:59.88 ID:6kTxk0Gya.net] なら KeyPreview=true; protected override bool ProcessDialogKey(Keys keyData) { return false; } protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); }
29 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 13:24:57.28 ID:GoezKG390.net] おおEnterキーでもブレークポイントで止まるようになりました ありがとうございます
30 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 13:28:58.72 ID:lYga0rvW0.net] Formに配置したbuttonがEnterキーの制御を奪うから その前にFormでキーを取得したいならPreviewKeyDownイベントを使う
31 名前:デフォルトの名無しさん [2021/12/16(木) 14:09:04.68 ID:i/INwEgL0.net] docs.microsoft.com/ja-jp/dotnet/api にバージョンとかあって.NET 6とか選択するじゃないですか? これって、どれを選べばいいのでしょうか? 自分のPCにどの.NET入ってるか調べる方法はありますでしょうか? よよろしくおねがいします。
32 名前:デフォルトの名無しさん [2021/12/16(木) 14:38:33.33 ID:k8cIynuMM.net] 自分のPCではなくユーザーの環境を考えて選ぼう Windows2000なら2.0 WindowsXPなら4.0までしか使えない
33 名前:デフォルトの名無しさん [2021/12/16(木) 15:37:50.09 ID:y2oCKs8P0.net] 今から始めるなら.NET 6選んでおけば問題ない
34 名前:デフォルトの名無しさん [2021/12/16(木) 17:43:59.24 ID:i/INwEgL0.net] Environment.Versionだと6.0.0 RuntimeEnvironment.GetSystemVersionだとv4.0.30319でした
35 名前:デフォルトの名無しさん [2021/12/16(木) 17:53:32.89 ID:i/INwEgL0.net] System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription だと.NET 6.0.0-rtm.21522.10でした
36 名前:デフォルトの名無しさん [2021/12/16(木) 17:56:18.18 ID:i/INwEgL0.net] clrver.exeだと、こう PS C:\Users\a\source\repos> clrver.exe Microsoft (R) .NET CLR Version Tool Version 4.8.3928.0 Copyright (c) Microsoft Corporation. All rights reserved. Versions installed on the machine: v2.0.50727 v4.0.30319
37 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 18:05:33.14 ID:6CYDlCWX0.net] https://i.imgur.com/jv9gyBg.png
38 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 20:33:18.00 ID:SBcuHk850.net] mauiって流行りますか?
39 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 20:45:26.99 ID:9+J81CzA0.net] Xamarinって流行ったか?つまりそういうことだ
40 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 20:53:46.41 ID:p4ec86X90.net] 人脈が無い人には無理
41 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 21:37:09.74 ID:nAiVmB6z0.net] mauiも期待はしてるけどいつも通りなんだろうなあ。。
42 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 22:11:02.45 ID:6kTxk0Gya.net] マルチプラットフォームっていう目的での利用は流行らないだろうな でも普通にGUIアプリ作る一手段としては使われるんじゃないかな
43 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 23:26:32.48 ID:el7qs11a0.net] 言語仕様が多すぎてうんざり。
44 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 00:31:22.94 ID:A3/Tt7aa0.net] Linuxに本気で移行しようと思う。
45 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 01:19:48.74 ID:OxYtcTfz0.net] >>44 おっ、.NET Core + Linux いいね
46 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 01:35:44.89 ID:0Acfg8Fxd.net] これからMSワールドの外へ出てみたら実感すると思うけど、MSスタックは全部MSで揃えて他には見向きもしなくていい状態にこそ意義があるんだよ いったん外にはみ出し始めちゃって歯車が狂うとたちまち不便なところばかりが目につくようになって、気がついたらMS成分は跡形も残らない、という結果になるのがオチだ MSスタックをディスるつもりはなくて、これはむしろ最大限の賛辞だ
47 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 08:09:16.08 ID:GkoM7wOP0.net] あれ?MAUIのターゲットにLinuxが入ってない。。。 https://docs.microsoft.com/ja-jp/dotnet/maui/what-is-maui
48 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 08:24:00.59 ID:ObFlVNVZM.net] LVGLを使え。という託宣。
49 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 08:44:31.07 ID:dbqWYop50.net] >>47 linuxはコミュニティによってサポートされます
50 名前:sage [2021/12/17(金) 11:45:19.21 ID:2+pcMu4G0.net] C:\Users\a>dotnet --info .NET SDK (global.json を反映): Version: 6.0.100 Commit: 9e8b04bbff ランタイム環境: OS Name: Windows OS Version: 10.0.19042 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\6.0.100\ Host (useful for support): Version: 6.0.0 Commit: 4822e3c3aa .NET SDKs installed: 6.0.100 [C:\Program Files\dotnet\sdk] .NET runtimes installed: Microsoft.AspNetCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] To install additional .NET runtimes or SDKs: https://aka.ms/dotnet-download
51 名前:デフォルトの名無しさん [2021/12/17(金) 13:11:43.35 ID:2+pcMu4G0.net] c#を勉強しはじめたのですが、メモリ関連でヒープとスタックというのがあるのを知りました。 で、C#で型がstaticのデータはヒープ領域に格納されるのですか?それともスタック領域に格納されるのですか?
52 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 13:38:19.99 ID:g/fCEX7wa.net] スタックって日常でも使うことあるけど、積み重ねるって意味だからな 積み重ねちゃってるから下にあるものを無理に取り出そうとすると崩れてぐちゃぐちゃになる だから下にあるデータは上にあるのがなくなるまで取り出せない データは上下関係なく好きなところにあるデータにアクセスしたいものだからスタックにはしない=ヒープ でもスタックとかヒープとか覚えなくていいよ C#のテスト問題にそんなのが出たら「もっとまともな問題出せ」って回答用紙に書いときゃいいし C#の本やサイトにそんなのが出てるなら投げ捨てときゃいい
53 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 13:41:20.99 ID:eUY6ZgLC0.net] メモリの確保と開放って元々C言語の概念だったよね Javaではなくなったようだけど
54 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 14:24:53.34 ID:A3/Tt7aa0.net] メモリを確保するのはアセンブラでもそうだよ。開放するのは動的に使うってことだよ。 スタックはCPUの基本機能、ハードで実装、提供されてるものだよ。だから高速。 SPレジスタ書き換えるだけだからね。速いコード書く人はスタック、ヒープは常に意識してる。
55 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 15:05:27.40 ID:g/fCEX7wa.net] そんなの意識するわけないだろ。どう意識するんだよw アセンブラならpush/pop使うこと多いけど、C#じゃそんなの意識して組むのは非常に困難 意識するのは例えばこれはList<int>よりも基本通りint[]でいった方が速度有利だけど、こっちはListでいいとかそういう(ヒープの)使い方程度だよ
56 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 15:35:53.88 ID:Uf0Oj/NFd.net] Marshal.AllocHGlobal使うときとかヒープ意識するな
57 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 15:38:33.74 ID:8qM/JwoR0.net] 大昔独自のC言語使った組み込み開発で、StaticはROMにマッピングされるやつが有った いやあ、確かに便利だけど言語仕様くらい守れよとは思った
58 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 16:30:31.61 ID:xwFg4/y80.net] ただしstack overflowはバイブルな。 これさえあれば、大抵のことは何とかなる
59 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 17:26:57.23 ID:OLbNm50pa.net] >>51 ちょっと検索した感じだとstaticな「変数」(あくまで変数ね)は ヒープに置かれるって意見とヒープでもスタックでもないって意見があって はっきり分からんねw 個人的にはstaticな「変数」は一度staticコンストラクタが呼ばれて 作られてしまった後は管理が不要なので後者の方が正しいように感じるがどうだろう
60 名前:デフォルトの名無しさん [2021/12/17(金) 19:03:20.75 ID:FDMn0ZP00.net] MSスタックどころかWindowsフォームしかできないのがMSワールドの外に出ることなんて不可能だろうな
61 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 19:14:42.55 ID:25ZW3+3Or.net] C#は適当にGC呼び出せば適切なところでメモリ解放がんばってくれるじゃん
62 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 20:16:20.89 ID:hfvLzPNZ0.net] >>51 メモリ領域にはヒープとスタックとコードがある staticはコード領域に確保される コードていうのはそのまんまの意味で命令が書かれてる場所 ちなみにC#のヒープはGCが管理してる特殊な領域
63 名前:デフォルトの名無しさん [2021/12/17(金) 20:53:34.58 ID:2+pcMu4G0.net] これ?? PS C:\Users\a\source\repos\stack\stack\bin\Debug\net6.0> dumpbin /headers stack.exe Microsoft (R) COFF/P
64 名前:E Dumper Version 14.30.30706.0 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file stack.exe PE signature found File Type: EXECUTABLE IMAGE <<中略>> SECTION HEADER #3 .data name 14F8 virtual size 24000 virtual address (0000000140024000 to 00000001400254F7) A00 size of raw data 21C00 file pointer to raw data (00021C00 to 000225FF) 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers C0000040 flags Initialized Data Read Write [] [ここ壊れてます]
65 名前:デフォルトの名無しさん [2021/12/17(金) 21:35:28.65 ID:IQClZtiS0.net] >>62 >staticはコード領域に確保される これはあってんの?
66 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 21:40:51.67 ID:A3/Tt7aa0.net] xpSP2以降、自己書き換え禁止されたはずだから嘘だと思うけど
67 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 22:19:09.70 ID:RGFXVjzf0.net] 嘘つきはMicrosoftの始まりって聞いたで
68 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 22:37:03.33 ID:ePonqmC10.net] >>64 ざっくりだけどあってる AppDomainのLoaderHeapのHigh Frequency Heapと呼ばれる場所に MethodTable Strucureの一部として確保される Heapと名前がつくがGC HeapやLarge Object Heapとは別で GCはされずAppDomainがアンロードされるまで生きてる AppDomainをざっくり言えばコード領域
69 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 23:21:12.45 ID:g/fCEX7wa.net] ざっくり曲げすぎ。そもそもいわゆるコード領域はリードオンリーだよ
70 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:21:58.30 ID:4KhQcFRSr.net] とにかくGC連打 メモリ管理をどうこうしようなんて考える必要なし
71 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:27:31.41 ID:5vur9Hw60.net] 結局、Dispose()だらけで汚いコードだらけみたいな。
72 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:36:05.34 ID:T7YxQHIHa.net] いやいや。disposeは必ずしろよ・・・
73 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:51:37.69 ID:pciZCSWm0.net] 某現場で提供されてたDB接続クラスがIDisposable持ってるからusingで書いたら全然動かん よく見たらdispose内でロールバック処理が入ってて目を疑った
74 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 02:07:40.04 ID:hd7cWOei0.net] それどうなったの
75 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 02:38:11.15 ID:pciZCSWm0.net] >>73 周りに聞いたらみんなusing使わないようにしてた ライブラリは別部署からの提供品で、修正してもらう手続きがめんどくさいから・・・
76 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:04:40.74 ID:+EDLAGXQ0.net] usingはMSの提供品ならアリ それ以外のライブラリでは信じるに値しない 精々努力目標がいいとこ
77 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:11:34.73 ID:4KhQcFRSr.net] >>72 何そのトラップw 作った奴アホだろ
78 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:25:01.34 ID:rlJS0/xAa.net] >>75 別にDisposeの実装だけが特別バグりやすい理由はどこにもないので、 それは羹に懲りて何とかそのものだねw
79 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 03:48:54.74 ID:+EDLAGXQ0.net] 別にStreamWriterのusingも疑えって言ってるわけじゃない ただ、チェックされてる保証がないモノを無条件に信じるのはやめろってこと 少なくともMS提供品以外のusingは使うなら一度はdisposeの実装に目を通したほうがいい ブラックボックスのライブラリはメモリリークしてても不思議じゃないから場合によっては 別プロセスにしてキックしないといけないかもしれない
80 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 04:00:36.02 ID:+EDLAGXQ0.net] そもそもなまじガベコレなんてあるから 綺麗な後始末にはヘルプをよく読まないといけないクラスが多い気がする まあ、その前にアプリを終了してしまえば問題は起きないが サービスとかだとこいつが牙をむく場面が多い
81 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 04:43:58.91 ID:QLDMMuZWa.net] >>78 人の話聞かない人? だから、同じことはDispose以外の全てのメソッドについても当てはまるでしょ。 他人の作ったものは全て信じられないから使わない。 これなら偏執狂的ではあっても論理的に一貫している。 しかしDisposeだけ疑うのは羹に(
82 名前:デフォルトの名無しさん [2021/12/18(土) 05:17:14.21 ID:4kEqj5670.net] >>68 厳密にいうと微妙に違う属性みたい SECTION HEADER #1 .text name 1830C virtual size 1000 virtual address (0000000140001000 to 000000014001930B) 18400 size of raw data 400 file pointer to raw data (00000400 to 000187FF) 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 60000020 flags Code Execute Read
83 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 07:53:04.33 ID:EMtIeou+0.net] >>72 トランザクション処理を行っていたらロールバックする仕様は普通じゃね?
84 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 08:55:44.41 ID:+EDLAGXQ0.net] >>80 まあ、確認対象に入るだけとも言うな
85 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 08:59:22.77 ID:+EDLAGXQ0.net] >>82 失敗してないのにやるんじゃない? usingを正常に抜けるための何らかの条件があってそれがされてないと disposeで失敗とみなしてロールバックするんじゃね? その条件はソースを見るか組んだやつしかわからんが
86 名前:sage mailto:sage [2021/12/18(土) 09:13:54.47 ID:4kEqj5670.net] >>55 以下ソースで30000ちょっとでスタックオーバーフロするから、 それなりに意識する必要のある人もいるように思われ 企業が作るデカイアプリとか public class Hello { public static void a(int n) { System.Console.WriteLine(n); a(n + 1); } public static void Main() { a(0); System.Console.WriteLine("hello world!"); } }
87 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:36:30.21 ID:rkAxz2WM0.net] https://dotnetfiddle.net/tXv7Oq ランダムで0〜100までの数値を出して0〜50と50〜80、80~100の場合に分けてそれぞれを表示するプログラムです 場合分けを増やすとどうしてもforが複数回繰り返してしまいます、2回目以降の for (int i = 0; i < 5; i++) を1回に抑えたいのですが何かいい方法はありませんか?
88 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:42:34.52 ID:/Zq/GLbL0.net] なんかの
89 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:43:28.05 ID:/Zq/GLbL0.net] なんかのデータ構造を3つ用意して一回のループで分けるとか 一回全部ソートして前から見ていくとか
90 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 10:46:28.80 ID:T7YxQHIHa.net] linqなんかを使うって方法もあるけど実質同じだからなしだよな stringをいくつか用意しといて、最初のforの中でconsole出力するんじゃなくてstringに値を格納 for抜けてからconsole出力するとか?
91 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 11:37:28.63 ID:5vur9Hw60.net] 普通にcommitしてからdispose()すればrollbackしないんじゃねーの? 原因不明で途中終了されたらrollbackするのは普通に見える。 とにかくデストラクタがC++と同じタイミングで走ってくれれば C#にdisposeはいらなかったんじゃないのかと初心者のボクは思うわけですよ。
92 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 11:57:23.73 ID:EMtIeou+0.net] >>86 宿題っぽいから単純にメソッドを分けてみたよ https://dotnetfiddle.net/639EZQ
93 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 12:12:33.65 ID:5vur9Hw60.net] 速度重視なのかメモリ効率重視なのかによるよな。 普通は分けたデータは再利用するので3つ分の配列を作ってそこに入れるかな。 なら場合分け処理は最初の1ループ一回しかしないで済む。
94 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 13:11:47.91 ID:Y+I1/Zg80.net] 自分も分離と利用を分けるかな。 こんな感じ。 https://dotnetfiddle.net/OMdmbO
95 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 14:04:14.85 ID:GkRVZLhXa.net] >>86 その例なら単純にdata[]を昇順にソートしてから var i = 0; Console.Write("0以上50未満:"); for (; data[i] < 50 && data[i] >= 0; i++) { ... } Console.Write("50以上80未満:"); for (; data[i] < 80 && data[i] >= 50; i++) { ... } とかでいいんじゃないの?
96 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 14:32:27.17 ID:iUN/Cy1s0.net] >>90 disposeでrollbackするのはConnectionじゃなくてTransactionだと思う いずれにしても動かなくなるのは使う側の問題だね
97 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 14:56:48.68 ID:yfxR8FS90.net] >>90 正確には、コミットしたあと、何もない処理をロールバックするんじゃないかな 実質何もしないのと同じ 未コミットあるかないか確認するのが丁寧ではあるだろうけど なんにせよIDisposableなDB接続クラスを未コミットでDisposeするのは使い方が悪いわ
98 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 18:11:55.26 ID:iUN/Cy1s0.net] >>95 うー、俺が間違ってたわ https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.close?view=dotnet-plat-ext-6.0#remarks
99 名前:デフォルトの名無しさん [2021/12/18(土) 22:12:35.26 ID:4kEqj5670.net] ここってスキル高そうな人いるみたいだけど、以下でランキング入りできますか? paiza.jp/botchi/ranking paiza.jp/steins_gate/ranking paiza.jp/logic_summoner/top/ranking
100 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 23:03:36.27 ID:rkAxz2WM0.net] 色々ありがとうございます、自分に合ったものを探してみたいと思います
101 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:12:33.67 ID:XEu/0Ow00.net] 1.jpg 10.jpg 2.jpg を 1.jpg 2.jpg 10.jpg のように自然順ソートできるライブラリありませんか? Windows,Mac,Linuxで動かせるものがほしいです
102 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:34:22.80 ID:O/qDX0wZ0.net] ライブラリはないと思うよ 君の言う自然順の定義が適当すぎるからね
103 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:37:18.67 ID:pYj8pB6Ua.net] >>100 古い記事だけど参考まで 今は標準で実装されてるかも https://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F111
104 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:38:55.11 ID:n0pWJPWXa.net] nugetとかgoogleで「natural sort」
105 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 14:48:02.86 ID:wbja7KXrM.net] 漢数字やローマ数字は? 全角は?
106 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 15:12:30.82 ID:n0pWJPWXa.net] 全角ぐらいならnatural sortにCompareOptions.IgnoreWidth渡せばできる 漢字はやりたきゃ自分でやるか日本語対応のを探すしかないだろうな
107 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 15:24:46.95 ID:JBr0bC1G0.net] 漢数字やローマ数字対応してもICompareを実装するのにおそらく10分。
108 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 16:12:08.38 ID:3MHXzmFiM.net] こういう手合いは追加要件が出てくるのが基本だから最後には自分で実装しろって回答になってるはず
109 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 16:56:47.20 ID:EE70Ra2ja.net] なんか頭おかしい奴が大量に湧いてるけど、少なくとも2000年代の前半には 「自然順ソート」という概念はあった。 何が「こういう手合い」だバカw ウンコはお前の方だろ。
110 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 17:14:52.86 ID:kxTQmf/60.net] なるほど。 https://ja.wikipedia.org/wiki/自然順
111 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 17:29:08.07 ID:n0pWJPWXa.net] "2.jpg" "123.jpg" "500.jpg" "百日紅(さるすべりの花).jpg" "百.jpg" 用途によっては漢数字も数字としてソートしたい場合もある 今回は漢数字不要だろうけど、「こういう手合い」になることは多い
112 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 17:50:05.64 ID:TLyD+52gd.net] ソート順って問題になることが多いからな 特に日本語は色んな文字を使うので厄介 カナとか漢字あたりの動作がめちゃくちゃでいいならライブラリなんていくらでも見つかるだろうけど後からケチ付けられないようにしとくのは大事
113 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 05:46:43.82 ID:3MMk62pZa.net] タブコントロールの色ってフォームのデザイナーから変えられないの?
114 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 10:32:55.78 ID:f5rUAgGLd.net] 職場でcsc.exe使ってフォームアプリつくろうと思ったけど コマンドプロンプト自体制限されてて使えなかったなり
115 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:19:05.77 ID:qyvCBTAG0.net] csc.exeのショートカット作って、 プロパティでオプションやソースファイル指定するとか
116 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:20:33.92 ID:zxhyAyTl0.net] 自然順ソートっ標準で搭載されている言語って結構少なかったんですね PHPから入ったので当たり前に貼るものだと思ってました 頂いた情報で組んでみます
117 名前:デフォルトの名無しさん [2021/12/20(月) 14:24:01.64 ID:wYqxvWvia.net] chartコントロールについてですが、折線グラフを使用したときにデータポイント間の線上の任意のX位置を取得してその箇所のY値を取得することは可能でしょうか
118 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:26:28.21 ID:BkeSeNUYa.net] 線の中にPoints[]があってそこにXValueとYValueがあるからそれ読めばいい
119 名前:デフォルトの名無しさん [2021/12/20(月) 14:35:19.70 ID:/nEC48Zya.net] >>117 ありがとうございます ちょっと試してみます
120 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:39:36.28 ID:I6RlAoqPa.net] 116の人が聞いてるのはいわゆる「内挿」ってやつのことだと思うけど、 そんな気の利いた機能がchartについてるかな。 使ったことないから知らんけどついてないと思うw
121 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 14:49:56.05 ID:BkeSeNUYa.net] ああ、そういう意味か。それはないな 読めるのは追加した点だけ
122 名前:デフォルトの名無しさん [2021/12/20(月) 15:38:01.47 ID:EVpX0LdIa.net] >>116 です そうですか。。できませんか では取得した位置の近いほうのデータを使うことにします ありがとうございました
123 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 15:58:56.17 ID:hpQP1bPDd.net] >>113 powershell使えば
124 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 17:33:26.35 ID:I6RlAoqPa.net] >>121 でも求め方は中一レベルの数学だから難しくないでしょ
125 名前:デフォルトの名無しさん [2021/12/20(月) 18:59:07.12 ID:/usP9Uara.net] >>123 あっ。そうですね。2点のXYデータがわかるわけだから折線だったら計算でだせますね。ありがとうございます すみませんがもう1点だけ質問いいでしょうか グラフの拡大縮小をしたときにX軸にスクロールバーがでると思いますが、それを元の表示に戻したいときにスクロールバーの横の小さいボタンを押すと戻りますが、これを自前のボタンイベントで実装するにはどうしたらいいでしょうか
126 名前:デフォルトの名無しさん [2021/12/20(月) 19:19:36.55 ID:I6RlAoqPa.net] >>124 AxisScaleView.ZoomReset ? 使ったことないのであってるかどうか知らない。