C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C#でバイト単位に取り出すについて


(過去ログ 2 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■2349 / inTopicNo.1)  C#でバイト単位に取り出すについて
  
□投稿者/ ゾロ 二等兵(1回)-(2006/01/23(Mon) 18:48:02)

分類:[C#] 


分類:[C#] 

「文字列の一部をバイト単位で取り出す (LeftB, MidB, RightB)」を
参考にさせていただきました。
これをさらに教えて欲しいのですが、

文字列が"ABCDEF"として、左端から7バイトの文字列を取得する場合に
"ABCD_"(_はスペースです)とリターンするには、どうすればいいでしょうか?

なにぶん、初心者の為によろしくお願いします。

0
引用返信 編集キー/
■2349 / inTopicNo.2)  C#でバイト単位に取り出すについて
□投稿者/ ゾロ 二等兵(1回)-(2006/01/23(Mon) 18:48:02)

分類:[C#] 


分類:[C#] 

「文字列の一部をバイト単位で取り出す (LeftB, MidB, RightB)」を
参考にさせていただきました。
これをさらに教えて欲しいのですが、

文字列が"ABCDEF"として、左端から7バイトの文字列を取得する場合に
"ABCD_"(_はスペースです)とリターンするには、どうすればいいでしょうか?

なにぶん、初心者の為によろしくお願いします。

0
引用返信 編集キー/
■2351 / inTopicNo.3)  Re[1]: C#でバイト単位に取り出すについて
□投稿者/ 中博俊 大将(288回)-(2006/01/24(Tue) 00:08:28)
中博俊 さんの Web サイト

分類:[C#] 

ShiftJISな世界のことを言っていて、最後のスペースを0x20とするということであれば、最後のバイトがShift-JISの日本語の範囲の下位バイトでなく、上位バイトであればスペースに置き換えるということでしょうか。

#雑な案ですが(^^


#例題の半角、全角は"あAいBう"とかにするとよかったですね。(^^

0
引用返信 編集キー/
■2351 / inTopicNo.4)  Re[1]: C#でバイト単位に取り出すについて
□投稿者/ 中博俊 大将(288回)-(2006/01/24(Tue) 00:08:28)
中博俊 さんの Web サイト

分類:[C#] 

ShiftJISな世界のことを言っていて、最後のスペースを0x20とするということであれば、最後のバイトがShift-JISの日本語の範囲の下位バイトでなく、上位バイトであればスペースに置き換えるということでしょうか。

#雑な案ですが(^^


#例題の半角、全角は"あAいBう"とかにするとよかったですね。(^^

0
引用返信 編集キー/
■2352 / inTopicNo.5)  Re[2]: C#でバイト単位に取り出すについて
□投稿者/ 魔界の仮面弁士 伍長(52回)-(2006/01/24(Tue) 09:37:23)

分類:[C#] 

少し補足。

> ShiftJISな世界のことを言っていて、最後のスペースを0x20とするということであれば、最後のバイトがShift-JISの日本語の範囲の下位バイトでなく、上位バイトであればスペースに置き換えるということでしょうか。

Shift_JIS に関しては、
 制御コード:
  0x00〜0x1F, 0x7F
 ASCII文字:
  0x20〜0x7E
 半角カタカナ:
  0xA1〜0xDF
 漢字:
  上位バイト: 0x81〜0x9F, 0xE0〜0xFC
  下位バイト: 0x40〜0x7E, 0x80〜0xFC
のようになっています。

0
引用返信 編集キー/
■2352 / inTopicNo.6)  Re[2]: C#でバイト単位に取り出すについて
□投稿者/ 魔界の仮面弁士 伍長(52回)-(2006/01/24(Tue) 09:37:23)

分類:[C#] 

少し補足。

> ShiftJISな世界のことを言っていて、最後のスペースを0x20とするということであれば、最後のバイトがShift-JISの日本語の範囲の下位バイトでなく、上位バイトであればスペースに置き換えるということでしょうか。

Shift_JIS に関しては、
 制御コード:
  0x00〜0x1F, 0x7F
 ASCII文字:
  0x20〜0x7E
 半角カタカナ:
  0xA1〜0xDF
 漢字:
  上位バイト: 0x81〜0x9F, 0xE0〜0xFC
  下位バイト: 0x40〜0x7E, 0x80〜0xFC
のようになっています。

0
引用返信 編集キー/
■2355 / inTopicNo.7)  Re[3]: C#でバイト単位に取り出すについて
□投稿者/ ゾロ 二等兵(2回)-(2006/01/24(Tue) 11:04:27)

分類:[C#] 

中博俊さん、魔界の仮面弁士さん、回答ありがとうございます。

中博俊さん
⇒そうです最後の1バイトが上位バイトならスペースに置き換えると
 言うことです。(例題の件は、参考になりました。)

魔界の仮面弁士さん
⇒上位バイト: 0x81〜0x9F, 0xE0〜0xFCのこれを判定(IF文)すれば
 いいのですよね?

0
引用返信 編集キー/
■2355 / inTopicNo.8)  Re[3]: C#でバイト単位に取り出すについて
□投稿者/ ゾロ 二等兵(2回)-(2006/01/24(Tue) 11:04:27)

分類:[C#] 

中博俊さん、魔界の仮面弁士さん、回答ありがとうございます。

中博俊さん
⇒そうです最後の1バイトが上位バイトならスペースに置き換えると
 言うことです。(例題の件は、参考になりました。)

魔界の仮面弁士さん
⇒上位バイト: 0x81〜0x9F, 0xE0〜0xFCのこれを判定(IF文)すれば
 いいのですよね?

0
引用返信 編集キー/
■2359 / inTopicNo.9)  Re[4]: C#でバイト単位に取り出すについて
□投稿者/ 魔界の仮面弁士 伍長(53回)-(2006/01/24(Tue) 13:15:51)

分類:[C#] 

> ⇒上位バイト: 0x81〜0x9F, 0xE0〜0xFCのこれを判定(IF文)すれば
>  いいのですよね?
そう単純な話でも無いでしょう。

たとえば、「=≠ab」の 4 文字 8 バイトの Shift_JIS データを
切り出す事を考えてみてください。このバイナリは、
 0x8181:=
 0x8182:≠
 0x8281:a
 0x8282:b
のような値になっているわけです。

という事は、どこで切り出しても、最後のバイナリは 0x81 または 0x82 に
なるわけですが、それが「全角文字の 1 バイト目か 2 バイト目か」は、
文字列の途中からでは判断できないので、0x20 に置き換えようが無いでしょう。


ですから結局、文字列の先頭から数えていく必要があると思います。

0
引用返信 編集キー/
■2359 / inTopicNo.10)  Re[4]: C#でバイト単位に取り出すについて
□投稿者/ 魔界の仮面弁士 伍長(53回)-(2006/01/24(Tue) 13:15:51)

分類:[C#] 

> ⇒上位バイト: 0x81〜0x9F, 0xE0〜0xFCのこれを判定(IF文)すれば
>  いいのですよね?
そう単純な話でも無いでしょう。

たとえば、「=≠ab」の 4 文字 8 バイトの Shift_JIS データを
切り出す事を考えてみてください。このバイナリは、
 0x8181:=
 0x8182:≠
 0x8281:a
 0x8282:b
のような値になっているわけです。

という事は、どこで切り出しても、最後のバイナリは 0x81 または 0x82 に
なるわけですが、それが「全角文字の 1 バイト目か 2 バイト目か」は、
文字列の途中からでは判断できないので、0x20 に置き換えようが無いでしょう。


ですから結局、文字列の先頭から数えていく必要があると思います。

0
引用返信 編集キー/
■2364 / inTopicNo.11)  Re[5]: C#でバイト単位に取り出すについて
□投稿者/ ゾロ 二等兵(3回)-(2006/01/24(Tue) 15:15:24)

分類:[C#] 

魔界の仮面弁士さん、回答ありがとうございました。
無事解決しました。
また、何か有りましたら、よろしくお願いします。

解決済み
引用返信 編集キー/
■2364 / inTopicNo.12)  Re[5]: C#でバイト単位に取り出すについて
□投稿者/ ゾロ 二等兵(3回)-(2006/01/24(Tue) 15:15:24)

分類:[C#] 

魔界の仮面弁士さん、回答ありがとうございました。
無事解決しました。
また、何か有りましたら、よろしくお願いします。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -