松永です。

いま簡単な書籍管理スクリプトを書いているのですが,長い書名を縮める必要
にかられて,ちょっと悩んでおります。

1) コード系はシフトJIS
2) 書名はいわゆる全角換算で8文字(=16バイト)にしたい
3) 縮めなくて済むのなら縮めない
4) 縮める場合,前から全角5文字(=10バイト),後ろから全角2文字(=4バイ
ト)を取り出して,間を「…」でつなぐ

問題は4)の段階で,何も考えずに str[0,10] などとやると,漢字の真ん中で
切れる,いわゆる泣き別れが起きる可能性があるということです。バイト数と
文字数の両方を意識しながら文字を取り出すにはどういう方法があるのでしょ
うか?

・前から10バイト目が漢字の1バイト目だったら9バイトしかとらない
・後ろから4バイト目が漢字の2バイト目だったら3バイトしか取らない

これが簡単にできればいいのですが…

-- 
keiichi matsunaga mailto:ma2 / lifemedia.co.jp
  (株)ライフメディア 開発部
  最近のお薦め本「ベストセラーゲーム化会議」