!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://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
http://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
探検
ふらっと C#,C♯,C#(初心者用) Part148
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ df89-moxv)
2020/05/27(水) 20:28:41.27ID:Pggemlyq0108デフォルトの名無しさん (ワッチョイ ff6a-MAAn)
2020/06/11(木) 20:56:11.52ID:Ab3iv8TC0 小規模ならSQLiteでいいんじゃね
109デフォルトの名無しさん (ワッチョイ 7361-TrMf)
2020/06/11(木) 21:15:03.03ID:Zjp+nhQg0 Access
>>106
postgresql
postgresql
111デフォルトの名無しさん (ワッチョイ 3378-NjyN)
2020/06/11(木) 21:34:56.15ID:5OqhWY9w0 .NET 使うんなら SQLServer 一択じゃね?
112デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/11(木) 21:42:34.54ID:qibdIRpR0 >>111
EF CoreチームにNpgsqlのメンテナーが入っていることもあって、PostgreSQL対応はかなり手厚い
EF CoreチームにNpgsqlのメンテナーが入っていることもあって、PostgreSQL対応はかなり手厚い
113デフォルトの名無しさん (ワッチョイ ff6a-NjyN)
2020/06/11(木) 22:17:10.79ID:tnq3MU310 Postgresは大文字小文字問題なんとかしてくれ
114デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/11(木) 22:27:34.63ID:qibdIRpR0 >>113
?
?
115デフォルトの名無しさん (ワッチョイ ff6a-NjyN)
2020/06/11(木) 22:49:15.03ID:tnq3MU310116デフォルトの名無しさん (ワッチョイ f3da-lWkb)
2020/06/11(木) 22:54:47.74ID:Yd9qBDmj0 >>106
普通Redis
普通Redis
117デフォルトの名無しさん (ワッチョイ a301-EVMN)
2020/06/11(木) 22:58:40.14ID:vRuHoTo/0118デフォルトの名無しさん (ワッチョイ a301-EVMN)
2020/06/11(木) 23:01:51.55ID:vRuHoTo/0119デフォルトの名無しさん (ワッチョイ f3da-lWkb)
2020/06/11(木) 23:09:04.11ID:Yd9qBDmj0 目的が違うからRDBとは共存するんじゃね?
永続化が出来るのが他のKVSと違う所。
永続化が出来るのが他のKVSと違う所。
120デフォルトの名無しさん (アウアウウー Sa67-Qd01)
2020/06/11(木) 23:21:42.50ID:5eBlYw+xa C#との親和性とか言われてもなあ
いまどき大抵のDBMSでEFも使えるから、極端な話DBMSを途中で乗り換えても
C#で書き換えるのはconfigファイルの接続文字列とNuGetするパッケージだけ
EF使わないならSQLの方言を気にする必要はあるけどそれは組み立てるStringが変わるだけだし
DBMSに応じてC#ソースコードの書き方が変わるようなことは一切ない
いまどき大抵のDBMSでEFも使えるから、極端な話DBMSを途中で乗り換えても
C#で書き換えるのはconfigファイルの接続文字列とNuGetするパッケージだけ
EF使わないならSQLの方言を気にする必要はあるけどそれは組み立てるStringが変わるだけだし
DBMSに応じてC#ソースコードの書き方が変わるようなことは一切ない
121デフォルトの名無しさん (ワッチョイ ff6a-NjyN)
2020/06/11(木) 23:49:42.34ID:tnq3MU310 EFみないなORM使ってないとOracle->SQL Serverの書き換えとか地獄よ
122デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/12(金) 02:18:27.53ID:opbb+AId0 >>115
それが問題になるケースってどんなん?ASP.NET Core Identityとかも別に普通に使えてるけど
それが問題になるケースってどんなん?ASP.NET Core Identityとかも別に普通に使えてるけど
123デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/12(金) 02:21:54.36ID:opbb+AId0 >>120
親和性は今でも問題になるケースがあるよ
OracleはEF Coreが出てから対応するまでに3年かかったし、EF Core3.0はOracleが対応する前にサポート期間が終わっちゃった。3.1のbeta版が少し前にやっと出たとこで、RTMになるころにはもうEF Core5が出てるw
親和性は今でも問題になるケースがあるよ
OracleはEF Coreが出てから対応するまでに3年かかったし、EF Core3.0はOracleが対応する前にサポート期間が終わっちゃった。3.1のbeta版が少し前にやっと出たとこで、RTMになるころにはもうEF Core5が出てるw
124デフォルトの名無しさん (スッップ Sd1f-E8/F)
2020/06/12(金) 03:34:44.54ID:ZwJzd5pPd >>120
>C#で書き換えるのはconfigファイルの接続文字列とNuGetするパッケージだけ
>DBMSに応じてC#ソースの書き方が変わるようなことは一切ない
これは嘘。DbContextOptionsBuilderの拡張メソッドはDBMSごとに異なるし、そのオプションも変わってくる。当然Migration用のコードは再度生成する必要がある。まあその程度で済むんだけどね。
>C#で書き換えるのはconfigファイルの接続文字列とNuGetするパッケージだけ
>DBMSに応じてC#ソースの書き方が変わるようなことは一切ない
これは嘘。DbContextOptionsBuilderの拡張メソッドはDBMSごとに異なるし、そのオプションも変わってくる。当然Migration用のコードは再度生成する必要がある。まあその程度で済むんだけどね。
125デフォルトの名無しさん (スッップ Sd1f-E8/F)
2020/06/12(金) 03:36:16.16ID:ZwJzd5pPd 「NuGetする」って表現は初めて見たな。言いたいことはわかるけどw
126デフォルトの名無しさん (ワッチョイ a301-EVMN)
2020/06/12(金) 10:19:25.67ID:LH1ywJSs0127デフォルトの名無しさん (テテンテンテン MM7f-3sqf)
2020/06/12(金) 10:33:37.51ID:67KMUSUMM オンプレかクラウドかにも依るだろう
オンプレならできればDBの運用保守はベンダーに丸投げしたいところだが、
そこまでするほどの規模ではないならSQL Serverが比較的楽だろう
クラウドだったら自分でインフラを管理する必要のない完全マネージドなサービスを選ぶべきだ
例えばAWSならPostgresベースのAurora、AzureならSQL Database(SQL Serverベース)になるだろうな
オンプレならできればDBの運用保守はベンダーに丸投げしたいところだが、
そこまでするほどの規模ではないならSQL Serverが比較的楽だろう
クラウドだったら自分でインフラを管理する必要のない完全マネージドなサービスを選ぶべきだ
例えばAWSならPostgresベースのAurora、AzureならSQL Database(SQL Serverベース)になるだろうな
128デフォルトの名無しさん (ワッチョイ 632c-aH+M)
2020/06/12(金) 11:11:40.32ID:kFexpNJ30129デフォルトの名無しさん (ワッチョイ a301-EVMN)
2020/06/12(金) 20:30:56.85ID:LH1ywJSs0130デフォルトの名無しさん (ワッチョイ ff6a-NjyN)
2020/06/13(土) 00:57:45.04ID:bzHb5W4o0 >>122
アノテーション必須なところ
アノテーション必須なところ
131デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 01:09:18.28ID:8SrQpLbj0132デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 01:10:23.05ID:8SrQpLbj0 最近はそもそもAttributeはあまり推奨されてないと思うんだけど…
133デフォルトの名無しさん (ワッチョイ ff6a-NjyN)
2020/06/13(土) 01:13:19.59ID:bzHb5W4o0 間違えた、そう、アトリビュートね
推奨されてないならますます必須なのは困るだろ
推奨されてないならますます必須なのは困るだろ
134デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 01:33:01.52ID:8SrQpLbj0 Fluent APIが主流だっていう意味でAttributeは推奨されてないって言ったんだけど通じてない??
135デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 01:41:17.85ID:8SrQpLbj0 naming conventionはかなり自由度が高いんだし、PostgreSQLならこんなプラグインもあるでしょ?
https://github.com/efcore/EFCore.NamingConventions
https://github.com/efcore/EFCore.NamingConventions
136デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 01:44:19.43ID:8SrQpLbj0 このプラグイン書いてるのもEF Coreのメンテナーだし、PostgreSQL対応は相当手厚いと思うんだけど…Oracleとは大違いw
137デフォルトの名無しさん (ワッチョイ ff6a-NjyN)
2020/06/13(土) 02:34:08.73ID:bzHb5W4o0 手厚いなら標準でサポートしろ
138デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 03:17:01.33ID:8SrQpLbj0 標準でサポートしてるAPI使ってるでしょ?
139デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 03:17:49.75ID:8SrQpLbj0 会話にならない…
140デフォルトの名無しさん (スッップ Sd1f-E8/F)
2020/06/13(土) 03:28:12.11ID:wwBJVROwd >>130
なぜ必須だと思いこんでしまったのか…少しググれば↑のプラグインも出てくるというのに。
DBMSによって異なる仕様を全てコアのライブラリに取り込んでしまうのはアンチパターン。拡張可能なエンドポイントを用意して、適切な粒度で分けないと。
なぜ必須だと思いこんでしまったのか…少しググれば↑のプラグインも出てくるというのに。
DBMSによって異なる仕様を全てコアのライブラリに取り込んでしまうのはアンチパターン。拡張可能なエンドポイントを用意して、適切な粒度で分けないと。
141デフォルトの名無しさん (ワッチョイ ffad-E8/F)
2020/06/13(土) 03:44:26.62ID:8SrQpLbj0 そもそもなぜAttribute必須(だと思いこんでいる)かって理由もまだ一言も聞いてないしね
Fluent APIすら知らないようだし…
Fluent APIすら知らないようだし…
142デフォルトの名無しさん (ワッチョイ 6fc7-Z00E)
2020/06/13(土) 13:23:26.68ID:K/U+GWpl0 rpgツクールみたいなソフトはC#とC+どちらがいいんでしょうか
electronではだめなのですか?
electronではだめなのですか?
143デフォルトの名無しさん (ワッチョイ 3378-NjyN)
2020/06/13(土) 13:48:37.68ID:KtzqJ+vF0 勝手にしろ
144デフォルトの名無しさん (ワッチョイ 1363-UKCU)
2020/06/13(土) 14:08:02.51ID:o48rgnPS0 >>142
好きなやつでいいよ
好きなやつでいいよ
145デフォルトの名無しさん (ワッチョイ f3da-lWkb)
2020/06/13(土) 14:47:15.79ID:YToltj6/0 普通マシンコード直打
146デフォルトの名無しさん (ワッチョイ 632c-aH+M)
2020/06/13(土) 23:27:18.32ID:V91HObFW0 ツクールは、Ruby じゃないの?
スレ立てるまでもない質問はここで 153匹目
https://mevius.5ch.net/test/read.cgi/tech/1586142285/845
870 の投稿も見て
スレ立てるまでもない質問はここで 153匹目
https://mevius.5ch.net/test/read.cgi/tech/1586142285/845
870 の投稿も見て
147デフォルトの名無しさん (ワッチョイ 3378-NjyN)
2020/06/13(土) 23:51:50.48ID:KtzqJ+vF0 RGSSがRubyで書けるだけで本体はRuby製じゃないだろ
最近のやつは知らないけれどRPGツクール2000はDelphi製だよ
つかこいついつものRubyガイジか
最近のやつは知らないけれどRPGツクール2000はDelphi製だよ
つかこいついつものRubyガイジか
148デフォルトの名無しさん (ワッチョイ 1363-UKCU)
2020/06/14(日) 00:29:11.30ID:d5or7MKc0 ちなみに最新のRPGツクールMVはHTML5&CSS&Javascript
149デフォルトの名無しさん (ワッチョイ 7f52-BNwG)
2020/06/14(日) 01:26:19.14ID:v+4IVp6H0150デフォルトの名無しさん (アウアウウー Sa67-uznS)
2020/06/14(日) 02:49:46.49ID:elQ0/Qc7a くだらない質問で申し訳ない
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
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
151デフォルトの名無しさん (アウアウウー Sa67-uznS)
2020/06/14(日) 03:07:11.97ID:elQ0/Qc7a こうじゃなきゃダメか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;
}
}
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;
}
}
152デフォルトの名無しさん (アウアウカー Sac7-P9YK)
2020/06/14(日) 03:59:43.38ID:Lj4n2emQa よくわからないけどRPGのデータベースから
単なる所持品表示と
装備品表示でBoolean型を使うなら状況が変わるのかな?
単なる所持品表示と
装備品表示でBoolean型を使うなら状況が変わるのかな?
153デフォルトの名無しさん (ワッチョイ f319-if3W)
2020/06/14(日) 05:02:05.56ID:HJp96S060 >>151
再起なんかせずにEnumetable.Repeatで必要文字数作って返すのじゃ駄目なん?
再起なんかせずにEnumetable.Repeatで必要文字数作って返すのじゃ駄目なん?
154デフォルトの名無しさん (ワッチョイ 8f02-+Do1)
2020/06/14(日) 13:47:32.96ID:EPf5hgHv0 再起嫌いだわ
難しいことせず素直に書くならこうかな
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;
}
難しいことせず素直に書くならこうかな
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;
}
155デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2020/06/14(日) 17:59:06.56ID:HWVPFncU0 少し汎用化してみた
https://dotnetfiddle.net/qFcJK0
https://dotnetfiddle.net/qFcJK0
156デフォルトの名無しさん (ワッチョイ 7361-TrMf)
2020/06/14(日) 22:16:24.60ID:ZbFg49iQ0 >>154
n=0の動きがかわっちゃってない?
n=0の動きがかわっちゃってない?
157150 (アウアウウー Sa67-uznS)
2020/06/14(日) 23:20:59.70ID:FMtFwmQda158デフォルトの名無しさん (アウアウエー Sadf-P9YK)
2020/06/14(日) 23:38:18.81ID:gmXZN8yKa 2次元配列の逐次処理は3Dの棒グラフだから
どう見てもデカルト
どう見てもデカルト
159デフォルトの名無しさん (ワッチョイ 4359-lMPZ)
2020/06/15(月) 12:58:53.43ID:G4ousd2n0 プログラムに日本語が使われた物って、日本語がインストールされていない環境でも動きますか?
変数名などに日本語を使って海外へのローカライズ時にはUIのみをその国の言語に差し替える感じで。
変数名などに日本語を使って海外へのローカライズ時にはUIのみをその国の言語に差し替える感じで。
160デフォルトの名無しさん (ワッチョイ a384-q7/F)
2020/06/15(月) 18:13:18.65ID:yRL+7o6a0 >>159
作成したexeのUI(たとえばButtonコントロールのTextに「押しボタン」とか)が
日本語表示でも、文字化けが問題ないならば動くことは動く
プログラム自体の変数名(たとえば「int 合計」みたいな)であればユニコードで
保存されているはずなのでコンパイルは通るらしいけど、日本語の表示が
できない環境では読めないソースになる
プログラム実行時の画面表示でローカライズってどうやるのっていう話ならば
言語ごとのリソースを作って対応するのが普通なので「c# 国際化対応」で
ググると色々サンプルが出てるよ
作成したexeのUI(たとえばButtonコントロールのTextに「押しボタン」とか)が
日本語表示でも、文字化けが問題ないならば動くことは動く
プログラム自体の変数名(たとえば「int 合計」みたいな)であればユニコードで
保存されているはずなのでコンパイルは通るらしいけど、日本語の表示が
できない環境では読めないソースになる
プログラム実行時の画面表示でローカライズってどうやるのっていう話ならば
言語ごとのリソースを作って対応するのが普通なので「c# 国際化対応」で
ググると色々サンプルが出てるよ
161デフォルトの名無しさん (ワッチョイ 4359-lMPZ)
2020/06/15(月) 19:19:37.65ID:G4ousd2n0 >>160
複数パターンの回答感謝です。
ありがとうございます。
回答いただいた2例目が自分のパターンになると思います。
ソースコードを読まれる事を想定していない場合はコンパイルが出来れば、実行ファイルは問題なく動くという事でしょうか?
今ゲームを作っていて、海外にも配布したいです。
enumで管理している状態異常の名前などが英語だと長くてわかりにくいので日本語にしたいです。
例えばapple.pngをりんご.pngにしたりするのも問題ないでしょうか?
複数パターンの回答感謝です。
ありがとうございます。
回答いただいた2例目が自分のパターンになると思います。
ソースコードを読まれる事を想定していない場合はコンパイルが出来れば、実行ファイルは問題なく動くという事でしょうか?
今ゲームを作っていて、海外にも配布したいです。
enumで管理している状態異常の名前などが英語だと長くてわかりにくいので日本語にしたいです。
例えばapple.pngをりんご.pngにしたりするのも問題ないでしょうか?
162デフォルトの名無しさん (アウアウエー Sadf-P9YK)
2020/06/15(月) 19:37:58.08ID:leNERqqha 日本語ファイル名は文字化けしてたら
ファイル読み込みでエラーになりそう
ローマ字にしといたら良いんでないの
ファイル読み込みでエラーになりそう
ローマ字にしといたら良いんでないの
163デフォルトの名無しさん (ワッチョイ f3da-lWkb)
2020/06/15(月) 19:41:29.43ID:MF7iklGs0 そっちはUnicodeだから恐らく大丈夫
164デフォルトの名無しさん (ワッチョイ 2324-aC9a)
2020/06/17(水) 13:51:06.28ID:e85N0kXp0 エクスプローラーのようなファイラアプリを作っているのですが、DirectoryInfo等を利用してその都度ストレージからフォルダ構造やファイルなどを拾い上げると時間がかかってしまうためこちらでキャッシュしたいと考えています
フォルダツリーやフォルダ下にあるファイルなどの情報をキャッシュするのに適したものってなんでしょうか?
jsonでそのまま多次元配列としてシリアライズするのが最も簡単そうには思えますが、合計ファイル数が1万件近くあるとファイルサイズやパフォーマンス的にsqlite3などを利用したほうが良いのかなと色々迷ってます
フォルダツリーやフォルダ下にあるファイルなどの情報をキャッシュするのに適したものってなんでしょうか?
jsonでそのまま多次元配列としてシリアライズするのが最も簡単そうには思えますが、合計ファイル数が1万件近くあるとファイルサイズやパフォーマンス的にsqlite3などを利用したほうが良いのかなと色々迷ってます
165デフォルトの名無しさん (ワッチョイ e301-gRm5)
2020/06/17(水) 13:57:54.70ID:0xoIejs00 根本的にアプローチが間違っている。
ローカルドライブならMFTを直接読んで処理すべき。
ローカルドライブならMFTを直接読んで処理すべき。
166デフォルトの名無しさん (アウウィフ FF47-HKig)
2020/06/17(水) 15:25:29.42ID:GES6ctGCF エクスプローラーも1万件あるとあきらかに遅くなる
167デフォルトの名無しさん (ワッチョイ b602-vBZN)
2020/06/17(水) 15:38:18.73ID:yVuIICiL0 低レイヤのこと詳しくないけどそもそもGetDirectoriesとかGetFilesもMFTから読み込んでるんじゃないの?
FindFirstFileのラッパーなはずだけどFindFirstFileの内部ではそうしてるもんだと思ってたが
FindFirstFileのラッパーなはずだけどFindFirstFileの内部ではそうしてるもんだと思ってたが
168デフォルトの名無しさん (ワッチョイ e301-gRm5)
2020/06/17(水) 15:46:17.14ID:0xoIejs00 MFTはNTFSにしかないから、
SDカード(普通FAT系)とかネットワーク
ドライブなら
FindXXの高レベルAPIを使用する事に
なるよ。
書籍ならWindows Internals (chap12
なのでpart2)に説明がある
Qiitaで見かけた記憶があるのでこちらを
探すってのもありかと
SDカード(普通FAT系)とかネットワーク
ドライブなら
FindXXの高レベルAPIを使用する事に
なるよ。
書籍ならWindows Internals (chap12
なのでpart2)に説明がある
Qiitaで見かけた記憶があるのでこちらを
探すってのもありかと
169デフォルトの名無しさん (アウアウウー Sa47-7nK8)
2020/06/17(水) 15:56:57.68ID:wCFe9G62a >>164
そもそも本当に体感できるほど時間かかるかなあw
連番をプリフィクスしたファイル名でデータを保存する、なんて処理を結構書いてて、
その場合は当然ディクトリ内のファイル名を走査して開いてる番号を探すわけだけど、
少なくとも数千件程度のファイル数で体感できるような処理時間を感じたことはないが...
そもそも本当に体感できるほど時間かかるかなあw
連番をプリフィクスしたファイル名でデータを保存する、なんて処理を結構書いてて、
その場合は当然ディクトリ内のファイル名を走査して開いてる番号を探すわけだけど、
少なくとも数千件程度のファイル数で体感できるような処理時間を感じたことはないが...
170デフォルトの名無しさん (ワッチョイ e778-IXeA)
2020/06/17(水) 19:29:16.87ID:TZB3F6Mj0 ファイルやフォルダを画面に描写する処理に時間がかかってたりするパターンでは?
171デフォルトの名無しさん (ワッチョイ 5fda-EdQi)
2020/06/18(木) 06:00:16.81ID:/GutDtHv0 エスパー視点だと、切断されたネットワークドライブ探して時間がかかってる。
172デフォルトの名無しさん (ワッチョイ 0b01-oh81)
2020/06/18(木) 07:14:38.56ID:tX12dTLd0 アドバイスでもなんでもないが俺も昔自分用のファイルDB作ってたんだが
起動時に対象フォルダ下のファイルをGetFilesやGetDirectoriesで収集 → DBからタグ等の細かい情報取ってきてくっ付けるってやるとき、sqliteから一つ一つwhere fullpathというように文字列で検索すると約5000件/3分くらいかかったんだよな
そこでwhereを入れず全部取得 → while (reader.Read()) sqFiles.Add();と一旦こちらのリストに全部放り込んでから
愚直にforでリストからフルパスと一致するものを探すって方式に変えたら5000件/500msというアホみたいに高速化された思い出がある
起動時に対象フォルダ下のファイルをGetFilesやGetDirectoriesで収集 → DBからタグ等の細かい情報取ってきてくっ付けるってやるとき、sqliteから一つ一つwhere fullpathというように文字列で検索すると約5000件/3分くらいかかったんだよな
そこでwhereを入れず全部取得 → while (reader.Read()) sqFiles.Add();と一旦こちらのリストに全部放り込んでから
愚直にforでリストからフルパスと一致するものを探すって方式に変えたら5000件/500msというアホみたいに高速化された思い出がある
173デフォルトの名無しさん (ワッチョイ 0b01-oh81)
2020/06/18(木) 07:24:19.57ID:tX12dTLd0 ちなみにこれじゃsqlite使う意味ねえじゃんwって思われそうだが、その初回時の検索でlong型のPrimaryKeyであるUniqueIdも取得するんで2回目以降は一つ一つ検索する場合でも普通に早い
タグ以外にもblob型の多少サイズ大きいバイナリとか色々DBには保持させてるんでな
タグ以外にもblob型の多少サイズ大きいバイナリとか色々DBには保持させてるんでな
174デフォルトの名無しさん (ワイーワ2 FF12-HKig)
2020/06/18(木) 11:07:27.03ID:OoPd9bgDF forで愚直に検索中にディレクトリの状態やDBの状態が変化していなければ良いねω
175デフォルトの名無しさん (アウアウエー Sa52-f3e5)
2020/06/18(木) 11:27:39.83ID:8/3vTp6fa SQLiteはトランザクション無いんだっけ?
>>172みたいな自分用のDBで500ms以内に変化するようなクエリって何だろう・・・
>>172みたいな自分用のDBで500ms以内に変化するようなクエリって何だろう・・・
176デフォルトの名無しさん (ワッチョイ b3a7-PRoC)
2020/06/18(木) 11:54:40.21ID:ZcH1+5T10 トランザクションいるよな
とってるときも書き込むときも
とってるときも書き込むときも
177デフォルトの名無しさん (ワッチョイ 7333-FU44)
2020/06/18(木) 11:58:11.67ID:JTgDDftK0 SQLiteにだってトランザクションあるでしょ
178デフォルトの名無しさん (ワッチョイ b3a7-PRoC)
2020/06/18(木) 11:59:20.73ID:ZcH1+5T10 >>177
あるある
あるある
179デフォルトの名無しさん (ワッチョイ aae2-VNxU)
2020/06/18(木) 12:01:47.66ID:LpN/zpxZ0 SQLiteに限らずmatchならまだしも文字列の=って糞遅いでしょ、トランザクションが有効なのって書き込み時だしね
SQLiteのクエリはutf16版を使ったところで結局はutf8への変換が生じるからC#から使うとオーバーヘッドは避けられない
その上でPRAGMA encoding='UTF-16'とかしてたらまたまたキーワード部分を変換しないといけなくなったりともうめちゃくちゃ
だから一回のクエリで全件持ってきてC#上で検索すればそれくらい早くなるというのはまぁ自然
SQLiteのクエリはutf16版を使ったところで結局はutf8への変換が生じるからC#から使うとオーバーヘッドは避けられない
その上でPRAGMA encoding='UTF-16'とかしてたらまたまたキーワード部分を変換しないといけなくなったりともうめちゃくちゃ
だから一回のクエリで全件持ってきてC#上で検索すればそれくらい早くなるというのはまぁ自然
180デフォルトの名無しさん (アウアウエー Sa52-f3e5)
2020/06/18(木) 12:03:22.57ID:8/3vTp6fa ごめんバージョン 2.0から導入されてたね
181デフォルトの名無しさん (ワッチョイ 2302-IXeA)
2020/06/18(木) 12:35:51.08ID:u7MaeuvH0 ファイルのデータベース管理って言うとWinFSを思い起こすな
182デフォルトの名無しさん (ワッチョイ e301-gRm5)
2020/06/18(木) 13:20:40.79ID:h9R/TQ390 トランザクショなるNTFS=TxFとか沼ですな。
※Vistaで導入7から8に変わった時に
デグレした機能w
TransactionalFileMgr
.Net Transactional File Manager がこのスレ
的に正解かな?
※Vistaで導入7から8に変わった時に
デグレした機能w
TransactionalFileMgr
.Net Transactional File Manager がこのスレ
的に正解かな?
183デフォルトの名無しさん (オッペケ Sr3b-CFTz)
2020/06/18(木) 14:45:37.31ID:N068eYZUr184デフォルトの名無しさん (ワッチョイ db2f-1/Nl)
2020/06/21(日) 13:35:38.83ID:jQi52PAy0 C#のGUIからパイソンを実行してデータ分析させたいんだけど、
すごく簡単に実現できる方法ってありませんか?
1 C#からテキストファイルでデータ出力
2 C#からPython起動し、テキストファイルのパスを渡す
3 Pythonでデータ分析しグラフ出力
みたいな感じです。
PythonからC#に受け渡すデータはありません。
すごく簡単に実現できる方法ってありませんか?
1 C#からテキストファイルでデータ出力
2 C#からPython起動し、テキストファイルのパスを渡す
3 Pythonでデータ分析しグラフ出力
みたいな感じです。
PythonからC#に受け渡すデータはありません。
185デフォルトの名無しさん (ブーイモ MM26-Tffq)
2020/06/21(日) 13:42:47.45ID:bTXo9Nr1M アイロンパイソンでええんちゃう
186デフォルトの名無しさん (ワッチョイ b6de-PRoC)
2020/06/21(日) 15:46:22.00ID:7MKh9Chd0 コマンドプロンプトのパイソン実行でええんちゃう?
187デフォルトの名無しさん (ワッチョイ b3d7-cuFM)
2020/06/22(月) 22:13:03.58ID:zuodZOih0 batファイルで、解決できそう
188デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/24(水) 15:59:14.27ID:rxIn+gin0 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文は使えないんでしょか?かわりの方法はあるでしょか?おねがいします
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文は使えないんでしょか?かわりの方法はあるでしょか?おねがいします
189デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)
2020/06/24(水) 16:14:51.03ID:ZBvJ9IFx0190デフォルトの名無しさん (ワイーワ2 FFbf-qwRG)
2020/06/24(水) 16:27:10.24ID:6+kkBVmVF DROP すると等価ではないな
191デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/24(水) 16:40:01.38ID:rxIn+gin0192デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)
2020/06/24(水) 17:06:11.29ID:ZBvJ9IFx0193デフォルトの名無しさん (ワッチョイ 0fac-G+5W)
2020/06/24(水) 17:13:36.03ID:LZQGw3mN0 で、それらc#なの?
SQLの話ならスレ違いだ
SQLの話ならスレ違いだ
194デフォルトの名無しさん (ワッチョイ 8f01-2vNH)
2020/06/24(水) 19:42:09.00ID:H9m4GMw80 DDL文
195デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/24(水) 20:43:40.85ID:rxIn+gin0196デフォルトの名無しさん (ワッチョイ 4f90-l8dZ)
2020/06/24(水) 22:59:21.23ID:G18p0mGY0 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でのデータベースへの突っ込み方しか書いてなくて
実際に運用する場合のデータの持ち方の考え方がよう分からん
この辺りまで詳しい本とかサイトとかあったら教えてください
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でのデータベースへの突っ込み方しか書いてなくて
実際に運用する場合のデータの持ち方の考え方がよう分からん
この辺りまで詳しい本とかサイトとかあったら教えてください
197デフォルトの名無しさん (ワッチョイ 8f01-H7K1)
2020/06/24(水) 23:58:21.16ID:KiDLqidP0 いいんじゃない?DTOは名前の通りデータをDAOと受け渡すためだけに使って、振る舞い持たせるのは違う気がする。
198デフォルトの名無しさん (アウアウエー Sabf-TKyb)
2020/06/25(木) 00:07:24.74ID:pPMcnwWPa 単純なアプリだとDomainModelも単純だからEntity、DomainModel、ViewModelを同じインスタンスで済ませられる場合が多い
真面目にやるならそれぞれ別のクラスにしてマッピングするんだけどめんどくさいんだよな
真面目にやるならそれぞれ別のクラスにしてマッピングするんだけどめんどくさいんだよな
199デフォルトの名無しさん (ワッチョイ 0fac-G+5W)
2020/06/25(木) 00:24:04.27ID:GAspYPHa0 めんどくさいけど、アプリ自体を拡張する可能性があると分けといたほうが後々良いことがあったりなかったり
200デフォルトの名無しさん (ワッチョイ 0fa7-eW5c)
2020/06/25(木) 01:37:48.23ID:Q34w5rfS0201デフォルトの名無しさん (オッペケ Sra3-G+5W)
2020/06/25(木) 08:19:30.72ID:+9vWEdNfr >>200
「ズレる」ようなのは設計と言えないし、そんな設計したことないけどなあ
「ズレる」ようなのは設計と言えないし、そんな設計したことないけどなあ
202デフォルトの名無しさん (ワッチョイ 0fa7-eW5c)
2020/06/25(木) 08:48:00.18ID:Q34w5rfS0 >>201
あるやろ?
色んなリストの表示方法(文字着色、並び替え、フォントサイズ個別指定、背景色着色)を実装できるようにしたけど
客の欲しいのはページングのある印刷機能だけだったみたいな
改修にときノリで入れたフォントサイズの変更や文字や背景色がページング印刷時にうまく出ない
→ああ、無いほうが簡単だったな
っとか
あるやろ?
色んなリストの表示方法(文字着色、並び替え、フォントサイズ個別指定、背景色着色)を実装できるようにしたけど
客の欲しいのはページングのある印刷機能だけだったみたいな
改修にときノリで入れたフォントサイズの変更や文字や背景色がページング印刷時にうまく出ない
→ああ、無いほうが簡単だったな
っとか
203196 (ワッチョイ 4f90-l8dZ)
2020/06/25(木) 20:33:53.95ID:42cionTC0 ありがとうございます
勉強になりました
勉強になりました
204デフォルトの名無しさん (ワッチョイ 0f87-plLw)
2020/06/26(金) 07:51:51.47ID:a7mre53d0 c#でアクティブウィンドウがosよりも先にキーボード入力を受けとる方法はありますか?
やりたいことはリモートデスクトップを全画面で繋げている場合、Alt+Tabキーの入力は呼び出し元のosではなく、リモートデスクトップ側が取得しているように見えます。
この挙動を自作のguiでもできればと考えています。
「アクティブウィンドウがosよりも先にキーボード入力を受けとる」の認識が間違っているかも知れませんが、リモートデスクトップのような挙動を実現する方法を教えてください。
やりたいことはリモートデスクトップを全画面で繋げている場合、Alt+Tabキーの入力は呼び出し元のosではなく、リモートデスクトップ側が取得しているように見えます。
この挙動を自作のguiでもできればと考えています。
「アクティブウィンドウがosよりも先にキーボード入力を受けとる」の認識が間違っているかも知れませんが、リモートデスクトップのような挙動を実現する方法を教えてください。
205デフォルトの名無しさん (ワッチョイ 8f01-2vNH)
2020/06/26(金) 08:39:13.70ID:EHOqkK/F0 グローバルフックしか無いと思うな
SetWindowsHookEx を調べてみなされ
SetWindowsHookEx を調べてみなされ
206デフォルトの名無しさん (ワッチョイ 3f52-RSi0)
2020/06/26(金) 09:07:56.65ID:wYfFflLL0 >>204
余計なお世話かもしれないけど、アプリの枠の外にあるOS側での共通の操作を、1アプリの都合で勝手にフックされて違う動作になるのは使う方からするとストレスになるから気を付けた方がいいかも。
リモートデスクトップはある意味OS内OSだし、そういう例外的なケースならばアリだと思うけど。
余計なお世話かもしれないけど、アプリの枠の外にあるOS側での共通の操作を、1アプリの都合で勝手にフックされて違う動作になるのは使う方からするとストレスになるから気を付けた方がいいかも。
リモートデスクトップはある意味OS内OSだし、そういう例外的なケースならばアリだと思うけど。
207デフォルトの名無しさん (スップ Sddf-plLw)
2020/06/26(金) 09:43:44.08ID:an36r83ud >205
ありがとうございます。調べてみます。
>206
今回は自分で使いたいものなんで。
将来的に業務で使う機会があれば考慮するようにします。ありがとうございます。
ありがとうございます。調べてみます。
>206
今回は自分で使いたいものなんで。
将来的に業務で使う機会があれば考慮するようにします。ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- お前らは“スカイマイルタワー”建設計画を知っているか?
- 万引きJC「すいません許してください!何でもしますから!」←どうする?
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 「黙らせてやろうと思った」自宅マンション10階から高校テニスコート内の女子生徒目掛けて貯金箱を投擲した女の子、殺人未遂で逮捕 [399583221]
- 5時だから窓から5回ちんこ出した
