1 名前:デフォルトの名無しさん mailto:sage [2020/05/27(水) 20:28:41.27 ID:Pggemlyq0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980 を踏んだ人は新スレを建てて下さい。>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part147 mevius.5ch.net/test/read.cgi/tech/1582100741/ ■関連スレ C#, C♯, C#相談室 Part94 mevius.5ch.net/test/read.cgi/tech/1553075856/ ■コードを貼る場合は↓を使いましょう。 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/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ ・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
101 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 12:59:05.56 ID:BgpDRRce0.net] エンジンの話だというならたとえが悪かったかもしれんな 別にUnity上でウルフエディタと同じものも作れるから最終的には一緒だけど
102 名前:デフォルトの名無しさん [2020/06/11(木) 13:00:57.60 ID:JpYLw7MRF.net] WPF
103 名前:デフォルトの名無しさん [2020/06/11(木) 13:11:12.03 ID:/xGObRM50.net] >>101 へぇ UWPというやつですかね
104 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 14:06:50.15 ID:BgpDRRce0.net] 全然違う
105 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 17:27:54.49 ID:yAt1qMQq0.net] >>96 .>99 仕事のなら発注元の指定、趣味ならば好みなのでメリット/デメリットって気にする ことないと思うよ 複数の言語に堪能でそれぞれの言語特性に合わせてアプリケーション毎に言語を 選定してプログラムを組んだり発注したりするより、一番使い慣れた言語でやるのが 普通じゃないかな c#でdllimportsてWin32apiを使うなんてアンマネージなコードは邪道だとか 言われてもc#が良いんだって人は普通にいるので、簡単なGUIプログラムもC++が 手っ取り早いってことなんでしょう
106 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 20:35:54.13 ID:vRuHoTo/0.net] みなさんデータベース管理システムは何使ってますか? 普段よく使うとか、使いやすいってRDBMSを教えてください 小規模で自分一人で開発でってのを想定で
107 名前:デフォルトの名無しさん [2020/06/11(木) 20:49:36.46 ID:yGmpvECN0.net] oracle
108 名前:デフォルトの名無しさん (ワッチョイ ff6a-MAAn) mailto:sage [2020/06/11(木) 20:56:11 ID:Ab3iv8TC0.net] 小規模ならSQLiteでいいんじゃね
109 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 21:15:03.03 ID:Zjp+nhQg0.net] Access
110 名前: mailto:sage [2020/06/11(木) 21:21:44.50 ID:bLG5zewl0.net] >>106 postgresql
111 名前:デフォルトの名無しさん (ワッチョイ 3378-NjyN) mailto:sage [2020/06/11(木) 21:34:56 ID:5OqhWY9w0.net] .NET 使うんなら SQLServer 一択じゃね?
112 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 21:42:34.54 ID:qibdIRpR0.net] >>111 EF CoreチームにNpgsqlのメンテナーが入っていることもあって、PostgreSQL対応はかなり手厚い
113 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 22:17:10.79 ID:tnq3MU310.net] Postgresは大文字小文字問題なんとかしてくれ
114 名前:デフォルトの名無しさん (ワッチョイ ffad-E8/F) mailto:sage [2020/06/11(木) 22:27:34 ID:qibdIRpR0.net] >>113 ?
115 名前:デフォルトの名無しさん [2020/06/11(木) 22:49:15.03 ID:tnq3MU310.net] >>114 https://stackoverflow.com/questions/35914530/case-insensitive-name-of-tables-and-properties-in-entity-framework-7 こういうの
116 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 22:54:47.74 ID:Yd9qBDmj0.net] >>106 普通Redis
117 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 22:58:40.14 ID:vRuHoTo/0.net] みなさんさんくす >>107 oracle使ってるの?有償で本格的なイメージ >>108 SQLiteいいですよね、お手軽そうで >>109 AccessってC#で使えるんですね、Access使い慣れてる人ならよさげ >>110 Postgreも人気ですね、SQLiteよりもいいのかな
118 名前: 111 SQLServerが一番に名前出てくると思ってました 112 PostgreはC#と親和性高いのかな 見事に割れてるような感じがするのですが、C#.netと相性がいい悪いより 使い慣れてるものを使ってる感じですか [] [ここ壊れてます]
119 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 23:01:51.55 ID:vRuHoTo/0.net] >>116 さんくす、初めて聞きましたRedis,NoSQLサーバーですか これから主力になっていくのかな
120 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 23:09:04.11 ID:Yd9qBDmj0.net] 目的が違うからRDBとは共存するんじゃね? 永続化が出来るのが他のKVSと違う所。
121 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 23:21:42.50 ID:5eBlYw+xa.net] C#との親和性とか言われてもなあ いまどき大抵のDBMSでEFも使えるから、極端な話DBMSを途中で乗り換えても C#で書き換えるのはconfigファイルの接続文字列とNuGetするパッケージだけ EF使わないならSQLの方言を気にする必要はあるけどそれは組み立てるStringが変わるだけだし DBMSに応じてC#ソースコードの書き方が変わるようなことは一切ない
122 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 23:49:42.34 ID:tnq3MU310.net] EFみないなORM使ってないとOracle->SQL Serverの書き換えとか地獄よ
123 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 02:18:27.53 ID:opbb+AId0.net] >>115 それが問題になるケースってどんなん?ASP.NET Core Identityとかも別に普通に使えてるけど
124 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 02:21:54.36 ID:opbb+AId0.net] >>120 親和性は今でも問題になるケースがあるよ OracleはEF Coreが出てから対応するまでに3年かかったし、EF Core3.0はOracleが対応する前にサポート期間が終わっちゃった。3.1のbeta版が少し前にやっと出たとこで、RTMになるころにはもうEF Core5が出てるw
125 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 03:34:44.54 ID:ZwJzd5pPd.net] >>120 >C#で書き換えるのはconfigファイルの接続文字列とNuGetするパッケージだけ >DBMSに応じてC#ソースの書き方が変わるようなことは一切ない これは嘘。DbContextOptionsBuilderの拡張メソッドはDBMSごとに異なるし、そのオプションも変わってくる。当然Migration用のコードは再度生成する必要がある。まあその程度で済むんだけどね。
126 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 03:36:16.16 ID:ZwJzd5pPd.net] 「NuGetする」って表現は初めて見たな。言いたいことはわかるけどw
127 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 10:19:25.67 ID:LH1ywJSs0.net] >>119 これからNOSQLも勉強しないとダメなのかサンクス >>120 さんくすねDBMSはどれ選んでもだいたい同じですか >>123-124 なるほどね、細かなところ互換性問題あるけど、それほど困ることもないですか まあDBMSコロコロ変更したりしないだろし、さんくす 欲をゆえば、これは定番でみんな使ってるし、迷ったらコレみたいのがあったらよかた
128 名前:デフォルトの名無しさん (テテンテンテン MM7f-3sqf) mailto:sage [2020/06/12(金) 10:33:37 ID:67KMUSUMM.net] オンプレかクラウドかにも依るだろう オンプレならできればDBの運用保守はベンダーに丸投げしたいところだが、 そこまでするほどの規模ではないならSQL Serverが比較的楽だろう クラウドだったら自分でインフラを管理する必要のない完全マネージドなサービスを選ぶべきだ 例えばAWSならPostgresベースのAurora、AzureならSQL Database(SQL Serverベース)になるだろうな
129 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 11:11:40.32 ID:kFexpNJ30.net] >>106 Ruby on Rails の3大DB は、 PostgreSQL, MySQL/MariaDB, SQLite ただし、SQLite は開発用のみ
130 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 20:30:56.85 ID:LH1ywJSs0.net] >>127 なるほど、クラウドなら相手先でだいたい決まってるんですね 結局仕事でプログラマやってる人はSQL全部やってそうな、さんくす >>128 さんくす、Webアプリと連携したりするならPostgreとかMySQLは必須っぽいですね
131 名前:デフォルトの名無しさん [2020/06/13(土) 00:57:45.04 ID:bzHb5W4o0.net] >>122 アノテーション必須なところ
132 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 01:09:18.28 ID:8SrQpLbj0.net] >>130 アノテーション?Javaと勘違いしてない? もしかして、[Column("some_column")]みたいなAttributeを明示的にプロパティに付与しなきゃってことを言いたいの?
133 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 01:10:23.05 ID:8SrQpLbj0.net] 最近はそもそもAttributeはあまり推奨されてないと思うんだけど…
134 名前:デフォルトの名無しさん [2020/06/13(土) 01:13:19.59 ID:bzHb5W4o0.net] 間違えた、そう、アトリビュートね 推奨されてないならますます必須なのは困るだろ
135 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 01:33:01.52 ID:8SrQpLbj0.net] Fluent APIが主流だっていう意味でAttributeは推奨されてないって言ったんだけど通じてない??
136 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 01:41:17.85 ID:8SrQpLbj0.net] naming conventionはかなり自由度が高いんだし、PostgreSQLならこんなプラグインもあるでしょ? https://github.com/efcore/EFCore.NamingConventions
137 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 01:44:19.43 ID:8SrQpLbj0.net] このプラグイン書いてるのもEF Coreのメンテナーだし、PostgreSQL対応は相当手厚いと思うんだけど…Oracleとは大違いw
138 名前:デフォルトの名無しさん [2020/06/13(土) 02:34:08.73 ID:bzHb5W4o0.net] 手厚いなら標準でサポートしろ
139 名前:デフォルトの名無しさん (ワッチョイ ffad-E8/F) mailto:sage [2020/06/13(土) 03:17:01 ID:8SrQpLbj0.net] 標準でサポートしてるAPI使ってるでしょ?
140 名前:デフォルトの名無しさん (ワッチョイ ffad-E8/F) mailto:sage [2020/06/13(土) 03:17:49 ID:8SrQpLbj0.net] 会話にならない…
141 名前:デフォルトの名無しさん (スッップ Sd1f-E8/F) mailto:sage [2020/06/13(土) 03:28:12 ID:wwBJVROwd.net] >>130 なぜ必須だと思いこんでしまったのか…少しググれば↑のプラグインも出てくるというのに。 DBMSによって異なる仕様を全てコアのライブラリに取り込んでしまうのはアンチパターン。拡張可能なエンドポイントを用意して、適切な粒度で分けないと。
142 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 03:44:26.62 ID:8SrQpLbj0.net] そもそもなぜAttribute必須(だと思いこんでいる)かって理由もまだ一言も聞いてないしね Fluent APIすら知らないようだし…
143 名前:デフォルトの名無しさん (ワッチョイ 6fc7-Z00E) [2020/06/13(土) 13:23:26 ID:K/U+GWpl0.net] rpgツクールみたいなソフトはC#とC+どちらがいいんでしょうか electronではだめなのですか?
144 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 13:48:37.68 ID:KtzqJ+vF0.net] 勝手にしろ
145 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 14:08:02.51 ID:o48rgnPS0.net] >>142 好きなやつでいいよ
146 名前:デフォルトの名無しさん (ワッチョイ f3da-lWkb) mailto:sage [2020/06/13(土) 14:47:15 ID:YToltj6/0.net] 普通マシンコード直打
147 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 23:27:18.32 ID:V91HObFW0.net] ツクールは、Ruby じゃないの? スレ立てるまでもない
148 名前:質問はここで 153匹目 https://mevius.5ch.net/test/read.cgi/tech/1586142285/845 870 の投稿も見て [] [ここ壊れてます]
149 名前:デフォルトの名無しさん (ワッチョイ 3378-NjyN) mailto:sage [2020/06/13(土) 23:51:50 ID:KtzqJ+vF0.net] RGSSがRubyで書けるだけで本体はRuby製じゃないだろ 最近のやつは知らないけれどRPGツクール2000はDelphi製だよ つかこいついつものRubyガイジか
150 名前:デフォルトの名無しさん (ワッチョイ 1363-UKCU) mailto:sage [2020/06/14(日) 00:29:11 ID:d5or7MKc0.net] ちなみに最新のRPGツクールMVはHTML5&CSS&Javascript
151 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 01:26:19.14 ID:v+4IVp6H0.net] >>147 そう、いつものRubyバカだよ。 どこかで聞き齧った上辺だけの知識を、古いまま更新もせずあちこちで思うがままに垂れ流す、迷惑きわまりない存在。
152 名前:デフォルトの名無しさん [2020/06/14(日) 02:49:46.49 ID:elQ0/Qc7a.net] くだらない質問で申し訳ない static IEnumerable<char> AToZ() { for (char c = 'A'; c <= 'Z'; c++) yield return c; } static IEnumerable<string> AAAToZZZ(int n) { if (n < 0) throw new IndexOutOfRangeException(); if (n == 0) yield break; if (n == 1) foreach (var c in AToZ()) yield return c.ToString(); foreach (var c in AToZ()) foreach (var item in AAAToZZZ(n - 1)) yield return c + item; } こういうシーケンスもっと短く綺麗に書ける? nが負の時の処理はこだわらない。(例外投げずに空のシーケンスを返すのでも可) どうでもいいけど、yield returnとreturnは混在できなことを今日初めて知ったw
153 名前:デフォルトの名無しさん [2020/06/14(日) 03:07:11.97 ID:elQ0/Qc7a.net] こうじゃなきゃダメかw static IEnumerable<string> AAAToZZZ(int n) { if (n < 0) throw new IndexOutOfRangeException(); switch (n) { case 0: yield break; case 1: foreach (var c in AToZ()) yield return c.ToString(); break; default: foreach (var c in AToZ()) foreach (var item in AAAToZZZ(n - 1)) yield return c + item; break; } }
154 名前:デフォルトの名無しさん (アウアウカー Sac7-P9YK) mailto:sage [2020/06/14(日) 03:59:43 ID:Lj4n2emQa.net] よくわからないけどRPGのデータベースから 単なる所持品表示と 装備品表示でBoolean型を使うなら状況が変わるのかな?
155 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 05:02:05.56 ID:HJp96S060.net] >>151 再起なんかせずにEnumetable.Repeatで必要文字数作って返すのじゃ駄目なん?
156 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 13:47:32.96 ID:EPf5hgHv0.net] 再起嫌いだわ 難しいことせず素直に書くならこうかな static IEnumerable<string> AAAToZZZ(int n) { if (n < 0) throw new IndexOutOfRangeException(); IEnumerable<string> result = AToZ(); for(i = 1; i < n; i++) result = Hoge(result, AToZ()); return result; } static IEnumerable<string> Hoge(IEnumerable<string> items1, IEnumerable<string> items2) { // items1+items2の組み合わせ foreach (var item1 in items1) foreach (var item2 in items2)) yield return item1 + item2; }
157 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 17:59:06.56 ID:HWVPFncU0.net] 少し汎用化してみた https://dotnetfiddle.net/qFcJK0
158 名前:デフォルトの名無しさん (ワッチョイ 7361-TrMf) mailto:sage [2020/06/14(日) 22:16:24 ID:ZbFg49iQ0.net] >>154 n=0の動きがかわっちゃってない?
159 名前:150 [2020/06/14(日) 23:20:59.70 ID:FMtFwmQda.net] みなさんありがと やっぱり劇的に単純化できるような方法はないか >>154 俺は再帰使った方が簡単に感じるなあ この辺は人それぞれなんだろうか >>155 面白いけど可読的かなあ ビール飲みながら読んでたら頭が痛くなってきたw ところでこういう処理をCartesianと呼ぶのは一般的なの
160 名前:? 何でデカルト? n次元の直交座標をスキャンしていくイメージ...? [] [ここ壊れてます]
161 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 23:38:18.81 ID:gmXZN8yKa.net] 2次元配列の逐次処理は3Dの棒グラフだから どう見てもデカルト
162 名前:デフォルトの名無しさん (ワッチョイ 4359-lMPZ) mailto:sage [2020/06/15(月) 12:58:53 ID:G4ousd2n0.net] プログラムに日本語が使われた物って、日本語がインストールされていない環境でも動きますか? 変数名などに日本語を使って海外へのローカライズ時にはUIのみをその国の言語に差し替える感じで。
163 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 18:13:18.65 ID:yRL+7o6a0.net] >>159 作成したexeのUI(たとえばButtonコントロールのTextに「押しボタン」とか)が 日本語表示でも、文字化けが問題ないならば動くことは動く プログラム自体の変数名(たとえば「int 合計」みたいな)であればユニコードで 保存されているはずなのでコンパイルは通るらしいけど、日本語の表示が できない環境では読めないソースになる プログラム実行時の画面表示でローカライズってどうやるのっていう話ならば 言語ごとのリソースを作って対応するのが普通なので「c# 国際化対応」で ググると色々サンプルが出てるよ
164 名前:デフォルトの名無しさん (ワッチョイ 4359-lMPZ) mailto:sage [2020/06/15(月) 19:19:37 ID:G4ousd2n0.net] >>160 複数パターンの回答感謝です。 ありがとうございます。 回答いただいた2例目が自分のパターンになると思います。 ソースコードを読まれる事を想定していない場合はコンパイルが出来れば、実行ファイルは問題なく動くという事でしょうか? 今ゲームを作っていて、海外にも配布したいです。 enumで管理している状態異常の名前などが英語だと長くてわかりにくいので日本語にしたいです。 例えばapple.pngをりんご.pngにしたりするのも問題ないでしょうか?
165 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 19:37:58.08 ID:leNERqqha.net] 日本語ファイル名は文字化けしてたら ファイル読み込みでエラーになりそう ローマ字にしといたら良いんでないの
166 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 19:41:29.43 ID:MF7iklGs0.net] そっちはUnicodeだから恐らく大丈夫
167 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 13:51:06.28 ID:e85N0kXp0.net] エクスプローラーのようなファイラアプリを作っているのですが、DirectoryInfo等を利用してその都度ストレージからフォルダ構造やファイルなどを拾い上げると時間がかかってしまうためこちらでキャッシュしたいと考えています フォルダツリーやフォルダ下にあるファイルなどの情報をキャッシュするのに適したものってなんでしょうか? jsonでそのまま多次元配列としてシリアライズするのが最も簡単そうには思えますが、合計ファイル数が1万件近くあるとファイルサイズやパフォーマンス的にsqlite3などを利用したほうが良いのかなと色々迷ってます
168 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 13:57:54.70 ID:0xoIejs00.net] 根本的にアプローチが間違っている。 ローカルドライブならMFTを直接読んで処理すべき。
169 名前:デフォルトの名無しさん [2020/06/17(水) 15:25:29.42 ID:GES6ctGCF.net] エクスプローラーも1万件あるとあきらかに遅くなる
170 名前:デフォルトの名無しさん (ワッチョイ b602-vBZN) mailto:sage [2020/06/17(水) 15:38:18 ID:yVuIICiL0.net] 低レイヤのこと詳しくないけどそもそもGetDirectoriesとかGetFilesもMFTから読み込んでるんじゃないの? FindFirstFileのラッパーなはずだけどFindFirstFileの内部ではそうしてるもんだと思ってたが
171 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 15:46:17.14 ID:0xoIejs00.net] MFTはNTFSにしかないから、 SDカード(普通FAT系)とかネットワーク ドライブなら FindXXの高レベルAPIを使用する事に なるよ。 書籍ならWindows Internals (chap12 なのでpart2)に説明がある Qiitaで見かけた記憶があるのでこちらを 探すってのもありかと
172 名前:デフォルトの名無しさん (アウアウウー Sa47-7nK8) [2020/06/17(水) 15:56:57 ID:wCFe9G62a.net] >>164 そもそも本当に体感できるほど時間かかるかなあw 連番をプリフィクスしたファイル名でデータを保存する、なんて処理を結構書いてて、 その場合は当然ディクトリ内のファイル名を走査して開いてる番号を探すわけだけど、 少なくとも数千件程度のファイル数で体感できるような処理時間を感じたことはないが...
173 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 19:29:16.87 ID:TZB3F6Mj0.net] ファイルやフォルダを画面に描写する処理に時間がかかってたりするパターンでは?
174 名前:デフォルトの名無しさん (ワッチョイ 5fda-EdQi) mailto:sage [2020/06/18(木) 06:00:16 ID:/GutDtHv0.net] エスパー視点だと、切断されたネットワークドライブ探して時間がかかってる。
175 名前:デフォルトの名無しさん (ワッチョイ 0b01-oh81) mailto:sage [2020/06/18(木) 07:14:38 ID:tX12dTLd0.net] アドバイスでもなんでもないが俺も昔自分用のファイルDB作ってたんだが 起動時に対象フォルダ下のファイルをGetFilesやGetDirectoriesで収集 → DBからタグ等の細かい情報取ってきてくっ付けるってやるとき、sqliteから一つ一つwhere fullpathというように文字列で検索すると約5000件/3分くらいかかったんだよな そこでwhereを入れず全部取得 → while (reader.Read()) sqFiles.Add();と一旦こちらのリストに全部放り込んでから 愚直にforでリストからフルパスと一致するものを探すって方式に変えたら5000件/500msというアホみたいに高速化された思い出がある
176 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 07:24:19.57 ID:tX12dTLd0.net] ちなみにこれじゃsqlite使う意味ねえじゃんwって思われそうだが、その初回時の検索でlong型のPrimaryKeyであるUniqueIdも取得するんで2回目以降は一つ一つ検索する場合でも普通に早い タグ以外にもblob型の多少サイズ大きいバイナリとか色々DBには保持させてるんでな
177 名前:デフォルトの名無しさん (ワイーワ2 FF12-HKig) [2020/06/18(木) 11:07:27 ID:OoPd9bgDF.net] forで愚直に検索中にディレクトリの状態やDBの状態が変化していなければ良いねω
178 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 11:27:39.83 ID:8/3vTp6fa.net] SQLiteはトランザクション無いんだっけ? >>172 みたいな自分用のDBで500ms以内に変化するようなクエリって何だろう・・・
179 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 11:54:40.21 ID:ZcH1+5T10.net] トランザクションいるよな とってるときも書き込むときも
180 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 11:58:11.67 ID:JTgDDftK0.net] SQLiteにだってトランザクションあるでしょ
181 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 11:59:20.73 ID:ZcH1+5T10.net] >>177 あるある
182 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 12:01:47.66 ID:LpN/zpxZ0.net] SQLiteに限らずmatchならまだしも文字列の=って糞遅いでしょ、トランザクションが有効なのって書き込み時だしね SQLiteのクエリはutf16版を使ったところで結局はutf8への変換が生じるからC#から使うとオーバーヘッドは避けられない その上でPRAGMA encoding='UTF-16'とかしてたらまたまたキーワード部分を変換しないといけなくなったりともうめちゃくちゃ だから一回のクエリで全件持ってきてC#上で検索すればそれくらい早くなるというのはまぁ自然
183 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 12:03:22.57 ID:8/3vTp6fa.net] ごめんバージョン 2.0から導入されてたね
184 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 12:35:51.08 ID:u7MaeuvH0.net] ファイルのデータベース管理って言うとWinFSを思い起こすな
185 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 13:20:40.79 ID:h9R/TQ390.net] トランザクショなるNTFS=TxFとか沼ですな。 ※Vistaで導入7から8に変わった時に デグレした機能w TransactionalFileMgr .Net Transactional File Manager がこのスレ 的に正解かな?
186 名前:デフォルトの名無しさん (オッペケ Sr3b-CFTz) mailto:sage [2020/06/18(木) 14:45:37 ID:N068eYZUr.net] >>179 検索そのものが遅いんじゃなくて 5000回のクエリ発行と結果受け取りが遅いと予想したが
187 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 13:35:38.83 ID:jQi52PAy0.net] C#のGUIからパイソンを実行してデータ分析させたいんだけど、 すごく簡単に実現できる方法ってありませんか? 1 C#からテキストファイルでデータ出力 2 C#からPython起動し、テキストファイルのパスを渡す 3 Pythonでデータ分析しグラフ出力 みたいな感じです。 PythonからC#に受け渡すデータはありません。
188 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 13:42:47.45 ID:bTXo9Nr1M.net] アイロンパイソンでええんちゃう
189 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 15:46:22.00 ID:7MKh9Chd0.net] コマンドプロンプトのパイソン実行でええんちゃう?
190 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 22:13:03.58 ID:zuodZOih0.net] batファイルで、解決できそう
191 名前:デフォルトの名無しさん (ワッチョイ 0f01-5fXH) mailto:sage [2020/06/24(水) 15:59:14 ID:rxIn+gin0.net] SQL Server Express LocalDBのSQL文の質問なんですが CREATE DATABASE myDB; これはちゃんと成功するんですが CREATE DATABASE IF NOT EXISTS myDB; こう書くと失敗します System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near the keyword 'IF'. Incorrect syntax near 'myDB'. このSQL文は使えないんでしょか?かわりの方法はあるでしょか?おねがいします
192 名前:デフォルトの名無しさん (ワッチョイ 3f01-0Hhk) mailto:sage [2020/06/24(水) 16:14:51 ID:ZBvJ9IFx0.net] >>188 DROP DATABASE IF EXISTS myDB; CREATE DATABASE myDB;
193 名前:デフォルトの名無しさん (ワイーワ2 FFbf-qwRG) [2020/06/24(水) 16:27:10 ID:6+kkBVmVF.net] DROP すると等価ではないな
194 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 16:40:01.38 ID:rxIn+gin0.net] >>189 さんくすです、DROPすると以前のデータが消えてしまいそうで ドロップしたらうまく動くんですが
195 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 17:06:11.29 ID:ZBvJ9IFx0.net] >>190 おお、そうだね 文法しか気にしてなかった >>191 CREATE DATABASE文にはIF NOT EXISTSとかのオプションは無いから>>188 はエラーになる DROPはIF EXISTSのオプションが用意されてる 188と等価にしたいならT-SQLのIF-ELSE使って存在チェックして DBが無い場合にだけ作成すればいい (存在チェックはDB_IDかsys.databasesを読むか) IF EXISTS ( … ) … ELSE CREATE DATABASE …
196 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 17:13:36.03 ID:LZQGw3mN0.net] で、それらc#なの? SQLの話ならスレ違いだ
197 名前:デフォルトの名無しさん (ワッチョイ 8f01-2vNH) mailto:sage [2020/06/24(水) 19:42:09 ID:H9m4GMw80.net] DDL文
198 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 20:43:40.85 ID:rxIn+gin0.net] >>192 さんくすです > IF NOT EXISTSとかのオプションは無いから なんと、あったら便利なのにね IF-ELSEでがんばってみます >>193 SQL文なので若干すれ違いかなっと 似たようなことがLINQtoSQLでできればとおもったのですが
199 名前:デフォルトの名無しさん [2020/06/24(水) 22:59:21.23 ID:G18p0mGY0.net] Entity Frameworkでデータベースと連携したい場合 public class Book{ . public int Id { get;set;} . public string Title { get; set;} } モデルは↑みたいな感じになるけど 実際には↓みたいな感じに色んなデータとふるまいを持ちたいとする public class Book{ . public int Id { get;set;} . public string Title { get; set;} . public List<Picrture> Picture { get;set;} . . (以下振る舞い等) } この場合って下のデータモデルからから上のDTOに変換してデータベースに入れる(取り出す時は逆)って考え方でいいのかな? 多くのサイトがEntity Frameworkでのデータベースへの突っ込み方しか書いてなくて 実際に運用する場合のデータの持ち方の考え方がよう分からん この辺りまで詳しい本とかサイトとかあったら教えてください
200 名前:デフォルトの名無しさん [2020/06/24(水) 23:58:21.16 ID:KiDLqidP0.net] いいんじゃない?DTOは名前の通りデータをDAOと受け渡すためだけに使って、振る舞い持たせるのは違う気がする。
201 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 00:07:24.74 ID:pPMcnwWPa.net] 単純なアプリだとDomainModelも単純だからEntity、DomainModel、ViewModelを同じインスタンスで済ませられる場合が多い 真面目にやるならそれぞれ別のクラスにしてマッピングするんだけどめんどくさいんだよな