[表示 : 全て 最新50 1-99 101- 2ch.scのread.cgiへ]
Update time : 09/16 21:53 / Filesize : 47 KB / Number-of Response : 142
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part152



1 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 19:44:16.81 ID:tgvUkE6r0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part151
https://mevius.5ch.net/test/read.cgi/tech/1621129559/
■関連スレ
C#, C♯, C#相談室 Part94
https://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/
・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

2 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 19:46:58.93 ID:tgvUkE6r0.net]
関連スレ
ふらっと C#,C♯,C#(議論用)
https://mevius.5ch.net/test/read.cgi/tech/1469538912/

3 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 00:07:36.45 ID:AHipKBXs0.net]
GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが
これをPictureBoxに直接ドラッグしてイメージを表示させたいです
※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています

これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0
それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。

もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが
できればコントロールにドラッグしたいです、よろしくおねがいします。

4 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 00:31:32.04 ID:AHipKBXs0.net]
>>3
返答なさそうなので相談室に移動しました
スレ汚しになってすみませんでした

5 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 00:59:39.49 ID:/hJaxIac0.net]
>>4
最近の5chはだいぶ過疎ってきてるし0時過ぎたらそうそうレス付かないぞ

6 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 02:24:35.26 ID:csEVwGb30.net]
画像を握ってるChrome自身が好き勝手できることに疑問はないが
ブラウザから他のアプリのコントロールにってなんかできる気がしないぜ

7 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 08:18:16.22 ID:Ew11Ba9+D.net]
そもそもC#なのかっていう

8 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 11:39:55.75 ID:hrRshf8H0.net]
>>6
Windows純正エクスプローラーとかってChromeからドロップされた画像をわざわざ再度ダウンロードしてるってこと?

9 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 12:12:30.13 ID:hrRshf8H0.net]
いやでもドロップされたURLからダウンロードし直す、って形だと例えばリファラー見てくるPixivの画像とか保存できないよな
でも出来るって事は何かしら画像データを直接貰う方法あるんだと思うけど、自分も気になってWinFormsでテストしてみたらそれらしきドロップ情報は見当たらない
DragImageBitsが一見そうっぽかったけど、これは元データではなくドラックドロップするときのサムネ画像だった

10 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 12:50:06.92 ID:csEVwGb30.net]
>>9
バカなん?
Chrome自身が表示するための画像持ってるんだから単にファイル保存してるだけだろ
そこに疑問があるの?



11 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 12:52:52.33 ID:csEVwGb30.net]
サムネイルがちっちゃかったらうんこみたいな画像表示されんじゃないの?

12 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:13:32.82 ID:hrRshf8H0.net]
>>10
???
Chrome → ExplorerへのドロップのみChrome側の特殊配慮でファイル保存してくれるって主張?
そういう事を言いたいんであればTablacs等の3rdパーティー製アプリでも同様の挙動してくれるから送り先ではなくドロップ先が何かしらの操作をしてるものだと思うんだが?

13 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:16:27.64 ID:PQRWg2pe0.net]
>>10
なんでそんな煽り口調なのか分からんけど
D&Dって実際に処理するのはドロップされた側なのよ
だからファイルとして保存するのはExplorerの仕事
Explorerからデータくれって言われてからデータを渡す遅延処理の仕組みはある

14 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:23:39.02 ID:hrRshf8H0.net]
>>13
Chrome以外のブラウザでも同じ挙動なのと、上で上げたようなExplorer以外のアプリでもDDからの直接保存を実装可能な点も考慮したら受け取る側が処理してるとみるのが普通だよな
ただWinFormsのドロップイベントからはそれらしき情報は見当たらないが

15 名前:デフォルトの名無しさん [2021/09/03(金) 13:24:19.97 ID:uY/kSVt6M.net]
>>12
お察しの通りChromeがローカルファイル保存してそのパスを伝える

16 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:28:26.22 ID:Bx5RA1Jba.net]
>>13
まあ公平に見て>>9は煽られてもしょうがないと思うw
D&DでURIをもらって〜、なんてありえないでしょう(笑)

受け渡しているのはChromeのキャッシュフォルダーの中の画像ファイルの
パスに決まってるよね普通に考えて。
しかし、Chromeがビットマップ自体のD&Dを提供してないのは
セキュリティー上の理由なのか単なる手抜きなのか、
何なんだろうね。

今のは知らんけどちょっと前のFireFoxとかだと普通に出来たけどな

17 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:30:30.90 ID:hrRshf8H0.net]
>>15
当然それも想定したけどWinFormsのドロップイベントからはローカルファイルパスらしき情報は見当たらなかった
FILEDESCRIPTORW構造体からcFileName読み取ったりとかまでしてみたけど

18 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:31:37.71 ID:hrRshf8H0.net]
>>16
だからURI貰って〜があり得ないっていうのは9で言ってるだろ
それだったらリファラー見て弾いてくるような画像は保存不可能なはずだからな
そしてキャッシュ渡しに関しては>>17

19 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:32:24.15 ID:Ew11Ba9+D.net]
ここまでC#の話題無し

20 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:33:32.91 ID:hrRshf8H0.net]
>>19
俺はずっとWinFormsのドロップイベントの話してるけどな



21 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:39:28.75 ID:Bx5RA1Jba.net]
>>18
そうですか。

まあそれはともかく、>>9が言うように、Chromeからエクスプローラに
画像をD&Dした時に何が行われているかについては
どこにも疑問の余地はないと思うけどね。

22 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:41:11.51 ID:Bx5RA1Jba.net]
>>21
失礼

× >>9が言うように
>>10が言うように

23 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:45:43.94 ID:hrRshf8H0.net]
>>22
12の俺のレスや>>13は間違ってるって主張?

24 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:47:28.12 ID:hrRshf8H0.net]
まぁキャッシュ渡しならキャッシュ渡しで良いからどうやってローカルパス取得出来るのか具体的に教えてもらいたいな

25 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:51:37.56 ID:pInph4TO0.net]
HTML から、OS のネイティブ内には、直接アクセスできない

つまりブラウザは、OSのAPI を使って、
ファイル保存ダイアログを呼ぶ事しかできない

ファイル保存ダイアログは、ユーザーが直接操作する事しかできない。
ブラウザが操作する事はできない

もし、HTML から自動的に操作できれば、ローカルPC 内をいじられてしまうから、
ユーザーの直接操作しか認めていない

26 名前:デフォルトの名無しさん [2021/09/03(金) 13:54:23.64 ID:uY/kSVt6M.net]
ググってすぐ出てくるこれじゃだめなん?
https://atmarkit.itmedia.co.jp/fdotnet/csharptips/003dragdrop/003dragdrop.html

27 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 13:58:47.79 ID:hrRshf8H0.net]
>>26
エクスプローラーからのドロップが直データではなくstring[]のファイルパス配列って事は当然知ってるからそれに習って模索してみた訳だが結果は>>17
まぁ見逃してるかもしれんから、キャッシュパス渡してる説唱えてるやつは是非とも具体的な取得方法を書いてもらいたいが

28 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:04:16.74 ID:hrRshf8H0.net]
>>25
ドラッグ操作はHTMLやjsによるものではなくブラウザの機能だからその説明はちょっと違うけどな
んでChromeって恐ろしい頻度でCreateFileやReadFile、WriteFile呼びまくってるからユーザーの許可なくファイル操作なんて日常茶飯事にやってることだし

29 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:05:19.33 ID:Bx5RA1Jba.net]
>>23
間違っているかどうかは知らない。
何を言ってるのかよく分からないから。

Chromeからエクスプローラに画像ファイルをD&Dした時にエクスプローラ側がもらう情報は
Chromeのキャッシュの画像ファイルのパスなのは疑問の余地がない。

エクスプローラはドロップ先のフォルダにその画像ファイルをコピーしてるだけ。

人の話聞かない人みたいだから繰り返すけど、重要なのは上記に「疑問の余地なんかない」ってこと。
だから疑問の余地なんかないと指摘してる>>10は正しいと言ってる。

30 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:07:19.94 ID:hrRshf8H0.net]
>>29
だーかーら、キャッシュパス説を唱えるなら具体的なパス取得方法書いてくれよ
ググってもんな情報出てこないからきっとスーパーハッカーのお前しか分からないっぽいのでぜひとも教えてくれ



31 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:09:42.64 ID:XfY3huhQ0.net]
MemoryStream読むっぽいよ
https://stackoverflow.com/questions/49695870/how-can-i-retrieve-the-drag-drop-data-from-chrome-like-windows-explorer-does

32 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:26:02.52 ID:hrRshf8H0.net]
>>31
GetFileContentNamesと同じようなことは既にやってて、FileGroupDescriptorWは単なるファイル名しか取得できずキャッシュパスは取得できなかったが
GetFileContentは試してみる価値ありそうだな
この方法だとしたらキャッシュからの取得ではなく画像データすっぱ抜くってことになりそうだが

33 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:32:35.52 ID:OHAz9Fu/0.net]
>>30
パスじゃなくてIDataObject
クリップボードで使ってるのと同じ
source側でIDataObjectを生成してDragEventArgsに入れてdestination側で受け取れるようにしてる

>>3
ブラウザによって対応フォーマットが違うので
IDataObjectのGetFormats()でアプリ別に対応フォーマットを確認して望ましいフォーマットの順に処理する

34 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:36:22.10 ID:hrRshf8H0.net]
>>33
やっぱりローカルファイル渡しではなくバイナリ渡しっぽいな
>>31を.NET5で試すとGetFileContentFromHGlobal内でリフレクション使ってローカルフィールドにアクセスするところで例外出るからhsource.dot.netでも見て調整しなきゃダメそうだが

35 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:38:46.60 ID:uM+QBK1w0.net]
>>20
WinFormsって.NET FrameworkのAPIだからC#の話題じゃないじゃん

36 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:42:28.10 ID:hrRshf8H0.net]
>>35
「C#固有の話題じゃないじゃん」なら100歩譲って分かるけどC#の話題ではあるだろ

37 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 14:51:03.62 ID:nIoBxviM0.net]
C#って何かしらのフレームワークと組み合わせで使われるのが普通だしな。
システムコールだけでWindowsのウィンドウ開くアプリ作れってか?

38 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 15:20:03.92 ID:hrRshf8H0.net]
完璧に出来たわ
>>31のAnswer内のコードを丸々コピペして、
private static MemoryStream GetFileContentFromHGlobalメソッド内の"GetDataFromHGLOBLAL"を"GetDataFromHGLOBAL"に修正すればちゃんとリフレクションでメソッド取得出来て画像データのMemoryStreamゲットできる
下らないタイプミスあって笑ったが素晴らしいアンサー

39 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 15:28:11.28 ID:uM+QBK1w0.net]
>>37
聞く場所が違うぞって誘導するだけでいいでしょ

40 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 15:34:48.16 ID:hrRshf8H0.net]
どうでもいいけどリフレクションで取得した動的メソッドもC#9の関数ポインタから問題なく呼べるんだな
>>38で言うと
var func = (delegate*<object, string, IntPtr, object>)getDataFromHGLOBLALMethod.MethodHandle.GetFunctionPointer();
として第一引数のobjectにインスタンス渡したら普通に画像ゲットできた



41 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 16:08:18.45 ID:pInph4TO0.net]
なるほど、キャッシュパス説か。
確かに、ブラウザは画像があると、それをキャッシュファイルに保存する

だから、2回目以降は、そこから再読み込みするのだろう。
それをブラウザ内のメモリに読み込んで、それをOS のAPI に渡すのだろう

42 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 16:11:37.35 ID:hrRshf8H0.net]
WndProcオーバーライドしてWMドロップ等からバッファ取得してUnmanagedMemoryStreamからImageに変換みたいなスマートな方法もありそうだな
そもそも自分発のお題ではないけどDDでブラウザから画像直接貰えるのは便利だからもっとスマートな実装模索してみる

43 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 16:13:13.44 ID:hrRshf8H0.net]
>>41
キャッシュ渡し説は完全論破されてるけどな
ブラウザが画像をどう読み込むかにおいてはキャッシュが利用されるのは当然だがそれはこの話とは関係ない

44 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 00:40:03.49 ID:7+pvijvQ0.net]
Outlook Drag and Drop

45 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 02:05:19.65 ID:SIvDzyYf0.net]
クリップボードはふしぎがいっぱい!

46 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 02:05:31.27 ID:3vx2GXJfa.net]
>>30
確かにキャッシュされたファイルのパスなんか提供されてないねw
今確認した。

偉そうな口をきいて失礼しました。

47 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 07:38:39.73 ID:xKc0OJDY0.net]
キャッシュかそうじゃないかが重要だったの?

48 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 09:05:57.74 ID:vIpBQxqx0.net]
>>47
別に画像取得さえできれば受け取りアプリ側からしたら何でもいいから重要ではないけど>>10みたいにドヤ顔で虚報広めてる奴いたからな
ただ不思議なのはなぜ標準のやり方ではFileContentsはnull返してくるんだろうか
IDataObjectが進化に追いつけてないってことなのか

49 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 11:14:26.78 ID:xKc0OJDY0.net]
>>48
>>10を書いたのは俺だけどキャッシュなんて一言も言ってないじゃん

50 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 11:21:14.12 ID:xKc0OJDY0.net]
なんか思い込みで無駄な苦労してない?



51 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 11:50:26.72 ID:+o/Xq3Mh0.net]
>>47
キャッシュかどうかが問題ではないが、ファイルかどうかは大事なところ

>>49
まあたしかに>>10ではファイルとしか言ってないな
それだと普通に考えればキャッシュか一時ファイルかになるだろうけど

キャッシュに決まってるだろって言いだしたのは>>16

52 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:08:37.25 ID:vIpBQxqx0.net]
>>49
別に俺はお前がキャッシュ渡しをしてると主張したなんて一言も言ってない
お前が虚報を言ってると言ったまで

53 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:08:51.84 ID:xKc0OJDY0.net]
>>51
じゃあ、君は間違っていたんだね?

54 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:11:22.19 ID:xKc0OJDY0.net]
>>52
キャッシュ重要なの?
ってレスに対して>>10を出して来たのは他ならぬ君のハズだけど
脳みそバグってない?

55 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:13:26.51 ID:vIpBQxqx0.net]
>>54
脳みそバグってるのはお前な
とにかく俺はお前が虚報を言ったとしか言ってないのは明確
んで実際にお前は間違っていた
Chromeがファイル保存をしているのではなくファイル保存をしているのはドロップ先のプロセスって結論出た訳だし

56 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:14:11.18 ID:xKc0OJDY0.net]
>>55
じゃあ、キャッシュと関係ないレスなんでしたの?w
バグってるだろw

57 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:17:58.67 ID:vIpBQxqx0.net]
>>56
どういうレスしようが5chなんてそれぞれの勝手だろ?
まぁそういう意味じゃお前が虚報を撒こうが勝手だけどそれを非難するのも俺の勝手だからな

主題で反論できないと分かるや論点ずらして小さい箇所で一点突破を目指すってまるでF爺にコテンパンにやられた西村博之みたいなカスだなお前

58 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:21:25.54 ID:xKc0OJDY0.net]
>>57
そうか、まあ、頑張れw

59 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 12:48:53.41 ID:f4vSDVRW0.net]
lets action begin.

60 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 18:13:14.95 ID:ZyOjgA390.net]
文字化けってほんとつらいっす
ありとあらゆるところに文字化けが潜んでて作業の邪魔する

ぐぐりまくって、バイト列に変換してから目的の文字コードに直す方法を習得したんだけど
これはもしかして万能な方法なんじゃないかと期待してるんだけど
まぁそのうち試してみよ・・・



61 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 20:14:30.44 ID:4fE9BStG0.net]
>>60
予め文字コードが分かってるなら何も難しい話は無いはずだけど、
色んなテキストファイル読み込んだり色んなHTML巡ったりしてて文字コードが不規則って事?

62 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 20:19:25.15 ID:4fE9BStG0.net]
>>57
半年くらい前にひろゆきがオブジェクト指向の説明をしようとして非OOPなただのMath系関数の説明し始めてて悲しかった
2ch開設者って言うからプログラミングの腕もそれなりだと思ったら初歩的な事も理解してないレベルだった

63 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 20:22:11.87 ID:HPILmW6y0.net]
あめぞうBBSに手を加えただけだし、
転送量危機の時だって本人は何もしてない

64 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 20:25:11.89 ID:osn6/XE+0.net]
>>62
ひろゆきはパクリこそ至高ってゆってるぞ
ソースなんてパクッってナンボ、ほんで文系

65 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 03:52:19.25 ID:2EeVeniH0.net]
>>61
今やってるのはメール受信ですわ
テストのために同じメーラーから同じ文章をgmailアカウントに送っているんだけど
なぜかアプリで受信したときの件名や本文とかの文字コードがUS-ASCIIになったりISO-2022-JPになったり。

ISO-2022-JPで送られてきたものをISO-2022-JPで変換すると、これまた文字化けすることに気づいて、対象の文字コードをまず取得して、それから変換しなきゃいけないと気づいてようやく今解決ですわ (解決したと思い込んでる段階

66 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 05:57:23.17 ID:oHh0g2FX0.net]
RFC読めよ

67 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 10:58:26.93 ID:n9DrSLdy0.net]
趣味ならRFC熟読するまでも無いだろ
そもそも文字化けでもないし
ちょっと検索すれば出てくるじゃん
https://atmarkit.itmedia.co.jp/ait/articles/0602/18/news009.html

68 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 11:56:27.38 ID:iGX/kvk70.net]
>>67
メール関連全く分からんけどヘッダのContent-Typeにcharset書かれてるならHttpClientみたいに自動エンコしてくれないん?

69 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 14:22:36.23 ID:ICYnYWWd0.net]
つかまあ7bitとかいいながらSHIFT_JISで送ってくるメーラーとかあるけどな

70 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 14:56:29.78 ID:oHh0g2FX0.net]
そういう解説には不十分なことしか書いてないからな



71 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 15:08:07.86 ID:2EeVeniH0.net]
おぢちゃんたち、ありがとうございます

これ>>67、わかりやすそうなのでいろいろ考えてみます
今日は疲れたのでまた明日にでも。
ずっと没頭してやってたんで、プログラム自体はいい感じに動くようになってきました

今回の文字コードの問題は再現性が低くてやっかいです
FromやToでこういう↓日本語交じりのアドレスを使ってテストしてると
ごちゃん株式会社<***@***.com>
ほんと、たま〜に「ごちゃん株式会社」の部分の文字がおかしくなる
連続してテストしても再現しないけど、時間置くとたまーに・・・
これきた、と思ってもう一度やると再現しない

もちっと勉強してきます

72 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 15:24:44.87 ID:7oSpDR4l0.net]
MIME-B や MIME-Q ってエンコードは知ってる?その仕様に合わないものが届いたりするってこと?

73 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 16:13:31.39 ID:n9DrSLdy0.net]
全く同じもの送りつけて再現しないならRFC以前の問題な気もするけど

74 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 16:31:42.66 ID:Lv/WyGL80.net]
>>71
馬鹿、ここは若い衆多いぞ
ちょっと目を離すとレスバトルだ

75 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 16:42:03.85 ID:gyzxPlwG0.net]
他の人が投げたメールを自分で作ったメールクライアントで受けると化けるものが
あるってい場合には、すべてに自動で対応するのは不可能に近いかな
みんながみんなちゃんとした完全なメールクライアントである保証(設定も含めて)は
ないから

自分で作ったメールクライアント同士で化けることがあるなら、基本は実装を
疑ってみる必要があるけど途中のメールサーバに問題があるとかないかな

本文は何かのエンコードでパック化しちゃえば問題起こらないだろうけど、
あて先とかSubjectはサーバ側でいじることも出来るので何か変えられて
いるとか・・・最近はそういうことないのかな

76 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 16:58:54.43 ID:69Mttc9X0.net]
Xamarinで他のタプページの値を取得しようとしてますが上手くいきません。

kadou.xamal.cs)

public sbyte Eigyou_kaisi => sbyte.Parse(eigyou_kaisi.Text);
public sbyte Eigyou_owari => sbyte.Parse(eigyou_owari.Text);

kihon.xaml.cs)

set_eikaisi = kadou.Eigyou_kaisi;
//営業時間の開始
set_eisyuryou = kadou.Eigyou_owari;
//営業時間の終了(時)

77 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:29:42.24 ID:VF4l5IWe0.net]
>>76
経過報告ありがとう。
引き続き調査よろしく。

78 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 19:09:17.61 ID:69Mttc9X0.net]
>>77
kadou k1 = new kadou();
set_eikaisi = k1.Eigyou_kaisi;
//営業時間の開始

のようにインスタンスを作成したらエラーが直りました。

79 名前:デフォルトの名無しさん [2021/09/06(月) 12:29:48.61 ID:742OrnqFd.net]
vs2017から2019移行してInstallerProjectをいれたところ
setupプロジェクトのビルドで失敗します
2017のときはエラー一覧に成功数とかでてたのですが
2019では何も出力されないのですが
ここにエラー出す方法ありますか?
ツール、オプションのビルド設定で出力の詳細を
かえてみたものの変わりありません

80 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 16:37:31.47 ID:PKsgHZNm0.net]
重いループ処理で「くるくる」を表示させたいのですが、上手くいきません。
ボタンを押したら、10秒以上固まったような状態になります。

try
{
cvLayer.IsVisible = true;
frLayer.IsVisible = true;
MyActivityIndicator.IsRunning = true;

//await Task.Run(() =>
//{
//長い処理を記述
do
{



81 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 16:48:37.32 ID:qiPyLsW90.net]
質問文がないようだが
あとそのコメントアウトは何

82 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 17:07:07.69 ID:PKsgHZNm0.net]
Xamarin.Formsで重い処理の待ち時間に「くるくる」を表示させたいだけです。

コメントアウトは特に関係ありません。

83 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 17:45:51.35 ID:u6Cpk6uR0.net]
Xamarin.Formsを使ったことないからアレだけど、根本的なところを間違ってるんじゃないかという予感
とりあえず、ちょっとググったら↓みたいなのは見つかる
https://blog.okazuki.jp/entry/2016/11/22/225735

84 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 18:04:59.48 ID:q0BBk2oV0.net]
貴方には人脈が足りないわ

85 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 20:38:43.31 ID:h/8uTFD00.net]
インスタンス作り忘れるレベルの初心者には協力してあげたいがそのコード例だけじゃエスパーしかできん
固まるって事はTask.Runがコメントアウトされてる通りに同期処理になってるって事じゃないの?
ボタン押す → そのままTask作らずdo whileしたらそのwhileから抜け出すまでフォームは固まる事になる

86 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 23:56:03.29 ID:PKsgHZNm0.net]
>>85
await Task.Delay(1);
をループ文の前に追加したら解決しました。

VBの「Do event」にあたる処理を追加したかっただけです。

87 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 08:59:43.99 ID:sURM7VfOM.net]
>>86
根本的に解決してないとおも

