ふらっと C#,C♯,C#(初心者用) Part148
■ このスレッドは過去ログ倉庫に格納されています
>>349
サーバ側の話だよな
セッションが不要になれぱ消せば良い
ただそれが検知できないだけ そりゃPythonかおっぱいかと問われればおっぱいだろ >>358
最近、大きくなって来ちゃいました
唐揚げとか食べ過ぎて >>360
C ++ C#ってほとんどDなんかな?
手に余るような手に負えないような良いサイズ感
最先端に触れちゃいたいけどFはイキ過ぎなんで
>>359はBBQしすぎでしょ 質問なんですが、サーバーエクスプローラー−データ接続ー接続の追加で
ローカルのデーターベース新規作成したいのですが、データベースファイルのパスを
絶対パスじゃなくて、実行ファイルからの相対パスにできないのでしょうか?
データーソースはMicrosoft SQL Server データベース ファイル (SqlClient)です、よろしくおねがいします >>364
レスさんくすです
接続を複数作るってのは、SQLiteとかでデータベース作って、SQLServerとかで接続とかでしょうか?
ごめんなさいよくわかりません 何をしたいんだ?
自分が考えた方法はいったんおいといて目的だけを言ってみて >>363
Application.ExecutablePathなどからパスを作らず相対パスでなければならない理由があるの? 質問の前に真の目的があって
自分なりに考えた方法だとこうすればできる
でもそれには障害があるのでうまくいかない
んで質問するときには障害を取っ払うにはどうすればいいんですかって質問が化けちまうんだよ
だからまずは真の目的を話せ それだと本人のPCにしかないプログラムを公開するところから始めないといかんのだが やりたいことを書いて頭に「C#」つけてグーグル先生に聞けばだいたい解決する >>366
さんくすです
SQLを勉強したい→自炊した本のフォルダ名に本の名前書いてあるから
フォルダ名をデータベースに、サーバーエクスプローラーからデータベース作ると
C:\USER\ドキュメントフォルダに.mdfファイルが作られる、これを避けたいのです
>>367
れすさんくすです
もちろん実行パスさえ取得できれば絶対パスでもOKです
ただサーバーエクスプローラーからデータベース作ろうとしたら
Application.ExecutablePath使えなくて
>>368
そのアプリでしか使わないデーターベースの保存先を
実行ファイルと同じ場所にしたいのです、レスさんくすです 社員数分200台のコンピュータに共有フォルダに置いた常駐するexeファイルを実行させたいのですが、半分くらいが上手く起動してくれません
調べてもそういう情報は無いのですが、exeファイルの接続数等に何か制約があるのでしょうか? >>374
アプリと一緒に、.mdf ファイルも配布すれば? >>374
開発環境と実行環境は別ものと考えるのが常識だ
サーバーエクスプローラーが絶対パスの直指定しかできなくても
アプリケーションは相対パスから計算して接続文字列を組み立てられる
実行時にexeとmdfが揃ってればいい
開発時は別にどこにあってもいい >>376
実行ファイルはC#なのですがVBでも同じと言われれば同じでした 共有フォルダに同時アクセス制限が掛かってる可能性ない?
NASとかじゃなくてWindowsが共有元になってると
フォルダ右クリ→プロパティ→共有→詳細な共有で見られる同時に共有できるユーザー数がデフォルトは20になってるはず(ホストがWindowsServerだともっと大きいけど)
スレ違いだけどな >>379
開発時絶対パスでも、実行ファイルの場所に指定しとけば
うまく動くってことですね、ありがとうございます
>>378
さんくすです、アプリに同梱してれば見失わないってことですね 言いたいことは分かるけど、それだと究極的には質問は「年収上げる早道は何か?」になっちゃうよw >>384
言いたいことを分かった上で敢えて茶々を入れるなら、もう少し面白いとか上手いとか思えるものにしてくれ。 >>382
ブラウザなど、多くのアプリでは、
パッケージ内にデータベースとして、SQLite3 も入れていて、
それをキャッシュ用に使っている >>387
ヘリウムガスをほんの少し。加減は分からないので絶対音感のある人に協力してもらって。 >>391
胸軽く、心踊る、夏の夜の夢、メンデルスゾーン
好き 好き 大好き HT ML
あんなユメ こんなユメ かなえる
HTで探す MLで建てる
あなたと出会える HTML5ブィングゥ >>389
サンクスです、FireFoxとかみるとデータ保存用にSQLiteとか使ってますよね
単に実行ファイルと同じ場所にデータベースファイル保存したいだけなのに
そんなおかしいことゆってますかね? >>368
それで必要ないReflectionやらコードの動的生成とかに突っ込んでいくんだよな >>393
Program Filesとかセキュリティが厳しいところにインストールして
DBファイルに上手く書き込めなくて悩むオチが見える >>395
そういや昔のゲームとかインストールするとうそうなったり
MSの迷走 >>397
ここはPC初心者の知識をドヤ顔で書く場所じゃないから Amazonで評判のいい本でC#の勉強をはじめたのですが変数のところで疑問点がでました
12 {
13 int a; // 変数の宣言
14 int b = 3; // 宣言と初期化を同時に行う
15 int add, sub; // 複数の変数を同時に宣言
16 double avg; // int以外の変数を宣言
17 a = 6; // 代入
18 add = a + b; // a,bの和を求める
19 sub = a - b; // a,bの差を求める
20 avg = (a + b) / 2.0; // a,bの平均値を求める
21 Console.WriteLine("{0} + {1} = {2}", a, b, add);
22 Console.WriteLine("{0} - {1} = {2}", a, b, sub);
23 Console.WriteLine("{0}と{1}の平均値{2}", a, b, avg);
24 }
変数の部分はわかるのですが、21-23の表示の部分が引っかかってます
なぜa, b, = a+bのように直接式を立てずに{0} + {1} = {2}に代入するのでしょうか? >>401
Console.WriteLineがそういうルールで書いたら代入するよって決めてるから 代入じゃないよ
後ろの引数の0番目、1番目、2番目をここに埋め込むって意味
a + " + " + b + " = " + "add";
現在のC#では直接埋め込めるから基本はそっち使うね
$"{a} + {b} = {add}"; // $""という記法で{式}を文字列に埋め込める
$"{a} + {b} = {a + b}"; // 式なので演算とかも書ける >>401
直接式を立てず、の意味が分からない
どう書くべきだと思ったのか、実際のコードを書いてみて >>402
ありがとうございます
そういうことだったんですね
>>403
ありがとうございます
んーわかったつもりになりそうな予感w
じっくり読んでみますね
>>404
ありがとうございます
Console.WriteLine(a, "+" b, "=" a+b) 的な形をイメージしていました >>405
>Console.WriteLine(a, "+" b, "=" a+b) 的な形をイメージ
その書き方で十分だと思います 403のが活かされてなくて草
ちな文字列内での変数展開やパラメータ指定でのバインドはPHPとかでもよくやるポピュラーな方法でもある >>403のように
Console.WriteLine( $"{a} + {b} = {a+b}" );
が一番スマートだと思う
後ろのはa+bでもaddでもお好みで >>406
ありがとうございます
ふむふむ
>>407
ありがとうございます
そうなのですね
>>409
ありがとうございます
他言語との比較も勉強になりますね
>>410
ありがとうございます
わかりましたー 濃淡グラフを描くときに使用するような
カラースケールを選択するコントロールはありますか
やはり自作するのでしょうか >>413
コントロール全般で使えるようなものは無いし特定のコントロールでも多分無い
カラースケールのルール作りさえ考えたら自分ですぐ作れるよな
https://stackoverrun.com/ja/q/1024222 自作するか別の方法を考えることにします
ありがとうございました カラースケールって何のことかと思ったらただのグラデーションのことかw
要するにグラデーションの両端の色を同時に選択できるようなダイアログって意味だったのかな? 色の設定ダイアログボックスで良かったんじゃないかな?実は WinFormsでデスクトップアプリを作っています
SoundPlayerクラスのPlayメソッドだと、
音が鳴っているときに別の音を鳴らすと前の音が止まって後の音が鳴るのですが、
前の音は止まらず、後の音が重なって鳴るようにしたいです(これが目的)
SoundPlayerクラスでは無理なら、何を使えば一番簡単にできますか?(これが知りたい)
可能なら音の鳴り終わりもイベントまたはコールバックで把握したいです SoundPlayerじゃ無理だね
NAudioでも使えば 一般論だけどWindowsの標準の色設定ダイアログは糞
全部の色を表現出来ていないからあるものの中からは選べない >>424
え?RGBそれぞれ0~255設定できるじゃん
俺とお前の色の設定画面が一致しないんだけど? もちろん数値入れれば良い
>あるものの中からは選べない
↓
>提示されているものの中からは選べない
(まだ誤解されるかも知れないけどパレットのことじゃなくてグラデーションの方の話ね) >>426
グラデのバーもあんじゃん
正確に何が欲しいのかわかってなくない? >>427
そいつはカラーダイアログの使い方がわかってないのかもしれん
半透明色が取れない、って不満ならわかるけど>>426は何が言いたいのかすらわからん グラデのバーがあるのも知ってるよ
お前らには観えてないんだろ >>422-423
ありがとうございます
423のMediaPlayerを使うことにしましたが、ちょっと癖がありますね
Waveファイル1つにつき1インスタンス生成して、
連続でOpenで読み込んでるとPlayもしてないのになぜか少し音が出たり
(Muteにしてから読み込むことで対処)、
ファイルのパスはUriで渡す必要があるのですが、exeからの相対パスを
渡しても読んでくれなかったり(絶対パスに変換すればOK)、
Playした後はStopしないと再度Playしても鳴らなかったり
ともかく目的は果たせました、助かりました 馬鹿が馬鹿にした気になってんのか
これだから低脳は使えねえ 自分でColor選択ダイアログ造ってみ
Windows標準のやつのどこが問題かすぐ気付くからω >>437
まだいたのかおまえ
説明できないのに勝利宣言するキチガイはいらない Windowsの色選択ダイアログっていうかそれをラップしてる.NETのダイアログを以前使って
なんじゃこりゃと思ったのは、あれ確かユーザーが編集して保存したパレットの色の型が
ColorになってなくてなんかWin32の妙ちくりんな型になってたような レジストリには文字列で記録されてます
.ini時代からの伝統です >>439
妙ちくりんな型も何も、そのものずばりintだよ WindowsSDKではCOLORREFってtypedefされてるけど
知ってればColorTranslator.FromWin32で問題ないんだけどまあ知らないよね Func<〜>型の変数同士の比較ってうまくいかないの?
Func<int, int> hoge = p => p * 2;
Func<int, int> fuga = p => p * 2;
bool flg = (hoge==fuga); //trueにならない ラムダ式を2個書いてるから、それぞれ別のオブジェクト
それを比較してるから同じではない
その比較はデリゲート同士の比較なんだが、もしかして整数同士の比較だと思ってる? ラムダ式が同じ式でも別メソッドにコンパイルされてるからfalseになってる
int twice(int x) => x * 2;
Func<int, int> a = new Func<int, int>(twice);
Func<int, int> b = new Func<int, int>(twice);
var flg = a == b; // これなら同じメソッドだからtrue
Func<int, int> a = p => p * 2;
Func<int, int> b = p => p * 2;
はこんな感じになる
class __c {
public static readonly __c __instance = new __c();
public int __1(int p) => p * 2;
public int __2(int p) => p * 2;
}
Func<int, int> a = new Func<int, int>(__c.__instance.__1);
Func<int, int> b = new Func<int, int>(__c.__instance.__2);
var flg = a == b; // __1と__2で別メソッドなのでfalse >>443-445
レスありがとうございます。
計算式の同一性を判断したかったのですができないようなので他の方法で実装します。 計算式の同一性って、p*2とp<<1は同一と判断するのかな? 定義域の数値を全部代入してみて出力が全部同じなら同じと見なす >>446
そんなの無理だよw
=x*(x+1)+1と= x*x +x+1が同じかどうか判定できるわけがない p => p * 2とq => q * 2は違うという判定でもよければ
ExpressionをToString()して比較
それ以上は中身を比較しないと無理
NugetのLambdaCompareを使うとp => p * 2とq => q * 2は同一と判断可能
https://dotnetfiddle.net/bTgYtj
(表現の同一性比較であって計算式の同一性比較ではない) http://wildpie.はてなぶろぐ.com/entry/2014/09/29/174449 小姑みたいな話と思われるかもしれないけど、同一と等価は厳密に区別した方がいいよw
同一というのは同一人物の同一。
等価というのはある判断基準に基づいて同じと見なせるということ。
前者には恣意性が入り込む余地がないのに対して、後者は恣意的な演算。
恣意的ということはつまり、計算機が適当に忖度して行える演算ではないということ。
何をもって等価と見なすかは人間が決定する必要がある。
デリゲートの==演算子は同一性を検査する ■ このスレッドは過去ログ倉庫に格納されています