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

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

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

Re[5]: 文字列をbyte単位で指定して表示する


(過去ログ 16 を表示中)

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

■6012 / inTopicNo.1)  文字列をbyte単位で指定して表示する
  
□投稿者/ 初心者A (1回)-(2007/07/29(Sun) 22:36:18)

分類:[C#] 

C# Visual Studio を使っている者です。

全角、半角を含む文字列をbyte単位で指定して行数、文字数ごとに表示したいと思っているのですが、どのようにすればいいのでしょうか?

例として、

"あいうえお12345かきくけこ67890"  の文字列を 15byteごとに改行

  1行目に "あいうえお12345"
  2行目に "かきくけこ67890"

とした後に、各行をまた指定したbyteごとに分けて表示させたいのですがよい方法はないでしょうか?

       (4byte) (6byte) (5byte)
  1行目  "あい" "うえお" "12345" 
  2行目  "かき" "くけこ" "67890"









引用返信 編集キー/
■6013 / inTopicNo.2)  Re[1]: 文字列をbyte単位で指定して表示する
□投稿者/ επιστημη (566回)-(2007/07/29(Sun) 22:55:00)
επιστημη さんの Web サイト
> 全角、半角を含む文字列をbyte単位で指定して行数、文字数ごとに表示したいと思っているのですが、どのようにすればいいのでしょうか?

C#はUnicodeベースなので全角も半角もヘッタクレもありませんから、
- 一旦Shift-jisのbyte配列に変換し
- 切り分けて
- 再度Unicode文字列に変換し
- 表示
かな。

引用返信 編集キー/
■6014 / inTopicNo.3)  Re[2]: 文字列をbyte単位で指定して表示する
□投稿者/ 初心者A (3回)-(2007/07/29(Sun) 23:08:23)
No6013 (επιστημη さん) に返信
アドバイスをどうもありがとうございます。

 Shift-jisのbyte配列に変換して行数ごと切り分けてに切り分けることはできたのですが、
そのあとの行を指定したbyteごとに分けることができないです。
 





引用返信 編集キー/
■6015 / inTopicNo.4)  Re[3]: 文字列をbyte単位で指定して表示する
□投稿者/ επιστημη (567回)-(2007/07/29(Sun) 23:37:00)
επιστημη さんの Web サイト
2007/07/29(Sun) 23:37:25 編集(投稿者)
>  Shift-jisのbyte配列に変換して行数ごと切り分けてに切り分けることはできたのですが、
> そのあとの行を指定したbyteごとに分けることができないです。

public static void Copy (
	Array sourceArray,
	int sourceIndex,
	Array destinationArray,
	int destinationIndex,
	int length
)

byte[] src;
byte[] dst;
...
Array.Copy(src, 3, // srcの3番目から
           dst, 0, // dstの0番目に
           5);     // 5つコピー

引用返信 編集キー/
■6018 / inTopicNo.5)  Re[4]: 文字列をbyte単位で指定して表示する
□投稿者/ 囚人 (122回)-(2007/07/30(Mon) 09:20:18)
本題から逸れますが、15byte 目と 16byte 目で 1 文字が表現された場合の対処は考えなくて良いんでしょうか。
例えば以下のようだと、望む結果にならないと思いますが。

string s = "あいうえお1234んかきくけこ67890";
Encoding shift = Encoding.GetEncoding("Shift_JIS");
byte[] b = shift.GetBytes(s);
string result1 = shift.GetString(b, 0, 15);
string result2 = shift.GetString(b, 15, 15);
Console.WriteLine(result1);
Console.WriteLine(result2);

引用返信 編集キー/
■6020 / inTopicNo.6)  Re[5]: 文字列をbyte単位で指定して表示する
□投稿者/ 中博俊 (1136回)-(2007/07/30(Mon) 10:36:56)
中博俊 さんの Web サイト
Unicode文字が入れられると、化けちゃうわな
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -