[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/20 10:02 / Filesize : 242 KB / Number-of Response : 1042
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/03/18(水) 18:08:26.52 ID:irwZfv9C.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part114
peace.2ch.net/test/read.cgi/tech/1419512512/

■関連スレ
C#, C♯, C#相談室 Part86
peace.2ch.net/test/read.cgi/tech/1419608259/

■コードを貼る場合は↓を使いましょう。
ideone.com/

111 名前:デフォルトの名無しさん mailto:sage [2015/03/31(火) 15:49:00.74 ID:EiIz2HrV.net]
>>109
うん、この話がわからないってことはまったくUnityのことはわからない、
ってことだと思うしその段階でUnityの質問スレ行ってもとりあえず
チュートリアルやってからにしてくれ、ってなると思うよ。

まぁ元々プログラムやってる人だと従わなきゃならない作法が多すぎて
めんどくせー、とか不自由すぎる!ってなる部分はあると思うw

112 名前:デフォルトの名無しさん mailto:sage [2015/03/31(火) 16:43:34.03 ID://GhI1bQ.net]
>>110
たびたびありがとうございます。
チュートやる方が近道のようですね。

最後のスレちを許していただけるならもう一個だけ質問させてください。

そもそも何でidを振るかというと
多数あるprefabからランダムに選び出して表示させると言うのをやりたいからです。

これはやはりprefabにidを振ってrandomで抽出しかないですよね?
何かほかにありますか?

113 名前:デフォルトの名無しさん mailto:sage [2015/03/31(火) 17:05:09.04 ID:EiIz2HrV.net]
>>111
大体のUnityの作法に従う、という前提でいうと、

・そういうPrefabを元にしてオブジェクトをインスタンスする為の
MonoBehaviourを継承したクラス(スクリプト)を作ってカラのGameObjectに貼り付けとく。
・そのクラスにGameObject[] prefabsみたいなパブリック変数の
配列を作っておいてインスペクタ上でPrefabをドラッグアンドドロップして配置しておく。
・int i = Random.Range(0,prefabs.Length);とかでランダムの値出して
Instantiate(prefabs[i],posiiton,rotation)みたいにインスタンスを生成する。

とかそんな感じだと思う。
パス書いたストリングの配列置いといて(そのストリング配列をどこに書いておくか、
読んでくるか、という問題はまたあるけど)
Instantiate(Resources.Losd<GameObject>(pathes[i]),position,rotation);
みたいなやり方もあるけどね。その場合Resourcesってフォルダに
prefabを置いておく、とかの約束事はある。

インスペクタで配置する、とかもUnity使ってないと意味不明なんで
まぁとりあえずチュートリアルやってみて、って感じではあります。

114 名前:デフォルトの名無しさん [2015/03/31(火) 20:30:11.03 ID:FZhIJWR5.net]
idを降るにもランダムで取り出すにもUnity必要ねーんだよ。
何が解らないのか解ってんの?

115 名前:デフォルトの名無しさん mailto:sage [2015/03/31(火) 21:35:52.69 ID:p39Sv7yq.net]
>>112
ありがとうございます。
できましたたたたた!

116 名前:デフォルトの名無しさん [2015/04/01(水) 10:44:09.59 ID:SOMpR2yO.net]
初心者のくせにレベル高い質問する奴が多くて凹む
俺なんてもう3年やってるのに未だにデリゲートがわからないわ

117 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 11:14:15.35 ID:1gRtJvyV.net]
デリゲートってよくわからないけども、
配達してくれる門のことでしょ?

118 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 13:30:47.74 ID:97llw635.net]
if (!xxxxx){
このxxxxx変数の頭に付いてる!はどういった意味なのでしょうか?

119 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 13:37:04.21 ID:uYs13Xxh.net]
! は否定演算子。Boolean型につく。trueならfalseに、falseならtrueに。