88 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 12:23:11.12 ID:sDLOmpYb0.net]
https://anderson02.com/cs/xamarin1/xamarin-34/
このサイトを参考にして「ボタン押す」→Do-while処理中にActivityIndicator IsRunning="True"で「くるくる」表示
ループを抜けたらActivityIndicator IsRunning="false"で「くるくる」非表示にしてるだけです。

アプリの見た目上は問題ないんですが、、、

89 名前:デフォルトの名無しさん [2021/09/07(火) 12:33:12.71 ID:sIBcULnDM.net]
フォームが固まる事を問題だと思っているんだろうよ

フォームは固めておいたほうが問題がない

90 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 12:48:57.09 ID:6F2EpZaw0.net]
フォームが固まったらくるくるも固まるから問題って事じゃなくて?
await Task.Delayを追加しただけで解決したってのもよく分からないけど、一回コード全部張ったほうが良いと思う



91 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 16:51:54.68 ID:wmVmTjL3a.net]
おかしいな…
IObservable<T>のSubscribeメソッドってラムダを受け取る拡張メソッドが見つからない
IObserver<T>を受け取るメソッドはあるっぽいんですが…
前からこんなんでしたっけ?

92 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 16:56:52.37 ID:wmVmTjL3a.net]
あ、書いた直後に自己解決しました
System名前空間にあるんですね
Rxチームのパッケージ配置センスなさすぎでは…?

93 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 18:30:10.85 ID:UHkOYZwyd.net]
質問です。
xamarinとC#でAndroidアプリを作成していて、ボタン押下でPCに構築したFTPサーバとテキストファイルの送受信をする機能を作ったのですが、ログインは成功していて、サーバへのファイル送信は出来ているのですが、androidへの受信時に下記2点の問題が発生しています
1.ファイル受信自体はできているが、受信時のコマンド"RETR"のものとは別に受信後にsocket.Receive処理を行った際に数分待ちが発生して、nullのExceptionが返されてエラーとなる。(ファイル受信時のsocket.Receiveの戻り値は"226 Transfer complete.")
2.上記1.の処理を削除してみると、サーバのテキストファイル内容の取得のために1ファイル受信する毎に"PASV"コマンドで戻ってきた"227"のIPアドレス・ポートでsocketを開く処理をしているのですが、そこで戻り値が"226 Transfer complete."になってしまい、IPアドレス・ポートが取得できずエラーとなる。(また、IPアドレス・ポートを取得してsocketを開ける場合もあるが、ファイル内容を取得できていて、writeで書き込まれているはずだが、受信したファイルに内容が反映されない。)
上記1か2の解決方法について何か心当たりがあればお教えいただけますでしょうか?

94 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 19:21:04.36 ID:j0rTxYM40.net]
FTPなんてめんどいもん使わずにHTTP使った方がいいでしょ

95 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 21:06:16.60 ID:LhM8pXBX0.net]
みんなFTPやめるらしいな
ここ十年使ってなかったから関係ないけど!

96 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 22:12:44.03 ID:MpjRQyyp0.net]
Gopher、Netnews、Archie、telnet等に続いてとうとうFTPも廃れてしまうのか

97 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 22:25:10.71 ID:AWFfXCnC0.net]
次はrloginかのう

98 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 23:21:11.05 ID:gxn3oe3G0.net]
ま、まだSFTPがあるっ

99 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 23:26:37.96 ID:gCpnrvIza.net]
個人的にはSMTP/POP/IMAPにはやく消えて欲しい
あれHTTPSじゃ駄目なんか?

100 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 23:39:20.61 ID:4IXSgzmq0.net]
IReadOnlyDictionaryじゃなくてIEnumerable<KeyValuePair>使うメリットってあるかな?
理屈の上ではIEnumerableの方が軽い? 実感は到底無理な範囲で



101 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 23:43:03.47 ID:gCpnrvIza.net]
勝手にソートされない

102 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 00:09:21.03 ID:A64Oz/xl0.net]
>>99
httpsじゃ代用できないだろ

103 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 00:24:34.32 ID:GfX6PsUoa.net]
>>102
そうなん?

104 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 00:48:12.46 ID:A64Oz/xl0.net]
>>103
httpsはメール転送プロトコルじゃないやん

105 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 01:25:39.53 ID:7cB9tBVG0.net]
>>101
そういえばそうね
自分でも気付いたけどIEnumerableならkey重複もいけるのか、というかそれが一番大きな違いか

106 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 06:19:06.89 ID:PnujWjIy0.net]
後対象が10個位しかない時とか

107 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 13:27:04.04 ID:2x+uyMAnM.net]
IEnumerable<int?>からint?へのキャストはどのように行うのでしょうか?
キャストの方法を調べても見つけられず、とても初歩的な質問で申しわけありませんが教えてください

