none
address = CInt("&H" & Mid(line_tmp, 4, 4)) 转换无效 RRS feed

  • 问题


  • address = CInt("&H" & Mid(line_tmp, 4, 4)) 

    从文本框中读取一行数据,取其中的几个byte先转十六进制,再转整赋值,怎么老提示:

    System.InvalidCastException = {"从字符串“&H”到类型“Integer”的转换无效。"}

    2013年10月15日 15:13

答案

  • System.InvalidCastException = {"从字符串“&H”到类型“Integer”的转换无效。"}

    CInt必须只能转化一个数值类型的字符串或者内容,不能包含任何非数字的字符在字符串里头。


    Click For donating:Free Rice For the poor
    For spamming-sender issues, you can either report it at Microsoft Spamming Issue, or just find "Report Spam Here+Number" at Forum Issue;You can also find "Verify Your Account+Number" at "Forum Issue", where you can submit to be confirmed to paste links or images.
    For more things to talk about? StackOverFlow is your choice.

    2013年10月16日 6:44
    版主

全部回复

  • "&H" & Mid(line_tmp, 4, 4)
    调试看看具体值

    http://feiyun0112.cnblogs.com/

    2013年10月16日 6:19
    版主
  • System.InvalidCastException = {"从字符串“&H”到类型“Integer”的转换无效。"}

    CInt必须只能转化一个数值类型的字符串或者内容,不能包含任何非数字的字符在字符串里头。


    Click For donating:Free Rice For the poor
    For spamming-sender issues, you can either report it at Microsoft Spamming Issue, or just find "Report Spam Here+Number" at Forum Issue;You can also find "Verify Your Account+Number" at "Forum Issue", where you can submit to be confirmed to paste links or images.
    For more things to talk about? StackOverFlow is your choice.

    2013年10月16日 6:44
    版主

  • address = CInt("&H" & Mid(line_tmp, 4, 4)) 

    从文本框中读取一行数据,取其中的几个byte先转十六进制,再转整赋值,怎么老提示:

    System.InvalidCastException = {"从字符串“&H”到类型“Integer”的转换无效。"}

    你可以使用

    address = Integer.Parse(Mid(line_tmp, 4, 4), Globalization.NumberStyles.HexNumber)

    或者

            Dim address As Integer = 0
            If Integer.TryParse(Mid(line_tmp, 4, 4), Globalization.NumberStyles.HexNumber, Nothing, address) Then
                '转换成功
            Else
                '转换失败
            End If


    • 已编辑 fcspro 2013年12月14日 8:40
    2013年12月14日 8:35