Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【Visual Basic】全角半角文字混在の文字列の長さをバイト長で得る

かつてのVisual Basic(特にVer.6以前)では、文字列は1バイト文字(「A」、「a」、「@」など)と2バイト文字(「あ」、「亜」、「%」など)を混在して扱っていたが、現在のVisual Basicは文字を統合的に扱うことから、例えば文字列の長さをlen関数で得ると、「ABC」(合計3バイト)も「ABあ」(合計4バイト)も、3という値が得られてしまう。 これではテキストファイルに表示桁を揃えて出力する時に都合が悪いので、文字列をバイト長を得る関数を作成する。以下のとおり。
Function lengthB(ByVal st As String) As Integer
    Return System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(st)
End Function