1 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 00:34:49.34 ID:2YnnBC7F.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part121 echo.2ch.net/test/read.cgi/tech/1465958068/ ■関連スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467142749/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
859 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:29:19.00 ID:0mFWMzps.net] >>843 「主語」の定義が何か考えろ プログラミングやる前に小学校の国語からやり直せ
860 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:30:18.84 ID:uyw/q1V9.net] 2chのform部分のhtmlソース見てみようぜ 簡単にするとこうなる <form method="POST" accept-charset="Shift_JIS" action="echo.2ch.net/test/bbs.cgi"> <input type="submit" value="書き込む" name="submit"> 名前:<input name="FROM"> E-mail:<input name="mail"> <textarea name="MESSAGE"></textarea> <input type="hidden" name="bbs" value="tech"> <input type="hidden" name="key" value="1468078489"> <input type="hidden" name="time" value="1469805944"> </form>
861 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:31:36.37 ID:ukjq/gdc.net] >>845 主語がないではなくて主語が明確ではないという表現が正しいな
862 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:31:48.97 ID:crIAC8Sk.net] >>845 ひとまず、「フォームを、フォームが」の前に、「ウェブサイト」が何かの認識が足りない気がするのね。
863 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:33:24.43 ID:0mFWMzps.net] >>847 だからお前の言う「主語」の定義が間違ってるから勉強し直せ
864 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:34:47.38 ID:uyw/q1V9.net] 1行目から解説していくよ POSTメソッド、文字コードはSJISでecho.2ch.net/test/bbs.cgi に以下のデータを送ります このボタンが押されたら書き込みます 名前のテキストボックス メールのメキストボックス 本文のテキストボックス tech板に書き込みます 1468078489スレに書き込みます 時間は1469805944です(1でもOK) name=valueをエンコードしてデータを送信する
865 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:35:56.93 ID:uyw/q1V9.net] APS.NETの前にHTMLの弁ようして来い
866 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:36:39.81 ID:ukjq/gdc.net] >>846 <input type="submit" value="書き込む" name="submit"> submitがだぶってる気がするんですけどこれはどういうことですか? おそらくこれボタンの事でしょうけど… 後 action="echo.2ch.net/test/bbs.cgi"; ここはURLではなくてactionでいいんでしょうか? 分からない事だらけでなかなかPOSTのC#による実現は難しいな
867 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:38:36.01 ID:uyw/q1V9.net] >>852 C#関係ないから いいからHTMLの勉強しろ C#はそのあとだ!
868 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:39:18.98 ID:6YLFMraq.net] >>852 スレチ Web制作板にでも行ってこい
869 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:40:06.40 ID:ukjq/gdc.net] >>853 関係あるだろうが htmlの動作をc#を対応させてんだよ
870 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:40:40.51 ID:uyw/q1V9.net] >>852 typeって言うのは種類 テキストボックスとかコンボボックスとか送信ボタンとか で、type=submitは送信ボタンですよって意味 nameはデータの名前 name=valueで鯖にデータが送信されるから今回は submit=書き込み と鯖に送信される
871 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:42:19.44 ID:6YLFMraq.net] >>855 主語(笑)といい、てにをはといい…
872 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:43:36.39 ID:uyw/q1V9.net] >>855 何偉そうに言ってんだよ無知 わざわざ解説してやってんのに いいから黙ってHTMLスレに行ってこい 今はC#は関係ない 今のお前は包丁使えないのに料理店開きたいって言ってるようなもんだぞ
873 名前:デフォルトの名無しさん [2016/07/30(土) 00:45:30.99 ID:ukjq/gdc.net] >>850 文字コートってのもよくわからないんだけどこっちはS-JISのつもりで送ったってことは S-JISのコードを送るってことですよね?なら文字コードだけ渡されてもS-JISかどうかは判別できないんじゃないでしょうか?
874 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:46:22.28 ID:6YLFMraq.net] >>859 スレチ
875 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:49:54.74 ID:WsjdSta8.net] >>859 文字コートってのはhtmlに埋め込まれたS-JISとかの領域のことだから送られてきたらそこに文字を書き込めるようになってるんだよね だから判別しなくても大丈夫になってる
876 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:50:20.58 ID:crIAC8Sk.net] そもそもASP.NETだっしょ。ASPでC#ならまーね。 >>820 これに主語をたそう。 私(ウェブブラウザー)がリクエスト(お願い)するのは、送るデータの種類として「ウェブのフォームで使われる情報です(urlエンコード済みです)」 req≒リクエスト(お願い)するのは ContentType≒送るデータの種類として、 application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです) ここで言う「私」というのが、ウェブブラウザで表示しているページのことです。
877 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:51:16.35 ID:crIAC8Sk.net] まー、言いたくなかったが、釣だろ(笑)
878 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:53:09.67 ID:uyw/q1V9.net] 文字コート
879 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:53:35.54 ID:uyw/q1V9.net] これは釣りだわ 真面目に相手しなけりゃよかったわ
880 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:55:09.75 ID:6YLFMraq.net] >>862 あいつ、主語と修飾語の区別ついてないからwww
881 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:56:14.77 ID:yLsVqD35.net] >>865 お前は愛に溢れすぎ
882 名前:デフォルトの名無しさん [2016/07/30(土) 00:57:56.56 ID:ukjq/gdc.net] >>861 S-JISで解釈できる領域への通知なんですね、分かりました
883 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:08:16.57 ID:ukjq/gdc.net] >>862 なんとなく分かるよ それをブラウザの代わりにC#にやらせるんだよね? ContentType≒送るデータの種類として、 application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです) ここがちょっとわかりくいね そもそもウェブのフォームで使われる情報をって当たり前の事では? これらのデータを送るから処理して下さいという意味なのに、種類もくそもあるの?という疑問が湧きました どうぞ
884 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:11:11.88 ID:6YLFMraq.net] >>869 スレチ
885 名前:デフォルトの名無しさん [2016/07/30(土) 01:14:33.94 ID:ukjq/gdc.net] >>870 スレチ厨はもういいよ 寝たら?
886 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:16:22.02 ID:crIAC8Sk.net] >>869 どうぞ、釣りは失せろでございますわよ。
887 名前:デフォルトの名無しさん [2016/07/30(土) 01:20:32.96 ID:ukjq/gdc.net] >>872 釣りじゃないんですよ 送るデータの種類=application/x-www-form-urlencodedってことは もしかして区分があるってことですか? 例えばテキストボックスの情報はA群、ボタンを押したという通知はB群みたいなことなんでしょうか?
888 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:22:18.00 ID:6YLFMraq.net] >>873 HTMLはスレチ
889 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:23:23.88 ID:ukjq/gdc.net] >>874 そんな器用な分別ができてたらこんな初心者スレで聞かねーよ もう色んな事がごっちゃになってるんだからここで聞かせろ
890 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:29:46.30 ID:crIAC8Sk.net] >>873 >>875 >>1 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
891 名前:デフォルトの名無しさん [2016/07/30(土) 01:31:57.96 ID:ukjq/gdc.net] 俺の勘違いか application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです) htmlにはフォーム以外の部分があって、その区分もまた別にあるんですね 俺が言ってたのはフォームの中でのさらに小さい区分でしたね、そういうことではない ですよね?
892 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:37:01.32 ID:6YLFMraq.net] >>877 Web制作 echo.2ch.net/h
893 名前:p/ [] [ここ壊れてます]
894 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:38:45.00 ID:ukjq/gdc.net] >>878 粘着してまで書き込みしたい??? 寝ろよ
895 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:40:14.97 ID:WsjdSta8.net] >>877 htmlの中のformがurlエンコードされたものですよって教えるためのものだよ 他の部分は関係ない
896 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:45:56.67 ID:crIAC8Sk.net] >>878 はC#のプログラムは作ったことが有って、今後のためにASP.NET覚えたいと思って、 サンプルのサイトを見てるけど、意味がわからないってこと? それなら、今見ているサイトのアドレス晒して。
897 名前:デフォルトの名無しさん [2016/07/30(土) 01:49:42.31 ID:ukjq/gdc.net] >>880 formがurlエンコード、こういう分かりにくい表現は好きじゃないな formの情報がURLとしてエンコードされますよってことだから URLなんて書いちゃったらホームページのURLとこんがらがるでしょ 説明のときはもっと分かりやすく!
898 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:52:48.60 ID:crIAC8Sk.net] >>882 釣りマジで失せろでございますよ。 「説明のときはもっと分かりやすく! 」? 何様のつもりだテメエ失せろやボケがでございますよ。
899 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:53:31.20 ID:ukjq/gdc.net] application/x-www-form-urlencodedは こういう感じでエンコードしましたよっていいつつそれが識別子にもなってるってパターンですよ ようは「この愛の歌をみんなに届けたい〜」とかいいつつそれ自体がラブソングの 歌詞みたいな事でしょ?秀逸なたとえ このスレの人はね、色々知ってるんだろうけど用語をもっとさかみ砕くなり 分かりやすさ重視で教えてあげないと伝わらんと思うよ?
900 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:56:18.85 ID:crIAC8Sk.net] I Banned.
901 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:57:06.31 ID:ukjq/gdc.net] >>881 ASP.NETの話なんてしてないでしょ…
902 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:01:39.03 ID:ukjq/gdc.net] >>883 釣りならこんな勘違いの連続をしない 最終的には理解できたんだから
903 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:10:12.43 ID:6YLFMraq.net] >>887 予備知識としてHTMLの理解が必要 Web制作 echo.2ch.net/hp/
904 名前:デフォルトの名無しさん [2016/07/30(土) 02:20:35.83 ID:ukjq/gdc.net] コピペしたら動くんだろうけど俺にとっては深い理解が大変 dobon.net/vb/dotnet/internet/webrequestpost.html Streamっていうのがどうなってるのかがよくわからないな //送信するデータを書き込む reqStream.Write(postDataBytes, 0, postDataBytes.Length); ってことでURLエンコードした文字列を送るコードだけど さっきのreqはどこいった?reqもストリームに乗せなくて大丈夫? でそのコードはどこだ…
905 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:21:35.08 ID:ukjq/gdc.net] >>888 そんな器用に分けられないからもうここでいいだろ そんな器用に分かるような人間なら最初から理解してるっつの しつこいなお前は
906 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:22:44.26 ID:crIAC8Sk.net] >>887 >最終的には理解できたんだから おめでとう。 >>884 >ようは「この愛の歌をみんなに届けたい〜」とかいいつつそれ自体がラブソングの >歌詞みたいな事でしょ?秀逸なたとえ おめでたい。
907 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:23:42.69 ID:ukjq/gdc.net] 後はreqStream.Write(postDataBytes, 0, postDataBytes.Length); だとストリームに書き込んだだけで、送ってはいないよね? ストリームというのは通路とか情報を送るトンネルみたいなイメージだけど そのトンネルに情報を置く=writeするだけで もう動くの?スイッチみたいなことが必要な気がするんだけど…
908 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:28:52.99 ID:ukjq/gdc.net] reqStream.Write(postDataBytes, 0, postDataBytes.Length); reqStream.Close(); しかも次の瞬間Closeしてる… 情報がちゃんと送られてからCloseしないとダメでは? という疑問が湧いた。 コード自体は紛れもないエラーも何もないコードだけど 動作の仕組みが分からないからコードを見て考えると疑問がいくらでもわいてくる Streamというのがどんな動作をする機能なのか俺には分からない それを一つずつ教えてほしい 知識より考え方のほうが大切だから、それをみんなにもわかって欲しい
909 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:33:08.25 ID:ukjq/gdc.net] 俺はいま躓いてるのは Streamね、Streamが流れという概念のある機能だと漠然とした認識ではダメだ C#ではStreamがどういう動作をするのか、それを追及しないとコードを理解できない というわけで何故Streamのコードが動くのか説明してください誰か
910 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:34:29.62 ID:ukjq/gdc.net] 今までコピペプログラマだったからこういう深い理解が必要なんですよ コピペして動くじゃダメなんです、そのからくりやら仕組みをちゃんと理解しないとダメ
911 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:35:31.89 ID:ukjq/gdc.net] C言語のStreamとC#のStreamは恐らく違うだろうからまずそこからかな
912 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:36:08.56 ID:ukjq/gdc.net] 皆さん答えて下さいよ、今僕以外に質問してる人はいないんだから迷惑ではないはずです 誰もいない深夜に集中して質問してるんです、これは迷惑ではないですよね?
913 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:37:26.37 ID:ukjq/gdc.net] 少なくとも俺と同じ疑問を持つだろうなって思う人もいると思うので有益だとは思います Streamについて詳しく教えて下さい、ちゃんと返答もします
914 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:40:09.16 ID:WsjdSta8.net] >>893 Closeするときに送信する処理が行われてるんだね 簡単だね
915 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:41:42.81 ID:ukjq/gdc.net] >>899 Closeの中身を見れば分かるってことですか? どうなってるか教えて下さい どういうメソッドがあるんでしょう?
916 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:43:34.60 ID:ukjq/gdc.net] コードを見ただけで流れが分かるというメリットを考えたら Closeの中に書く意味とかあります? 可読性ではなくて、物語性というか…
917 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:45:37.77 ID:tQhYyiEg.net] ID:ukjq/gdc もうあんたのレスは俺にしか見えてないよ… そして俺からも…さようなら
918 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:48:23.16 ID:6YLFMraq.net] >>899 キチガイに触んなすな
919 名前:デフォルトの名無しさん [2016/07/30(土) 02:53:02.00 ID:ukjq/gdc.net] >>903 たった一行のレスを何レスにもわたって延々としてるあなたのほうがキチガイだと思いますが… あなたも質問したいならすれば?そうして空気が変われば俺は身を引きますよ 答えてくれる人がいるから質問してるんです、たった一行をずっとなんて空しい行為はやめなさい
920 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:55:38.70 ID:ukjq/gdc.net] これ Streamっていうのがどうなってるのかがよくわからないな //送信するデータを書き込む reqStream.Write(postDataBytes, 0, postDataBytes.Length); ってことでURLエンコードした文字列を送るコードだけど さっきのreqはどこいった?reqもストリームに乗せなくて大丈夫? でそのコードはどこだ… この疑問は結構素朴だと思うんですけど、こういう質問は何がいけないんでしょう? ストリームは最後のトンネル、そのトンネルにreqがいないのは何故? その仕組みが分からないという事です、おかしいですか?
921 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:01:14.64 ID:crIAC8Sk.net] >>知識より考え方のほうが大切だから、それをみんなにもわかって欲しい 御託より調べようと手を動かすほうが大切だから、それをID:ukjq/gdcにもわかって欲しい プログラムは主に英語という言語がベースになっています。C#もそうです。 Streamが道だと思っていたことこそが、あなたの知識量云々より、【あなたのプログラムへの取り組み姿勢】に問題が有ることの現れです。 私が小学生の頃にプログラムを始めた時に、意味のわからないことは辞書で調べましたよ。参考のプログラムを実際に実行させましたよ。 Streamは道じゃありません。【流れ】です。これは英語の辞書を引けば分かります。
922 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:03:54.83 ID:crIAC8Sk.net] reqStream.write リクエスを送る流れに書き込む。 これでデータが送られないと思う理由が分からなん。 御託はいいからアドレス晒してよ。
923 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:05:06.31 ID:0RZw9HDW.net] 釣りじゃないなら 一度メンタルの病院行った方が良いんじゃないかな 割と本気で
924 名前:デフォルトの名無しさん [2016/07/30(土) 03:10:04.37 ID:6eJMfqp8.net] 釣りに決まってんだろm9
925 名前:デフォルトの名無しさん [2016/07/30(土) 03:11:48.37 ID:ukjq/gdc.net] >>908 釣りと思う理由は?
926 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:13:58.90 ID:crIAC8Sk.net] >>909 こいつ「ID:ukjq/gdc」が「釣れてると思って喜んでる」のを「あや釣る」のも面白いんだよwww
927 名前:デフォルトの名無しさん [2016/07/30(土) 03:17:44.12 ID:ukjq/gdc.net] >>899 の人はCloseで送信処理している!と言っていて >>907 ではWriteで送信処理まで終わっているといってますね 意見が分かれちゃった、この時点で有意義な質問だったと思えますが…
928 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:20:32.60 ID:crIAC8Sk.net] >>912 送信処理まで終わっているといってますね どこに?
929 名前:デフォルトの名無しさん [2016/07/30(土) 03:22:02.11 ID:ukjq/gdc.net] >>913 reqStream.write リクエスを送る流れに書き込む。 これでデータが送られないと思う理由が分からなん。
930 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:28:13.89 ID:crIAC8Sk.net] >>914 >「リクエスを送る流れ」に「書き込む」。 >これで「データが送られないと思う理由」が分からん。 あなたの認識が正しいなら、 「データが送られない」=「送信処理まで終わっている」? 日本語のお勉強をし直しては。
931 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:41:03.36 ID:ukjq/gdc.net] System.IO.Stream reqStream = req.GetRequestStream(); なんだrequest用のストリームか、ここでreq仕様にしてるのか
932 名前:デフォルトの名無しさん [2016/07/30(土) 03:42:07.56 ID:ukjq/gdc.net] >>915 だから送られるタイミングですよ あなたの言い方だとWriteした時点で送信されるみたいに捉えられますよ
933 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:53:53.45 ID:crIAC8Sk.net] あなたの言い方だとWriteした時点で送信されるみたいに捉えられますよ >「だから送られるタイミングですよ」 >「送信されるみたいに捉えられますよ」 どこらへんでそう捉えたの? 「だから送られるタイミングですよ」 これはあなたが今しがた(今も?)疑問に思っていたことって意味ですか?
934 名前:デフォルトの名無しさん [2016/07/30(土) 04:02:28.99 ID:ukjq/gdc.net] だめだこの人 揚げ足取ることしか考えてないね こっちは単にStreamの疑問知りたいだけなのにさ… なんか残念です、まー>>899 が正解ってことならそれでいいです
935 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 04:02:46.60 ID:4BSXkGIU.net] すんゲー伸びてると思ったらまた例の人かよ C#に関係ない質問を延々と続けられると迷惑 もう次スレのテンプレに触るなって書いたほうがいいな
936 名前:デフォルトの名無しさん [2016/07/30(土) 04:54:15.58 ID:mo3DDFsV.net] >>827 Cに関しては本当にそうなんでしょうね。 Cを本格的に学ぼうとするとそら大変なんでしょうけど プログラミングの仕組みを理解する上では つまり浅い段階の理解についてはC関連のものが分かりやすかったもんで C#は逆に海外のサイトとかの方がわかりやすいかもですた とりあえず形になるよう頑張ります
937 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 04:54:55.79 ID:crIAC8Sk.net] >>919 >こっちは単にStreamの疑問知りたいだけなのにさ… じゃあ、お望み通り正しく説明します。 1.Streamというのは流れという意味の単語です。 2.RequestStreamというのは「リクエストが流れる」ものです。 3.RequestStreamのインスタンスにリクエストを書き込むにはWriteメソッドを呼び出します。 4.Writeメソッドが呼び出されたからといって、即座にリクエストが流れるとは限りません。 5.ただし、リクエストが即座に流れることも有ります。 5-1.即座に流れる場合は、RequestStreamのバッファー領域がリクエストする情報より小さい時です。 5-2.加えて、RequestStreamのAutoFlush(自動洗浄)が有効な場合です。 6.プログラマーは、任意のタイミングでRequestStreamをFlushして、随時リクエストを送信を促すことも可能です。 6-1.多くの場合はFlushするとリクエストは即座に送信されます。 6-2.しかし、RequestStreamの実装の如何によって、即座に送信されないこともあります 6-3.これはRequestStreamを実装した側の都合によって、適切に無視することが許されているからです。 6-4.故に、このFlushを用いてリクエストが今送信されたかどうかをプログラマーが気にすることは愚かです。 7.RequesStreamは、リクエストストリームをこれ以上使用しなくて良い段階に来た際には、Closeメソッドを呼び出す必要があります。 7-1.Closeメソッドを呼び出した際にバッファーが空でなかった場合の挙動は、言語やその言語のジャージョンによって異なります。 7-2.例えば、(黎明期のJavaなどは)Flushしていないデータが欠落することなどもあり得たわけです。 7-3.ただし、C#であればCloseをすれば問題なくリクエストの送信は開始され、やがて終了します。 7-4.故に、このCloseを用いればWriteしたタイミングでリクエストが流れているかいないのか、はたまた Flushしたタイミングでリクエストが流れているのかいないのか、 気にしなくとも良いのです。 7-5.但し、膨大なリクエストを逐次的に長い期間にかけて渡さなければならないような場合には、 Flushを行いながら処理を行っていく必要があります。
938 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 04:59:45.17 ID:crIAC8Sk.net] >>922 「ID:ukjq/gdc」と「ID:mo3DDFsV」の質問は向こう1日間は受け付けません。 質問する前に、一旦落ち着いて整理して下さい。その後縁があって質問があれば、回答を行います。
939 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 07:44:01.40 ID:SD9Rxi9F.net] >>825 自分から勉強しようと思う気持ちがないと続かないよ 別にプログラマーに限ったことじゃないけど
940 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 08:40:01.82 ID:RyCiYMxC.net] dobon.net/vb/dotnet/internet/webrequestpost.html は、もう新規の人には紹介しない方が良いのでは。 HttpWebRequestは古臭い仕様で面倒臭い。 今から覚えるのなら、便利で分かりやすいHttpClientの方が良いだろう。
941 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 08:41:01.11 ID:RyCiYMxC.net] .NET TIPS: HttpClientクラスでWebページを取得するには?[C#、VB] www.atmarkit.co.jp/ait/articles/1501/06/news086.html
942 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 09:03:14.71 ID:RyCiYMxC.net] しまった、>>926 はPOSTしてないから適切じゃなかった。 HttpClientは、まだ解説がしてるところが少ないのが難点だね。特に日本語の。 Web API よりも HttpClient に注目したい(しばやん雑記) blog.shibayan.jp/entry/20120822/1345563275
943 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 10:31:45.32 ID:uyw/q1V9.net] おはよう >>919 本当に釣りじゃないんだな? それならとりあえずここに来い 俺がここで相手してやるから echo.2ch.net/test/read.cgi/hp/1468250963/ APS.NETの前にHTTP、HTMLの基本を覚えた方がいい
944 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 11:17:49.72 ID:ukjq/gdc.net] 仕事(プログラマではない)でWireshark使ってるんでパケットの流れには興味あるんです 釣りでは決してありません >>922 詳しいレスありがとうございます。 5.ただし、リクエストが即座に流れることも有ります。 5-1.即座に流れる場合は、RequestStreamのバッファー領域がリクエストする情報より小さい時です。 5-2.加えて、RequestStreamのAutoFlush(自動洗浄)が有効な場合です。 でもなぜこんな詳細に分かるのかというか、どういう本読めば分かるんですか? 6.プログラマーは、任意のタイミングでRequestStreamをFlushして、随時リクエストを送信を促すことも可能です。 とめてから一気に送るみたいな安全なコードもかけるんですね、でしたらそのコードみてみたい 故に、このFlushを用いてリクエストが今送信されたかどうかをプログラマーが気にすることは愚かです。 ???????? 知りたい場合は?
945 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 11:18:22.50 ID:ukjq/gdc.net] >>928 もうHTMLの話はしない
946 名前:デフォルトの名無しさん [2016/07/30(土) 11:28:06.60 ID:xUJaRIFl.net] C#を取り扱っている先輩方、ご質問があります。 今、SQLserverのDBを用いてコーディングしています。その時に、双方向にそれぞれのリストを持たせた場合、 多対多の関係になると学びました。また、そのコードを記述し動かすと自動で中間テーブルを作り、 1対多、(中間テーブル)、多対1の関係性をDBに作ってくれるまでできました。 ただ、中間テーブルを作成したものの値が入りません…何かアドバイスお願いします。 public class A { public int Id {get;set;} public List<B> b; } public class B { public int Id {get;set;} public List<A> a; } static void main(){ A a = new A(){}; a.b.Add( new B { Id = 1 }); B.b = new B(){}; b.a.Add( new A { Id = 1 }); } このようなクラスで中間テーブルまでは作成されます。 NULLの原因としては、AではBのリストを、BではAのリストをnewで入れてないからなのかなとは思うのですが、 new A { Id = 1, <bのリストに値を入れる記述> } 上記の<>で挟んだ部分をなんと記述したらいいのかわからないです…
947 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 11:47:47.91 ID:5Lcdfshx.net] >>931 単にクラス定義をこうするだけではダメかな? public class A { public int Id {get;set;} public List<B> b = new List<B>(); } public class B { public int Id {get;set;} public List<A> a = new List<A>(); }
948 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 12:02:
] [ここ壊れてます]
949 名前:50.80 ID:UF7V38Hh.net mailto: >>932 あ、すみません コンストラクタでのnewを記述し忘れていました それは問題ないです。またつまっているところが違ったと気付いたので、今から書き直してみます… [] [ここ壊れてます]
950 名前:デフォルトの名無しさん [2016/07/30(土) 12:11:56.19 ID:gt3sWNMS.net] public class C { public List<A> a; public List<B> b; } public class A { public int Id {get;set;} public List<B> ListB; public C c; // 外部キー public A(){ b = new List<B>();} } public class B { public int Id {get;set;} public List<A> ListA; public C c; // 外部キー public B(){ a = new List<A>();} } CがAとB、AがB、BがAのリストを持っている構造にしたいです。 その際に、CにAddする時に、 static void main(){ C c = new C(); c.a.Add( new A { Id = 1, ListB = ????? }); } < Cの持つリストa >に情報を入れる時の< ListB >の部分で詰まっています。ここをうまく解決できれば、中間テーブルにも 値が入るのではないかなと考えています。 List<B> tmpB = new List<B>();で定義したtmpBを入れてみても中間テーブルに値は反映されていませんでした。 A, B それぞれに、それぞれの外部キーを設定する必要があるとかでしょうか?
951 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 12:21:23.10 ID:5Lcdfshx.net] >>934 一旦シンプルにしたほうがいい。 クラスCの定義が変だと思う。 //これはAとBの関係を保つためのクラス public class C { public A a; public B b; } public class A { public int Id {get;set;} } public class B { public int Id {get;set;} }
952 名前:デフォルトの名無しさん [2016/07/30(土) 12:32:22.73 ID:VbvJ+5P0.net] >>935 つまり、Cはa, b に関係を持つが集約の関係性ってのがおかしいってことでしょうか 一応、そこの関係性は崩せると思いますが、ABの関係性は崩すと大きくクラス設計に関わってきそうです… public class C { public A a; public B b; } public class A { public int Id {get;set;} public List<B> ListB; public C c; // 外部キー public A(){ b = new List<B>();} } public class B { public int Id {get;set;} public List<A> ListA; public C c; // 外部キー public B(){ a = new List<A>();} } static void main(){ C c = new C(); c.a = new A { Id = 1, ListB = ????? }; }
953 名前:デフォルトの名無しさん [2016/07/30(土) 12:34:07.18 ID:VbvJ+5P0.net] 連投ですみません。 どちらかと言うと、多対多で中間テーブルが自動生成させるのを達成したい感じです… この状況で A B C のテーブルは自分で作ることになりますが、 A B の中間テーブルは自動で作られると思うので…
954 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:07:12.61 ID:RyCiYMxC.net] >>934 c.a.Add( new A { Id = 1, ListB = c.b }); でダメなのかい。 後、 c.a = new List<A>(); c.b = new List<B>(); も抜けてそうだけど。
955 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:27:18.34 ID:cua4PELF.net] ListのインスタンスをA,Bのコンストラクタで作る(A,BのインスタンスごとにListを持つ)つもりのようだけど 作ったListにはどんなAやBをAddしていくつもり? AはBのListを持ち、そのListに入るBを作るにはAのListを作りそのAのListに… …となると終わりはないけど、リストが空でも問題ない? 空で問題ないなら、new A するときに ListBに何かする必要はない (というか、ListB = ??? とかしちゃうと、Aのコンストラクタでの new List<B>()が無駄になるよ)
956 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:27:52.31 ID:NxOPfq9t.net] >>929 漏れらは、何十冊も本を読んでいるから、よく知っている。 素人の知識・勉強量では無理。どの資格にも受からない 皆Linux板では、SSDへの書き込み回数を減らして、寿命を延ばすため、 通常は5秒毎にフラッシュされるところを、15〜30秒にしている人も大勢いる システムが信用できないからって、システム終了時に5分かけて、フラッシュを3回やってから、 電源を切っている人もいるくらい OSに書き込み要求を出すというのと、デバイスが書き込んだあとに、 知らせてもらうというのは異なる。 常に、デバイスが本当に書き込んだかどうかを、疑うべき
957 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:59:52.29 ID:vwndqmNO.net] >>938 まさにそこです >>939 そうなるんですよね 別に空でも問題ないです ヌルも許容する予定なので ただ…それだと中間テーブルには値が入らず…ってなるので 何をどうしたらいいのかわからないってなっているところです
958 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 14:35:50.97 ID:cua4PELF.net] >>941 AのListBにはどんなBを、BのListAにはどんなAを入れるつもり? それがはっきりしないと、前には進まないような… それと… …ごめん、こちらが勉強不足だからだけど >双方向にそれぞれのリストを持たせた場合、 >多対多の関係になると学びました。 って、どういうことだろう… 今やってるみたいに、モロにお互いを循環させることなのかな…? あと、 >また、そのコードを記述し動かすと自動で中間テーブルを作り、 >1対多、(中間テーブル)、多対1の関係性をDBに作ってくれる というそのコードがネットで見れるのなら、それを教えてほしいんだけど…
959 名前:デフォルトの名無しさん [2016/07/30(土) 14:42:59.78 ID:kE9N+QT2.net] >>941 AとBは講師と学生の関係ですね 講師は複数の学生を教え、学生は講師を複数持つ みたいな関係にするために多対多になっています 講師1に対して学生A,B,C,Dを検索でき、学生Aに対して講師1,2,3を検索できるような感じです コードファースト開発を行っていてどこかで見たんですよね…。ただ、今回の内容については書いてなかったんです。 実際データベースにアクセスしているのは、三つしかないんですけど、 4つ目の講師・学生のIDを照らし合わせたテーブルも生成されます。 試しにコーディングしてSQLServerに繋げてみると謎のA・Bのテーブルが出来るとおもいます