VB.NET Byte配列を文字列に変換する

UNICODE

Private Function UnicodeBytesToString( 
    ByVal bytes() As Byte) As String

    Return System.Text.Encoding.Unicode.GetString(bytes)
End Function

シフトJIS(SJIS)

    Private Function SJISBytesToString(ByVal bytes() As Byte) As String
        System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)
        Return System.Text.Encoding.GetEncoding("Shift_JIS").GetString(bytes)
    End Function

ネタ元

docs.microsoft.com

.NETでシフトJISのEncoding取ろうとしてエラーになるのは Coreだから

ASCIIとUnicode以外のエンコーディングがサポートされなくなった。


シフトJISのEncodingを取得するには、「Encoding.GetEncoding("Shift_JIS")」を呼び出す前に、次の1行を追加すればOK

C#

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

VB.net

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)

C#でIsNumericの代用

dobon.net


doubleに変換できるかで判断

string str = "-12.34";

//doubleに変換できるか確かめる
double d;
if (double.TryParse(str, out d))
{
    //変換出来たら、dにその数値が入る
    Console.WriteLine("{0} は数値 {1} に変換できます。", str, d);
}
else
{
    Console.WriteLine("{0} は数字ではありません。", str);
}

//.NET Framework 1.1以前では、以下のようにする
//if (double.TryParse(str,
//    System.Globalization.NumberStyles.Float |
//        System.Globalization.NumberStyles.AllowThousands,
//    System.Globalization.NumberFormatInfo.CurrentInfo,
//    out d))

C#でMid、Left、Right関数

dobon.net

/// <summary>
/// 文字列の指定した位置から指定した長さを取得する
/// </summary>
/// <param name="str">文字列</param>
/// <param name="start">開始位置</param>
/// <param name="len">長さ</param>
/// <returns>取得した文字列</returns>
public static string Mid(string str, int start, int len)
{
    if (start <= 0)
    {
        throw new ArgumentException("引数'start'は1以上でなければなりません。");
    }
    if (len < 0)
    {
        throw new ArgumentException("引数'len'は0以上でなければなりません。");
    }
    if (str == null || str.Length < start)
    {
        return "";
    }
    if (str.Length < (start + len))
    {
        return str.Substring(start - 1);
    }
    return str.Substring(start - 1, len);
}

/// <summary>
/// 文字列の指定した位置から末尾までを取得する
/// </summary>
/// <param name="str">文字列</param>
/// <param name="start">開始位置</param>
/// <returns>取得した文字列</returns>
public static string Mid(string str, int start)
{
    return Mid(str, start, str.Length);
}

/// <summary>
/// 文字列の先頭から指定した長さの文字列を取得する
/// </summary>
/// <param name="str">文字列</param>
/// <param name="len">長さ</param>
/// <returns>取得した文字列</returns>
public static string Left(string str, int len)
{
    if (len < 0)
    {
        throw new ArgumentException("引数'len'は0以上でなければなりません。");
    }
    if (str == null)
    {
        return "";
    }
    if (str.Length <= len)
    {
        return str;
    }
    return str.Substring(0, len);
}

/// <summary>
/// 文字列の末尾から指定した長さの文字列を取得する
/// </summary>
/// <param name="str">文字列</param>
/// <param name="len">長さ</param>
/// <returns>取得した文字列</returns>
public static string Right(string str, int len)
{
    if (len < 0)
    {
        throw new ArgumentException("引数'len'は0以上でなければなりません。");
    }
    if (str == null)
    {
        return "";
    }
    if (str.Length <= len)
    {
        return str;
    }
    return str.Substring(str.Length - len, len);
}