スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コンソールに文字数の違う文字列を整列して表示するには

コンソールアプリを作成しているときに、データベースから取得したデータ
をコンソール画面に出力するよう課題があった

普通に考えると各列項目をタブ区切りできれいに表示できるように思われ
るが、実はこれでは上手くいかない

その理由は半角、全角、そして文字数の違いによるものである

全角一文字と半角二文字は同じ長さになる
つまりは取得したデータを加工しなければ、コンソールに整列した
文字列を表示できないのだ。これを解決するため、以下の方法がある

表示する項目の最大文字数(全角)を n とした場合 

   str_byte = System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(Publish)
        shou = (2 * n - str_byte) / 2
        amari = (2 * n - str_byte) Mod 2
        For i As Integer = 1 To shou
            res &= " "
        Next
        For i As Integer = 0 To amari
            res &= " "
        Next

と書くことで文字列を整列させることができる

str_byteは半角を1,全角を2としてカウントし、表示文字のバイト数を返して
くれるそのバイト数と最大表示文字数のバイト数を比べ、不足分を全角ス
ペースまたは半角スペースを加えることで加工している

まあ、力技と言えるやり方ではあるが、綺麗に表示できるのでありかなと



スポンサーサイト

theme : どーでもいいこと
genre : コンピュータ

comment

Secret

プロフィール

さぶ

Author:さぶ
趣味 パソコン、アニメ、
    ゲーム, 麻雀
好きな物 ジャンプ 甘味

FC2カウンター
最近の記事
最近のコメント
カテゴリー
ブロとも一覧
壁のない世界へ
注目の商品




今売れている商品








上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。