- 1 名前:デフォルトの名無しさん mailto:sage [2018/08/05(日) 19:55:44.50 ID:tZmoj8I+.net]
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 https://mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part138 https://mevius.5ch.net/test/read.cgi/tech/1528194762/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/ja-jp/library/gg145045.aspx https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
- 277 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 09:30:37.55 ID:SgdWV5FD.net]
- vmmapを使った方が良いかも
HeapWalkerを使えるようになればなおよし
- 278 名前:デフォルトの名無しさん [2018/08/29(水) 09:55:10.31 ID:o37zBcM2.net]
- >>266
windowsデフォの管理ツールに「リソースモニタ」ていうのもありますね これでもいいのかな? 初耳な分野なので全く分かりませんが調べてみます ありがとうございました
- 279 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 21:29:00.98 ID:xKUAwzTF.net]
- C♯にて数あるエクセルファイルの中身を読み取りあれこれしたい時、早く開いて読み取って閉じる方法ってありますか?
- 280 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 21:43:41.82 ID:bGCoQXPI.net]
- >>268
何と比較して?
- 281 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:02:30.99 ID:XA15QLm3.net]
- >>268
「あれこれ」じゃなく具体的に何がしたいか書かないと やりたいことが多くなるほど「じゃあエクセルで直接開いた方が早いね」になるだろうけど
- 282 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:14:58.95 ID:dev0xKTh.net]
- 前提条件やマシン構成で大きく変わるので思いつく手段を全部書いて実測
- 283 名前:デフォルトの名無しさん [2018/08/30(木) 03:48:10.84 ID:Aa4o8Duk.net]
- >>268
バイナリーで読み込むのが最速
- 284 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 07:21:13.96 ID:oIUtx1rS.net]
- >>270
@シート名の読み込み。 A指定シートの指定列の読み込み。 B指定シートの指定行の読み込み。 こんな感じのを各エクセルに@〜Bを繰り返し行う。 ネットを参考に見て普通に開いて閉じるだと遅くて...
- 285 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 09:55:38.76 ID:l8OdYu1h.net]
- >>273
ExcelDataReaderでも満足できないレベルに遅いの? だとしたらほぼ無理かと Excel側で予め必要になる情報をVBAとかでtxtファイルに出力しとくとかで対処するしかなさそう
- 286 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 12:24:59.82 ID:8MIxRZMr.net]
- >>273
ネットで参考にした情報はOLEでExcelを起動して読み込む方法かね? それは遅いからOpen XML SDKでも使って直接ファイルを読んだ方がいいね
- 287 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 17:27:14.97 ID:Cn/2yBNm.net]
- 質問させてください!
VisualStudio2017のC#Formアプリで自分用のテキストエディタを作ろうとしていて、 「改行した時、一行前の行頭に全角スペースがあった場合次の行頭にも全角スペースを挿入する」 というちょっとした自動インデントのような動作をさせたいのが目的です。 探り探りで一応目的の動作をするコードは書けたのですが、 「KeyUpからエンターキーの場合のみ分岐して座標をひとつ戻してから改行かどうかを確かめて、 行数を調べて一文字切り出してからカーソル位置を戻して比較して……」 をはじめとする行程で相当に回りくどいことをやっているような感覚があるので もっとスマートな方法はないものかと思い質問に来ました。 どうぞよろしくお願いします。 https://ideone.com/8J7uBK
- 288 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:25:03.14 ID:iISOYGhU.net]
- エディタはそんなもん
作るの超めんどい
- 289 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 18:56:29.70 ID:2QdSuJnz.net]
- task難しすぎない…?
非同期が難しいのは当然だけどこんな躓いたのc#が初めて
- 290 名前:デフォルトの名無しさん [2018/08/30(木) 19:01:33.74 ID:16om6f/5.net]
- スレッドのシーケンシャル図みたいなのに書き出すといいよ
まあスレッドセーフな構造を理解してるのが大前提だけど
- 291 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:0
]
- [ここ壊れてます]
- 292 名前:5:11.47 ID:syYDPcaO.net mailto: >>278
Taskを使わないと更に難しくなる [] - [ここ壊れてます]
- 293 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:16:12.27 ID:r/TRQYs/.net]
- task自体は簡単だと思うけど
async/awaitは誤解したまま使うとハマる
- 294 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:19:23.09 ID:JgfkbZf2.net]
- >>275
いや普通にOSSのライブラリ使えよ
- 295 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:25:02.55 ID:2+/sJ3kY.net]
- >>276
読み辛すぎるw っていうか、これ本当にちゃんと動く? KeyUp発生した時点で入力したキーがTextに反映されてる前提になってると思うけどそうだっけ?
- 296 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 19:34:27.48 ID:r/TRQYs/.net]
- windowsの仕組み上不定な気がする
- 297 名前:デフォルトの名無しさん [2018/08/30(木) 20:37:16.45 ID:4drhoSMA.net]
- >>276
行頭に全角スペースが入力されたときにフラグ立てる というのはどうかな 文字列型フラグ変数に行頭に入力された全角スペースを突っ込んでおいて 改行でフラグ変数の値を行頭に挿入とか 行頭全角スペースが削除されたらフラグも空文字列にしないといけないけど
- 298 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 20:42:40.52 ID:2QdSuJnz.net]
- https://ideone.com/0aD1lJ
>>278で質問したものだけどコードで書いたので下の疑問が正しいのか教えてください A:ここで並列にダウンロードできているのか? B:Resultを使うとデッドロックすると聞いたけどawaitしていれば大丈夫?
- 299 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:00:14.61 ID:Assw0OKp.net]
- >>285
行全部のフラグ作るのとテキスト読み込むときにフラグ作る必要があるが 何万行とかで構成されるテキストでもそれやるの? 動くのなら>>276の方がまだ楽だと思う
- 300 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:07:07.68 ID:cD6Bz7+B.net]
- >>282
ん? Open XML SDKってOSSなんだが w https://blogs.technet.microsoft.com/microsoft_office_/2014/06/25/open-xml-sdk-goes-open-source/
- 301 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:24:36.54 ID:VlraDHRu.net]
- >>288
え、生でそれ使えってか?
- 302 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:26:02.80 ID:Yh+aUVCO.net]
- >>286
A: DownloadAsyncが真っ当に実装されていれば並列ダウンロードになる (真っ当ではない例: 同期的にダウンロードしてTask.FromResult) B: Task<TResult>.Resultはタスクが終了済みなら即座に値を返すので、デッドロックしない ちなみにTask<TResult>.WhenAllはTask<TResult[]>を返すから return (await Task.WhenAll(tasks)).ToList(); でも行けるはず
- 303 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:26:33.91 ID:qGVo2Ysa.net]
- Open XML SDK生で使ったことあるけど、もうちょっと頑張れなかったのかと言いたい
中のファイルメモリに乗っけてシートごとの並列処理出来るかと思ってたのに全然だし、セルの位置はR1C1限定とかマジで死ねよ
- 304 名前:デフォルトの名無しさん [2018/08/30(木) 21:27:27.97 ID:jRU2Egdi.net]
- >>288
Open XML SDKはWordなんかも含むOffice製品全部のSDKちょっと直感的じゃないから ラッパーで多少はExcel VBAライクなClosedXMLとかNPOIとかの話と思われ
- 305 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:27:50.35 ID:2+/sJ3kY.net]
- >>276
まあケチ付けるだけなのもあれなんで 俺ならこうかなあ 無駄なフィールドを作らないために無理矢理ラムダ式使ってるけど本当はこういうのよくないかも class TextBoxEx:TextBox { protected string GetIndent(int line) { var s = Lines[line]; var m = Regex.Match(s, @"^[ \t]*"); return m.Value; } protected string GetIndent() { return GetIndent(CaretLine); } public int CaretLine { get { return GetLineFromCharIndex(SelectionStart
- 306 名前:); }
} []- [ここ壊れてます]
- 307 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:28:10.88 ID:2+/sJ3kY.net]
- protected override void OnKeyDown(KeyEventArgs e)
{ base.OnKeyDown(e); if(e.KeyCode == Keys.Enter) { var indent = GetIndent(); EventHandler eh = null; eh = (sender, ea) => { TextChanged -= eh; SelectedText = indent; }; TextChanged += eh; } } }
- 308 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:41:05.42 ID:cD6Bz7+B.net]
- >>289, >>292
だからそういう話ならもっと便利なOSS書けよって話 >>282だと単なるバカか文句しか言えないクズにしかならん
- 309 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:46:27.28 ID:2QdSuJnz.net]
- >>290
勉強になりました c#は書き方いろいろあってむつかしいです
- 310 名前:デフォルトの名無しさん [2018/08/30(木) 22:15:02.92 ID:jRU2Egdi.net]
- >>295
>>282はSDKという単語に対してライブラリという単語を使ったんだだと思うぞ (それにOpen XML SDKはソース公開されてるものの MSしかコミットしてない実質プロプラなのでOSSと呼ぶの違和感あるのもあると思う) >>275の質問レベルに対してSDKを出すのは それこそもっと便利なOSS書けよって話 ここ初心者スレだぞ
- 311 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 22:26:00.43 ID:R+j2ccwX.net]
- >>282が的外れで意味不明なのが悪いということ
- 312 名前:デフォルトの名無しさん [2018/08/30(木) 23:39:14.89 ID:4drhoSMA.net]
- >>287
そう言われるとそうだな もっとよく考えないとダメだったな テキストエディタ舐めてたわ
- 313 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 00:01:56.93 ID:4iUWs/UZ.net]
- var config = new ConfigurationBuilder()
.AddEnvironmentVariables(prefix: @"XXX_") .Build(); services.Configure<MyOptions>(config.GetSection("MyOptions")); class MyOptions { public int Foo { get; set; } public int Bar { get; set; } } ---env--- export XXX_MYOPTIONS_FOO=1 export XXX_MYOPTIONS_BAR=2 ヒエラルキーを持った設定を環境変数に入れたいのだけどコロンを環境変数の識別子に使うとOSに怒られる アンダーバーにすれば環境変数をセットできるけど今度はIOptionsパターンがヒエラルキーを認識してくれない なんかイケてる対処法ないんか?
- 314 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 00:12:53.87 ID:0MAifXJX.net]
- >>299
ギガ単位のテキストファイルを編集できるエディタって意外とないのよね ログファイルとかで需要はありそうなのに 昔、探したけど無かったからけっこう苦労して自作したわ
- 315 名前:デフォルトの名無しさん [2018/08/31(金) 00:14:40.87 ID:4ZfpOo1s.net]
- そんなもんをエディタで編集しようというのが
そもそもの間違い sedで十分
- 316 名前:デフォルトの名無しさん [2018/08/31(金) 00:18:44.01 ID:4ZfpOo1s.net]
- ギガ単位のファイルなんか
結局検索しないと編集箇所を特定することなんかできない もしかしてギガ単位のファイルを目視で編集箇所特定してんの どんだけ頭悪いねんと。。。
- 317 名前:276 mailto:sage [2018/08/31(金) 03:32:18.34 ID:ogs0aMAV.net]
- >>277
こんなもんなんですね!? テキスト入力を広げていくだけだから初心者向きだと思って始めたのですが びっくりです……でも組み上げていくのは楽しい…… >>283 >>293 当方プログラミング3日目ゆえ……読み辛くてすまぬ……すまぬ…… コードありがとうございます! すでに用意されているものを組み合わせることしか考えてなかったので Textboxのクラスごと作ってしまう方法は目から鱗でした! GetLineFromCharIndexメソッドの存在すら知らなかったので これだけで無限に簡略化できそうな気がします…… 本当にありがとうございます、色々弄ってみます! >>285 既存のファイルを読み込んだ時に改行しやすくするのが目的なので >>287さんの言うとおり一行一行フラグ立てていく方式は厳しいかなと思いました……! リアルタイムで少ない文章を入力していくならそのぐらい簡素でも いいと思うのですけれどね! むずかしい! おかげで先に進めそうです、ありがとうございましたー!
- 318 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 03:47:24.61 ID:ogs0aMAV.net]
- れんとうしつれいします
いざググって調べてclass TextBoxEXの意味を勘違いしていた事に気付いたため レス内容は笑い流してあげてください 正しい意味を知って本当に目からウロコでした ありがとうございました!!
- 319 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 06:16:33.32 ID:WaaqYsvL.net]
- >>298
たぶん>>297と同類でOpen XML SDKがOSSなのを知らなかったんだろうな 実質プロプラとかわけわからんこと口走って恥の上塗りしてるし w
- 320 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 06:36:54.02 ID:7Lf8QxyM.net]
- 実質プロプラw
- 321 名前:デフォルトの名無しさん [2018/08/31(金) 07:41:37.25 ID:Sw5Wccxa.net]
- >>304
3日目なら他にやることあるだろ
- 322 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 08:23:57.84 ID:ogs0aMAV.net]
- >>308
どんな技術も取り敢えず自分がやりたい事から始めて 壁にぶつかったら都度必要な事を調べていけば上手くなると思っているのですが違うのでしょうか……? どうにか自力で一応の形にして目的を実現するところまではやって、 本当にそれが正しいのか調べて見つけることができなかったから質問させて頂いた状態なので 他にやる事と言われても何をすればいいのかわからないです、すみません……
- 323 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 08:44:51.07 ID:6aCB/3AZ.net]
- >>304
普通はこんなもんじゃないよ テキストボックスにデータを持たせるんじゃなくて別にプログラム内部にデータを持たせて それを表示に反映させる感じ
- 324 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 12:29:19.65 ID:iUPXUGud.net]
- >>309
それでいいんだよ、そうやって覚えていくのが一番いいと思う とにかく作ってみないとわからないからね 作る喜びを感じられれば伸びていく リファクタリングもバージョンアップもどんどん やってみるのがいいと思う
- 325 名前:デフォルトの名無しさん [2018/08/31(金) 13:51:05.81 ID:Sw5Wccxa.net]
- >>309
取説読まずにサポセン電話する迷惑なタイプ
- 326 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 15:13:11.36 ID:ogs0aMAV.net]
- >>310
な、なるほど! そうすれば一行毎に表示を弄ったりとかの細かい事もできそうですね! でもリアルタイムで打ち込んだデータを内部に移しながら表示領域に戻して……とやるのは結構 大変そうな気がします。世の高機能テキストエディタはそういった苦労の上に作られているのですね……。 >>311 ありがとうございます、頑張ります! 実際スレに貼って頂いたコードの正規表現命令が通らないことで Text.RegularExpressionsの存在を知ったりと無知ゆえの見落としも結構あるのですが、 自分の知識と思いつく検索ワードで詰めれるところまでは自分でやって成長していきたいです! >>312 可能な限り調べきってから問い合わせてはいるのですが なにぶん取説が広辞苑レベルなので……索引力不足、恐縮です どうにもならなくなったらまたご迷惑かけます
- 327 名前:263 [2018/08/31(金) 16:29:19.58 ID:vo9ITXw3.net]
- 先日デストラクタについて教えてもらった者ですが
やはりメモリリークしてましたwww 起動時は6Mくらいだったのが終了時には10Mになってました 少しだったから大きな問題にならなかったってことですorz でも「実用上は問題無いけどゴミいっぱいまき散らしやがって!」 って怒られますよね・・・ でデストラクタを勉強し始めたのですがさっぱり分からん! マーシャリングして使ってるAPI関数が問題なんだろうとはわかるけど どのタイミグで何処でデストラクトするのかとか IDisposableイベントの発生のさせ方とか C++から勉強しないとダメかな? 先は長いなあ
- 328 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 16:33:50.31 ID:7EVWbyOU.net]
- いや6M→10Mはメモリリークしてなくても.NETならそんなもんだぞ
長いことモニタしてればわかるけど、フルGCが走れば減る
- 329 名前:デフォルトの名無しさん [2018/08/31(金) 16:48:31.15 ID:vo9ITXw3.net]
- >>315
え?そうなの? その程度じゃメモリリークしてるとは断定できない? もう一度検証してみますだ
- 330 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 17:39:33.85 ID:cQtmAsyE.net]
- >>314
つ https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/dispose-pattern ただし和訳は機械翻訳だから読めるなら英語版おすすめ WINAPIで取得したリソースはアンマネージリソースだから、上の記事のComplexResourceHolderのように Dispose(bool disposing)内で、disposingの真偽に関わらずアンマネージリソースを解放するのが正解 あとC++とC#ではどちらもデストラクタという用語はあるが C++のデストラクタはC#ではDisposeが対応する概念 C#のデストラクタはDisposeし忘れた場合の救済措置
- 331 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 17:43:15.60 ID:dU0KocTd.net]
- >>314
盛大に勘違いしてそうだけど、C#のデストラクタは そのクラスのインスタンスを利用するプログラマがDisposeを呼ぶコードを 書き忘れた(つまりバグ)場合のフェイルセーフ以上の意味は通常はないっすよ つまりIDisposableを実装しないなら普通はファイナライザも必要ない ファイナライザは何か不思議な力でリークを解決してくれるマジックじゃありませんw 初心者がごちゃごちゃ頭の中でくだらないこと考えても意味ないよ どうせそんなの盛大に間違ってるw そんな暇があったら理解できなくても少しでもドキュメントを読んだ方がいい
- 332 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 18:08:24.51 ID:eNdvG/21.net]
- SqlConnectionクラスでDB操作するのですが、ACID特性の担保は設計でやるのでしょうか?SqlConnectionとDBMSが隠蔽してくれるのでしょうか?
複数ユーザー利用時のトランザクションのロックとか自力実装する必要があるのかなと思い
- 333 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:55:02.11 ID:k+Te8Uzr.net]
- >>310
毎回テキストボックスをクリアして反映するの? それとも差分を抽出してその部文だけ表示を変更するの?
- 334 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:12:25.67 ID:ZwfzJAPn.net]
- >>316
CLRProfiler使ってちゃんとリークオブジェクトがないか確認してみるといいよ
- 335 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:47:14.81 ID:7EVWbyOU.net]
- >>319
ACIDはあくまで利用者から見たシステムの性質 一般的なRDBにはACIDを実現するために必要な機能が備わっているが、それを使ってACIDなシステムを作るのはお前自身だ アトミックなトランザクションを使ったからってお前のアプリのリクエスト処理が勝手にアトミックになる訳じゃないぞ
- 336 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:28:21.69 ID:Is8FvumJ.net]
- >>320
テキストボックスはでかい文字列扱うと遅いから 高性能なの作るなら独自コントロール
- 337 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:34:45.87 ID:Is8FvumJ.net]
- >>314
c#は空きメモリに余裕がある時は積極的にメモリの回収をしないから、一見リークしてるように見える。 IDisposeの使い方は単純で、使い終わったら自分でDispose()メソッドを呼ぶだけ。 Dispose()を呼び出し忘れた時のためにデストラクタからも呼ぶように書くけど。
- 338 名前:デフォルトの名無しさん [2018/08/31(金) 22:52:13.57 ID:iUPXUGud.net]
- >>323
本格的なテキストエディタを作るなら どうしても独自コントロールになるよな テキストボックスじゃデカいファイルだと無理がある
- 339 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 23:52:12.65 ID:ETlCxkfg.net]
- C#のデストラクタはおまじない程度の効果と聞いた
- 340 名前:デフォルトの名無しさん [2018/09/01(土) 01:29:15.12 ID:ZVoFY83K.net]
- デストラーデっていつ発動するんだっけ?
- 341 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 09:40:22.35 ID:PbkphExB.net]
- デストラクタはいつ動くかわからないから使い勝手がわるい
- 342 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 10:07:42.55 ID:aEdJ57k5.net]
- そもそも処理が重いので可能なら使わない方が良い
- 343 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:17:11.69 ID:1Fa0uhaD.net]
- >>323
横から失礼。まったくの素人質問で申し訳ないのですけど 独自コントロールのテキストボックスってKeyDown命令を検知したりして 必要な処理を一つ一つ作っていくんですか? 慣れてきたら挑んでみたいけれど何をどこから調べればいいのかわからないので そのあたりの仕組みやヒントが学べそうなサイトや教本ってあります……?
- 344 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:21:41.75 ID:+BAvd4bn.net]
- >>330
初心者の範疇じゃない さらに言えば中級者の範疇でもない c# avalon editorでググればいい 単体でエディタを自作するのは愚かなこと Visual Studio Codeなどの拡張機能を作るのが正しい
- 345 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:26:00.33 ID:HRxiLrgz.net]
- オープンソースのコードエディタのソースを見れば参考になるかもね
言語は違うけどVSCodeやEclipseなど
- 346 名前:デフォルトの名無しさん [2018/09/01(土) 12:28:04.00 ID:RGySrVo/.net]
- メモリ解放の部分だけC++で作成して呼び出せないの?
どう呼び出してメモリのどの部分をどう開放させれるのかとか一切しらんけど
- 347 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:31:07.58 ID:nKX/MoF5.net]
- >>333
C++で.Netをオーバーライドとかなかなか無い発想だね
- 348 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 12:40:19.46 ID:HRxiLrgz.net]
- >>333
Roslynをフォークして自作してみてはどうだろう 未だにこうやって.NET(というかGC)のメモリ管理に不満を言う人が居なくならないということは 決定的なメモリ管理にはある程度の需要が確実にあるということ そういう人たちのヒーローになれるかもしれない それでパフォーマンスや生産性が上がると本当に実証されればMicrosoftからもアプローチがあるかも
- 349 名前:デフォルトの名無しさん [2018/09/01(土) 12:48:05.08 ID:c3Y0wsEI.net]
- >>330
超簡単に言うとWindowsならAPIのテキスト描画関係の 関数を使ってキーイベントを拾ってとかやっていく Win32APIでググれば参考になるサイトがいくつも出てくる 言うのは簡単だがやるのはもの凄く大変だけどね >>331 勉強にはなるけどね その通り中級者の範疇でもないから、かなり実力を付けとかないといけないな
- 350 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:06:24.02 ID:1Fa0uhaD.net]
- >>331
ありがとうございます! 初心者の範疇ではないとは薄々……! テキストエディタ特化のライブラリがあるんですね、先人は偉大だ…… 最終的には自分で使う用に物書き方面に特化した文章エディタを作りたいので先は長いです avalonエディタに触れてみながら参考になる部分はないか色々探ってみます! >>332 確かにC#で作られたものじゃなくても仕組みの理解に繋がりそうではありますね! 基礎の基礎は終えた今なら少しは中身を探れるかもしれないので 探して覗いてみます、ありがとう! >>336 なるほど、ググりながらよく分からないままに使っていた User32.Dllまわりの正
- 351 名前:フがそれなんですね……!?
ありがとうございます、勉強になります! 探ってみます! 色々できるようになりたい! [] - [ここ壊れてます]
- 352 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:14:14.49 ID:+st2vgph.net]
- gcがある言語ならgcにお任せするもんでは?
- 353 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 13:53:17.71 ID:c3Y0wsEI.net]
- >>337
Gdi32.dllもな
- 354 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:09:16.29 ID:P+AKCe3z.net]
- >>338
一応GCも自前管理もできる言語もあるらしいし 主流にはなってないみたいだから大多数は特に望んでないのだろうけど
- 355 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:32:33.00 ID:aEdJ57k5.net]
- ゲーム用途とかのリアルタイム処理向けGCに入れ替えできたら面白そう
- 356 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 14:39:09.32 ID:mjuKggTp.net]
- ゲームはそもそもリソース使用量決まってるんだからプレイ中にGC動いたりはしないよ
シーン切り替えと一緒に動かす程度だよ
- 357 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 17:48:39.66 ID:CnyU+b4T.net]
- LinuxのMono Developの使い方のついて、ここで聞いてもいいかな?
- 358 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 17:57:37.75 ID:lAVUzhE8.net]
- >>343
時代遅れのものは使わずVScode使って該当スレへ行ってください
- 359 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 13:14:32.35 ID:oOf4f4g2.net]
- >>343
さすがに今時そんな廃棄物は使うなとしか言えない LinuxならRider買うかVSCodeで我慢しなさい
- 360 名前:デフォルトの名無しさん [2018/09/03(月) 17:03:56.62 ID:dGDVASpD.net]
- websoketで大量データ受信しながら他の処理を非同期で遅延なく処理するには、別プロジェクトで共有メモリアクセスがいいか、単純に別スレッドでInvokeするのはどちらがいいでしょうか?
というより、王道な設計パティーンを教えて下さい。
- 361 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 17:27:25.38 ID:vcilZH89.net]
- >共有メモリアクセス
こういう発想がどこから出てくるのか?
- 362 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 17:29:17.86 ID:QhFCG6IW.net]
- >>346
王道な形はwebブラウザ
- 363 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 17:41:54.34 ID:ttVcJTrG.net]
- VSCode でも使っている、Electron とか
- 364 名前:デフォルトの名無しさん [2018/09/03(月) 18:08:25.48 ID:dGDVASpD.net]
- >>347
だめですか?
- 365 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 18:13:45.54 ID:9RGmKGyN.net]
- >>350
だめとかの前に具体的な形考えたうえで書いている?
- 366 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 18:17:15.88 ID:oOf4f4g2.net]
- 受け取った大量データを他の処理で使いたいってことか?
使うのが受け取りが完了してからでいいんだったら普通にファイルに書けばいい
- 367 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 18:24:29.32 ID:vcilZH89.net]
- >>350
共有メモリを使うと言うことは別のプロセスと通信すると言うことだね わざわざリソースを食う共有メモリを使って処理速度を遅くして何がしたいんだ?
- 368 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:07:52.86 ID:EUoYWljm.net]
- 前スレでシリアルポートの使い方を聞いた質問者か?
相変わらずズレた考え方してんな
- 369 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:29:03.44 ID:vcilZH89.net]
- 普通はプロセスごとにメモリが分離しててどちらかがおかしくなっても他に影響しないように作られてる
それを無理やりOSを使って通信してるのが共有メモリで実際は共有してない
- 370 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:33:07.93 ID:ACnp/Uoo.net]
- 別プロセスする必要なしと言えばいいのに
なんてひねくれた奴らだ
- 371 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:42:32.34 ID:NR0nQ5XR.net]
- >>356
ファイル連携で済むくらいにすっぱりと綺麗に分けられるなら分けるべき 共有メモリが必要になるような密な連携が必要なら本末転倒
- 372 名前:デフォルトの名無しさん [2018/09/03(月) 19:49:50.99 ID:lS5Tq6xt.net]
- 何が本で何が末やら全くわからん件
- 373 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 19:54:16.82 ID:NR0nQ5XR.net]
- 本: 目的の達成
末: プロセスの分割 本末転倒: プロセスの分割により目的の達成が逆に遠のいている状況
- 374 名前:デフォルトの名無しさん [2018/09/03(月) 19:58:46.45 ID:lS5Tq6xt.net]
- >>359
共有メモリが必要なら必要な事をしとるだけで遠のいとらんやろ 何を言いたいんやおまえは? []- [ここ壊れてます]
- 376 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 20:06:23.97 ID:BfF9DJB1.net]
- 答える気がないことだけは分かった。
じゃーなゴミクズども。 家族や先生以外とコミュニケーション取ろうとしてんじゃねえよ池沼クサレガイジが。
- 377 名前:デフォルトの名無しさん [2018/09/03(月) 20:21:12.20 ID:lS5Tq6xt.net]
- 答える気がないのではなく答える能力がないのだという事だけは知っておいて欲しい
決して悪気があるのではない、むしろ彼らは答える気に満ち溢れているのだ
|

|