120 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 13:40:03.75 ID:97llw635.net]
そうだったんですね。
ありがとうございます。

121 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 15:39:21.86 ID:w3sSKfcl.net]
そのレベルでいちいち質問してるようじゃ前途多難だなw
煽り抜きの真面目な話

122 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 17:19:12.96 ID:uYs13Xxh.net]
Cはおろかjavascriptも見たことないってことだからなぁ

123 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 17:32:30.70 ID:wuQ+3DlS.net]
>>117
いちど演算子一通りちゃんと勉強しなおした方がいいマジで

124 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 23:00:59.02 ID:/C37Nzx7.net]
Boolean型
そんな型があることを初めて知った

125 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 23:08:37.14 ID:0S/G9O5Z.net]
最近プログラム始めました的な人なら仕方ない

126 名前:デフォルトの名無しさん mailto:sage [2015/04/02(木) 10:37:00.56 ID:AeXs8juk.net]
boolがあるのにわざわざBooleanを追加した理由ってあるの?

127 名前:デフォルトの名無しさん mailto:sage [2015/04/02(木) 10:52:55.82 ID:phMPzoKJ.net]
System.Boolean → .net frameworkの型
bool → C#言語の組み込み型

>bool キーワードは、System.Boolean のエイリアスです。

128 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 19:02:33.95 ID:muAurvJ7.net]
MemoryStreamの扱い方について教えていただけないでしょうか。

次のようにMemoryStreamを宣言した場合
配列のように各MemoryStream(m1〜3)を格納出来ましたが
最初に宣言だけして後から格納するにはどうしたら良いでしょうか。

MemoryStream[] Ms = { m1, m2, m3 };

合っているかどうかわからないのですが、次のようには
宣言できても、後から格納が出来ず悩んでいます。
MemoryStream[] Ms = new MemoryStream[]{};

129 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 19:52:25.48 ID:JflSpfIv.net]
MemoryStream云々じゃなくて
クラス配列は作成しただけだと中身がnullだから



130 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 19:55:19.03 ID:rgIwRDB+.net]
>>127
>MemoryStream[] Ms = new MemoryStream[]{};

長さ0の配列確保してるから格納できないのは当たり前。

131 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 19:55:45.64 ID:JflSpfIv.net]
そこまで高度な話ですらなかった
newしてる配列で長さ指定してないから空配列になってるだけじゃねえか

132 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 20:48:16.74 ID:z3znbzKC.net]
>>127
var mss = new MemoryStream
[3];
mss[0] = m1;
mss[1] = m2 ;
mss[2] = m3;

133 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 20:56:17.12 ID:muAurvJ7.net]
なるほど!!自分はアホでした・・・
本当にありがとうございました!!

134 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 21:26:33.93 ID:Y/S0Zj5n.net]
pdbファイルはデバッグ時にどのように役立っているのでしょうか

135 名前:デフォルトの名無しさん [2015/04/03(金) 21:27:25.80 ID:bzwtJx8O.net]
Listの内部実装ってどうなってるんですか?

適当なキャパの配列を内部で持って、
addされたindex以上のは取得できないようにしてる感じでしょうか?

136 名前:デフォルトの名無しさん mailto:sage [2015/04/03(金) 21:34:44.85 ID:1XPpXi9x.net]
>>133
変数の名前や、ILの命令がソースコードのどこに対応するかなど
コンパイルによって失われてしまう情報を持っている

>>134
そう
追加するたびに配列作り直してたら効率悪いので
内部の配列が溢れると倍々ゲームで配列を拡大する
リストのサイズは配列のサイズとは別に仮想的な値として持っていて、
インデクサの中で インデックス < サイズ であることをチェックしてる

137 名前:デフォルトの名無しさん [2015/04/04(土) 00:59:18.35 ID:0jqle4n2.net]
>>135
ありがとうございます。
c#の基本機能を極めてしまったので、更に深い知識を得たくて。
ところでなぜ、内部実装を知っているんですか?
.netで用意されているクラスなど覗いても
実装まで見れませんよね?