108 名前:デフォルトの名無しさん [2021/09/10(金) 13:37:39.15 ID:LCboCW1+0.net]
Razor Pagesのチュートリアルをやってるんだけどさあ
Sqliteを使った時って、app.dbとかいうファイルが作られるけど、これどうやって中身を見れるの???
$ sqlite3 app.db
みたいにしたら、暗号化されてるかもしくはデータベースではないって言われてしまう
暗号化されてるとしても暗号化キーなんて知らんぞ・・・・

109 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 13:39:07.88 ID:A64Oz/xl0.net]
>>107
IEnumerable<int?>は複数のint?を持っているものなのにそれを一個のint?にキャスとしたいという状況が理解できないんだが

110 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 13:45:51.23 ID:2x+uyMAnM.net]
>>109
説明が足らずすいません

int? test = numbers.Select(x => x.orderNum)

このように複数の要素からひとつだけ抜き出して、それをint?にしたいと考えています



111 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 13:59:31.94 ID:k/euzmbNa.net]
orderNumはどこから来たんだ

112 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 14:02:03.49 ID:A64Oz/xl0.net]
>>110
int? test = numbers.Select(x => x.orderNum).FirstOrDefault();

113 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 14:11:18.49 ID:GfX6PsUoa.net]
>>108
GUIのフリーソフトでSQLite対応のやつあったと思うけど名前は忘れた

114 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 14:41:55.80 ID:fLqCHdah0.net]
>>110
勝手にorderNum番目の要素が欲しいと仮定して
int ? test = numbers.Skip( orderNum ).FirstOrDefault();

115 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:30:51.57 ID:GiqDbYXEa.net]
>>110
Selectって名前から連想して複数の要素の中から一つを選択するメソッドだと
思ったのかもしれないけどそうじゃない(そうだとしてもそのコードは奇妙に見えるけどw)

Selectは数学で言えば集合の要素に変換関数を適用して写像(別の集合)を作るメソッド。

LINQのチートシートみたい記事ないかなと思って今検索してみたら
書いてくれてる人がいっぱいいるみたいなので、そういうの読んで自分が求めているのは
どれなのかよく考えた方がいいと思う

116 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:42:10.90 ID:fLqCHdah0.net]
WhereとSelectはSQLに寄せた結果何だろうけど紛らわしいから
JavaScriptみたいにFilterとMapにして欲しかった

117 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:43:33.35 ID:RmQ4ECJ80.net]
>>110
IEnumerable<int?>はint?の複数形なのは理解してる?
つまり複数形を単数にキャストしたいと言われても複数あるうちのどれ?ってなる
んで具体的なコードまで書いてもらいたいならnumbersの型まで書いいたほうが良い
orderNumがメンバ要素なのかインデックス変数なのかでみんな混乱してる

メンバってことで先頭が欲しいなら>>112でもいいしnumbers.FirstOrDefault()?.orderNum;の方がスマートかもしれない

118 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 16:48:56.98 ID:RmQ4ECJ80.net]
Selectを最初に当たった要素抜き出しと勘違いしてるのか

119 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 18:34:13.47 ID:LP/p1r6F0.net]
遅くなってすいません。
皆さんがおっしゃる通り、Selectの挙動が理解出来ていないまま使っていました。

EFでデータベースとやり取りをしており、numbersはテーブルを表し、
orderNumはその中のひとつのカラムです。
情報も不足していてすいません。
このテーブルにはひとつのレコードしかなく(numbers[0]の意味) Selectすれば要素を取得出来るだろうと考えていました。

120 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 18:43:21.63 ID:3/k8+9750.net]
>>93
コントロールコネクションとデータコネクション処理の区分けしていない、どんな
順番で実行しているかも分からないのでどこがおかしいとか言うのは無理かな
プロトコルの実装はシーケンスが見えないとアドバイスのしようがないよ

1.は単純にいえば確保したバッファのサイズを越えて読み込もうとしているか、
グルグルReciveでバッファの割り当て忘れているかだと思うけど

2.で1.を削るっていうのが何の処理を削ったのかよく分からないけど、PASVで
「226」は返ってこないはずなので、サーバがおかしいのでなければコントロール
コネクションの制御が間違っていて他のコマンドのレスポンスを見ているか、
以前のコマンドのレスポンスを見ているのではないかな



121 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 19:06:41.45 ID:cGWG4Dd90.net]
>>119
ならnumbers[0].orderNumでいいんじゃないのか

122 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 21:46:29.33 ID:EWGbhKdq0.net]
https://www.c-sharpcorner.com/article/using-oxyplot-with-xamarin-forms/
上記サイトを参考にグラフを表示させたんだが、背景が黒になってしまうので白にしたい。
どうすればいいでしょうか?

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="xamarin.com/schemas/2014/forms"
xmlns:x="schemas.microsoft.com/winfx/2009/xaml"
x:Class="testxamarin2.Pages.Gurafu2"
xmlns:oxy="clr-namespace:OxyPlot.Xamarin.Forms;assembly=OxyPlot.Xamarin.Forms" xmlns:local="clr-namespace:testxamarin2.Pages">


<ContentPage.BindingContext>
<local:OxyExData />
</ContentPage.BindingContext>

<oxy:PlotView Model="{Binding PieModel}" />

</ContentPage>

123 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 22:40:03.53 ID:us9/OBHL0.net]
C#スレです。

124 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 00:52:24.21 ID:gPJd3kYI0.net]
ひょっとしてダークモード使ってるなんてことはない?

125 名前:デフォルトの名無しさん [2021/09/11(土) 11:05:16.93 ID:svdFBuj80.net]
>>123
C#だろ

126 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 14:33:08.39 ID:7wmXh2qC0.net]
正解はXamarinスレへじゃないかw

Microsoft Xamarin part8 [.NET MAUI]
https://mevius.5ch.net/test/read.cgi/tech/1627778316/

127 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 18:25:58.13 ID:E5TnD1wu0.net]
データ集計用にSystem.Windows.Forms.DataVisualization.Charting.Chartを使ってグラフを描画して画像保存をやっています。
特定のX軸のグラフのプロット座標をスクリーン座標かクライアント座標として得たいのですが、何か方法はあるでしょうか。
目的はグラフのY軸のピーク値とかのプロット地点の横に注釈を入れることです。
ChartオブジェクトのPostPaintイベントを追加してSystem.Drawing等でChartコントロール上に描画はできることは確認できていますが、
描画するにもグラフの各座標が判らなくて困ってます。

128 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 19:00:31.83 ID:E5TnD1wu0.net]
ValueToPixelPositionでできました。
Chartは情報が中々得難いですね。
Excelのグラフのがよかったかな。

129 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 19:09:47.10 ID:Sf7FbZfWa.net]
>>128
今それを書こうと思ってた
まあチャートなんか使ったことないんだけどねw

佐藤さんて人がchmを作ってくれてるよ。
それを見たら1分でそれにたどり着いた
www.kanazawa-net.ne.jp/~pmansato/

130 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 20:53:38.53 ID:E5TnD1wu0.net]
>>129
貴重な情報源ですね。ありがとうございます。



131 名前:デフォルトの名無しさん [2021/09/11(土) 21:52:55.11 ID:8euuf7tr0.net]
Visual Studio 2019でC#の単体テストのプロジェクトを新規作成する場合、
MSTest
NUnit
xUnit
と三つあるのですが、どれがお勧めですか?
最も一般的なのを教えてほしいです。

ちなみに、OSはWindows 10で、.NET Coreを使い、
GUIを用いないデスクトップ・アプリケーションのテストをしたいです。

132 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 22:02:13.98 ID:xnT6+evKa.net]
MSTest以外

133 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 22:21:42.85 ID:8euuf7tr0.net]
>>132
では、xUnitにしてみます。
ありがとうございました。

134 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 01:25:28.31 ID:YP1Us53j0.net]
単体テストで使うAssert()などのコードは、
バージョン管理ツールで保存するときは一緒に保存しますか?
単体テストで使うコードは本番環境にも入れたままにするのですか?

135 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 01:45:24.08 ID:BObvHHa10.net]
if(debugger.isattached)debugger.break();

みたいにやればデバッガとつながってるときだけ止まるので入れておいても害はない

136 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 02:21:57.32 ID:Amlrkkbp0.net]
>>134
バージョン管理するのは当然
単体テストはプロジェクトを分けるだろうから、本番環境にデプロイされることはない

137 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 01:15:18.28 ID:KiAri4wH0.net]
>>135-136
ありがとうございます。
デバッガーに繋がっているときだけ止めれるので入れておいても害はないけど、
プロジェクトを分ける場合は本番環境には入れないんですね。

138 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 08:11:11.63 ID:l6vfv8u30.net]
先生 インスタンスメンバーにアクセスしないメソッドはstaticにマークしたほうがいいんですか?う゛ぃじゅあるすたじお先生がそう言ってるんですけど

139 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 08:31:28.52 ID:1kK4YF2S0.net]
設計が悪いと、遠回しに言われてるんじゃないか

140 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 12:32:37.57 ID:f8nFECPPa.net]
>>138
むしろ「それ」をあえてインスタンスメソッドにする必要があるのか、
と考えるべきだろうね。

普通はないはずだと思うけどあると確信できるなら別にいいんじゃないの?
普通はないはずだと思うけどねw



141 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 13:41:21.65 ID:l6vfv8u30.net]
>>139
>>140
わかりました先生!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<47KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef