C#によるLeftBについて
VBのLeftB関数は文字列をバイトデータとして左から指定した文字数の文字列を返します。半角文字は1バイト、全角文字は2バイトになります。 C#には、LeftB関数がありません。そこで、独自padding関数を作成します。
LeftB関数
/// ------------------------------------------------------------------------- /// <summary>文字列の左端から指定したバイト数分の文字列を返します。</summary> /// <param name="cutString">取り出す元になる文字列<param> /// <param name="byteSize">取り出すバイト数</param> /// <returns>左端から指定されたバイト数分の文字列</returns> /// ------------------------------------------------------------------------- public static string LeftB(string cutString, int byteSize) { // Shift_JISに変換する System.Text.Encoding hEncoding = System.Text.Encoding.GetEncoding("Shift_JIS"); byte[] btBytes = hEncoding.GetBytes(cutString); // 指定バイト数<文字列のバイト数の場合、パラメータの文字列をそのまま戻す if (btBytes.Length < byteSize) { return cutString; } // 指定バイト位置にある文字の全角・半角判断 if ((btBytes[byteSize-1] >= 0x80 && btBytes[byteSize-1] <= 0x9F) || (btBytes[byteSize-1] >= 0xE0 && btBytes[byteSize-1] <= 0xFF)) { // 全角(2バイト)の場合、1バイト分が不足するため、対象外とする return hEncoding.GetString(btBytes, 0, byteSize - 1); } else { return hEncoding.GetString(btBytes, 0, byteSize); } }