また、ちょくちょくスレの方々が例えばスタックとか

138 名前:qープとかどーのこーの言ってるんですが、そういう知識はどこで得たらいいんでしょう?
参考書読んでもそんな言葉は一言も出てこなくて。
[]
[ここ壊れてます]

139 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 01:27:38.82 ID:QQ0bNHZo.net]
.NetFrameworkはオープンソースだよ



140 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 01:36:14.76 ID:iZ1TokMe.net]
>>136
スタックだのヒープだのはデータ構造の名前。
そんなご大層なものじゃないからアホじゃなきゃググれば30分で両方理解できる。

141 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 05:50:33.63 ID:nyOh/zuP.net]
>ヒープだのはデータ構造の名前

へー

142 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 08:14:03.67 ID:9MLdMtB3.net]
referencesource.microsoft.com/

これテンプレに入ってないんだな
ネイティブ読んでる奴以外は実装が分かるよ

143 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 10:01:48.66 ID:420of61P.net]
C# プログラミングリファレンス
◆スタックとヒープ
https://msdn.microsoft.com/ja-jp/library/cc406736.aspx

144 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 11:03:33.41 ID:PeaowgPm.net]
>>136
スタック、ヒープってのは自分でメモリー管理するc言語の本には出てる。
c#の本だと構造体、クラスあたりの説明にちょこっと出てくるくらいかな。

145 名前:デフォルトの名無しさん [2015/04/04(土) 12:26:14.95 ID:58QdE54y.net]
ほっぺたバンバンスタックスタック
おしりバンバンヒープヒープ
アウアウアゥッー!!1!

146 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 12:32:52.33 ID:pfd5O7mf.net]
>>141
そのヒープは>>138のヒープとは違うヒープだろ
区別がついてない?

147 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 14:56:52.84 ID:XlefrRJp.net]
スタックもヒープもメモリ領域の用語とデータ構造の用語の両方で使用されるので
133の見たレスがどちらだったのかは不明。

148 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 17:50:27.11 ID:HfZ/zp/8.net]
明らかにメモリの話と思われる

149 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 19:16:35.42 ID:l5USRqeg.net]
美しい人生よ 限りない喜びよ この胸のときめきを あなたに



150 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 19:54:57.14 ID:G/mZHSfw.net]
>>145
どっちも糞も同じ物だって。

スタックについては言うまでもないと思うが、ヒープだって貸し出すメモリーを
ヒープで管理するからヒープでしょ。違うの?

151 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 20:02:17.58 ID:JKQhG6t4.net]
>>147
愛のメモリーの話と思われる

152 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 20:22:04.15 ID:vicBGV37.net]
データ構造を含めた管理方法の話と
OSが(その方法で)管理してる領域の使い方の話
同じ話ではないので、どっちの話かちゃんと区別して下さい

153 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 20:26:11.00 ID:Ud1vHqFT.net]
>>148
ヒープで管理するからヒープメモリだというソースは?

154 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 22:52:11.93 ID:PeaowgPm.net]
あなたにあげる、あったかいんだから

155 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 01:03:26.98 ID:MMhMc3sY.net]
String と stringの違いはなんでしょうか?どう使いわけるのですか?

156 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 01:13:21.04 ID:CUClbhMi.net]
>>153
わざとやってないか?w>>125

157 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 01:40:29.52 ID:X2BYrh95.net]
varの存在意義がわからない…orz

158 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 02:12:28.83 ID:dDi9RE1B.net]
てかデフォで型推理>変換まで自動化すべきだよね
明示的に書いたときだけそっち優先でなんの問題があるのか

159 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 05:42:15.21 ID:rnU7gpAt.net]
存在意義が分からないと何もできない奴を粛正して回る方が先
生きるのにも向いてないから、この世から解放してやる必要がある



160 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 08:11:03.64 ID:KZ+Fa3I0.net]
>>155
linqやってみれば?
varが無ければlinqなんてやってられないよ

161 名前:デフォルトの名無しさん [2015/04/05(日) 09:57:13.71 ID:oXAovg9x.net]
varなかったら1ヶ月で一日分ぐらい時間ロスするだろ

162 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 09:58 ]
[ここ壊れてます]

163 名前::11.03 ID:850UAxcu.net mailto: linqに限らず変数宣言で型書くの面倒だろ? []
[ここ壊れてます]

164 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 10:27:03.47 ID:ITW+JsH9.net]
>>155
馬鹿長いクラス名のヤツがvarだとスッキリ書ける。

165 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 10:49:59.34 ID:Hju6Pfi4.net]
>>159
さすがにそこまでコードをタイプしてる時間の割合が開発作業の多くを占めるというのは
やり方か職場に問題がある

166 名前:デフォルトの名無しさん [2015/04/05(日) 14:18:23.58 ID:Qojgmlj4.net]
とはいえC#では強力なIDEのおかげでvarの利用によるメリットは薄れる傾向にあると思われる

167 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 14:25:07.45 ID:kIv1b/v6.net]
もともと >>158 が言ってる理由で作られたんじゃなかったっけ。
自分は並べて変数宣言するときに見やすくなるから使うこと多いんだけど。

168 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 18:28:32.68 ID:WDwqsM6E.net]
>>163
入力は IDE で楽になったけど、var のあるなしでコードの見易さが全然違うよ

169 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 19:08:34.59 ID:xq3Tbw2G.net]
下みたいな事をしたいです。
どうしたらいいでしょうか?


class Oya { ...
class KoA : Oya { ...
class KoB : Oya { ...

---

class Test {

 public IEnumerable<KoA> AAA { get... }
 public IEnumerable<KoB> BBB { get... }

 public IEnumerable<Oya> OOO {
  get {
   this.AAAとthis.BBBをくっ付けたい。←これがやりたいこと!
  }
 }



170 名前:デフォルトの名無しさん [2015/04/05(日) 19:22:50.56 ID:Qojgmlj4.net]
return AAA.Concat(BBB);

//varを使ってみたかった
foreach(var koa in AAA)
  yield return koa;
foreach(var kob in BBB)
  yield return kob;

171 名前:デフォルトの名無しさん mailto:sage [2015/04/05(日) 19:24:07.67 ID:yZ2P911Q.net]
linq 結合 とか
linq つなげる とかでググれば出てきそうなもんだが
concat

172 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 22:48:02.56 ID:/TOJAy2n.net]
式木を約分するフリーのライブラリとかありませんか?
Expression<Func<int, int>> ex = x => x / x;
を x => 1 に
Expression<Func<double, double>> ex = x => Math.Tan(x) / Math.Sin(x) * Math.Cos(x);
を x => 1.0 に約分してくれるようなものです

173 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 23:17:20.28 ID:2OkzYB/B.net]
LinQとかラムダとか修行用のサイトありますか?

174 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 23:20:52.04 ID:7ScfZwT0.net]
徹底的にハードな

175 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 08:10:27.45 ID:qktNI4KL.net]
まず宇宙船を作ります

176 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 08:21:24.60 ID:i2VysPJZ.net]
修行用で良かったのは未確認なんたら

177 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 13:02:48.89 ID:W5P0BmT+.net]
>>173
ありがとうございます。

178 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 14:01:15.57 ID:JncqmOow.net]
>>169
数式文字列に変換してMaximaに丸投げ

179 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 22:04:32.95 ID:mIn1sIzy.net]
>>175
おお!こんなのがあったのですね!
素晴らしいです!助かりました



180 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 23:00:27.85 ID:jNIjIDyq.net]
データタイム型で取り出した日時データをDateGridviewに出力する際、string型に変換せず、そのまま日時データの性質を持たせて出力することはできませんか?

181 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 23:32:05.01 ID:xSM6sG75.net]
WPFというかXAML使えば

182 名前:デフォルトの名無しさん [2015/04/07(火) 23:32:35.89 ID:r1bOWFW1.net]
icaclsで取得したデータをC#で見やすく加工したいのですが、
以下のように、フォルダパスとユーザ情報が一行に表示されており、
見難くて困っております。

C:\Program Files NT SERVICE\TrustedInstaller:(F)

再帰的に、以下のように加工する方法はあるでしょうか?
C:\Program Files
NT SERVICE\TrustedInstaller:(F)

区切りがスペースである時点で、解決は望み薄かと思いますが、
よろしくお願いします。

183 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 08:15:48.75 ID:o76YjVnN.net]
そんなコマンドあるの初めて知ったので試してみたけど、
2行目以降、インデントされてるからその開始位置を1行目に適用したらいいんじゃない?
2行以上表示されるファイル/フォルダじゃないとダメだけど

184 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 08:40:02.89 ID:KM862bWm.net]
>>178
は?

185 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 09:14:09.25 ID:dGXcCm+u.net]
>>181
WPFならUIにどんなオブジェクトでも持たせられ、表示方法はDataTemplateで自由自在。

186 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 09:15:46.89 ID:Vs/ZCfgh.net]
へ?

187 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 13:53:35.14 ID:b4lzJxfB.net]
>>177
そのようなDataGridViewColumnとDataGridViewCellを作ればよい

188 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 14:26:53.14 ID:KM862bWm.net]
>>184
その作り方を聞いてるんじゃないの?

189 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 16:36:33.11 ID:DdfnKxD/.net]
ソフトにホットキーを登録する方法を調べていたところ下記のコードで登録できるようですが
ttp://smdn.jp/programming/tips/activate_window_by_hotkey/

これは予め数種類の動作を用意した設定フォームなどから
対応するホットキーをユーザ側で自由に設定するなどということは可能なのでしょうか?



190 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 18:00:13.85 ID:dsfuUZsQ.net]
可能です

191 名前:デフォルトの名無しさん mailto:sage [2015/04/08(水) 18:19:20.60 ID:DdfnKxD/.net]
ありがとうございます。

192 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 12:10:34.50 ID:y3dmdorc.net]
デバッグで動作中に配列にカーソルを合わせると中の値を見ることが出来て、
右クリックで配列の中の一つの値をコピーしてメモ帳等に貼り付けることは出来ましたが、
配列の中身を全て一括してコピーする様なことって出来ますか?

193 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 14:27:07.51 ID:LaD8e8U9.net]
listViewの指定のカラムにサブアイテムを追加する方法を教えて下さい。
カラム0には初めから項目が追加されています。

カラム0 カラム1 カラム2
項目0
項目1
項目2

ListViewItem item = new ListViewItem();
if (item.Selected)
{
  item.SubItems.Add(追加項目);
}
とすると、選択項目のカラム1にサブアイテムが追加されてしまいますが、
カラム1には何も追加せずカラム2だけにアイテム追加するにはどうすればよいでしょうか。

194 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 17:55:07.19 ID:3KIThUPC.net]
そのコードでは何も起きないと思うが。。

item.SubItems.Add((string)null);
item.SubItems.Add(追加項目);

195 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 18:57:39.19 ID:jbEL90kz.net]
>>189
イミディエイトウィンドウでstring.Join(",", arr)とか

196 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 19:24:36.73 ID:y3dmdorc.net]
>>192
見ることが出来ました!
ありがとうございます

197 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 20:18:39.40 ID:LaD8e8U9.net]
>>191
上手く行きました。どうもありがとうございました。

198 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 04:38:08.62 ID:WjVyXuhP.net]
stringにShift-JISの文字列を入れて(もちろん8ビットコードは上位0です)

byte[] sb = Encoding.GetEncoding("Shift-JIS").GetBytes(res);
byte[] ub = Encoding.Convert(Encoding.GetEncoding("Shift-JIS"), Encoding.Unicode, sb);
string str = Encoding.Unicode.GetString(ub);
textBox1.AppendText(str);

とやったのですがどうしてもTextBoxの文字が化けてしまいます
これを化けずに表示するにはどうすればいいのでしょうか?

199 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 06:10:15.82 ID:2NJz6esb.net]
>>195
C#はパールじゃない
>stringにShift-JISの文字列を入れ
などということが出来ないことを
まず理解します



200 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 12:28:56.12 ID:WjVyXuhP.net]
>>196
レスありがとうございます <

201 名前:br> 実は

res = await client.GetStringAsync(uri);

というのを実験してて、このページがたまたまShift-JISでエンコードされているため
resというstringにShift-JISで入って行ってしまうのです

Clipboard.SetText(res);

でクリップボードにコピーしてFree Clipboard Viewewで見ても(Windows8.1なので)
ちゃんとShift-JISで入っているのが分かります

で、このままTextBoxに入れても当然化けるので、何とかUnicodeに変換したいと
思い、>>195のようなコードを何通りか試してみたのですが、どうしても駄目です

unsafeを使って8バイト部分を切り詰めてから変換しても駄目でした

このままだと、Shifit-JISで書かれたページがC#で扱えない事になってしまうので困っています
[]
[ここ壊れてます]

202 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 12:33:12.28 ID:N1524vgj.net]
いや何でStringにShift-JISを入れる(確実にその時点で壊れる)のが前提なんだ
WebClientに文字コードを指定するか、GetStringじゃなくて生データで受けてからEncodingで変換しろ

203 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 12:39:39.96 ID:2NJz6esb.net]
byte[] sjisData =〜; //オリジナルのSJISデータ
var s = System.Text.Encoding.GetEncoding(932).GetString(sjisData);
textBox1.Text = s;

これ以上に複雑な処理が要るとは思えないのだが

204 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 12:44:25.90 ID:WjVyXuhP.net]
>>198
それでやってみます
しかしどこかにアクセスする前にそのページのコードを知らなければならない前提になって
しまいますよね?
C#でブラウザとか巡回ソフトを作る時に困るような気がしませんか?

>>199
それもやってみたけど化けるのです
TextBoxに入れた時点で化けるのかな?

205 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 12:48:02.02 ID:N1524vgj.net]
>>200
WebClient.GetStringが返すのはそのままのデータではなく.NETの内部表現に変換された文字列
生データが欲しければOpenReadやDownloadDataなどを使う

206 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 12:55:21.61 ID:2NJz6esb.net]
>>200
やりたいことはわかった。
ストリームから読み込んだ内容によって「932」のところを調整する。
ideone.com/THGhsl

207 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 13:08:01.63 ID:WjVyXuhP.net]
>>201
asyncと合わせて使う方法が分かりません

>>202

208 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 13:08:20.25 ID:WjVyXuhP.net]
間違えて書き込んでしまいました

>>202
ありがとうございます
試してみます

209 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 13:09:42.07 ID:zkEb8/z0.net]
>>203
>>197はSystem.Net.WebCllent.GetXxxxTaskAsyncだよ
AsyncでなくTaskAsyncのほう



210 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 13:10:36.81 ID:zkEb8/z0.net]
意味不明な書き込みした
忘れて…

211 名前:デフォルトの名無しさん [2015/04/11(土) 19:51:34.35 ID:5aZfU8Xj.net]
引数や戻り値を無視したデリゲートが欲しいのですがどうすればいいでしょうか?

ただし、ラムダなど匿名関数にして包んでしまうと
Method.Targetがnullになってしまうため不可です






[ 続きを読む ] / [ 携帯版 ]

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

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