?format("1a","00")
00
.
.
.
.
.
?format("12a","00")
00?format("13a","00")
01
.
.
.
.
.
?format("23a","00")
01

解决方案 »

  1.   

    楼主没有弄明白 format 函数的用法
    建议去 msdn 上查清楚 format 函数对各
    种数据类型的表达式用 format 函数后的返回值
      

  2.   

    你很不幸,在数字后面加a, 还要进行格式化,记住加a和加p还要格式化时,他会按照时间进行处理。看下面的过程。
    ?format("1a","00.00000000")
    00.04166667
    ?format(1/24,"00.00000000")
    00.04166667
    ?format("2a","00.00000000")
    00.08333333
    ?format("3a","00.00000000")
    00.12500000
    ?format("4a","00.00000000")
    00.16666667
    ?format("1p","00.00000000")
    00.54166667建议:
    如果要表示字符请使用:
    format("1b","00")
    或者
    format("1a","##")
      

  3.   

    xh_mlj(曦恒) 说:
    我是从串口设备中读数据,得到的是十六进制数,如果得到的数据是一位,则在数据前面加“0”。从串口设备读数据应该是一个数组或字符串,不知道你是那一种,你说得到的数据是一位时,前面加“0”,那多了可能有几位 2位 or 3位。
      

  4.   

    &H1A 吧? 我倒~VB的16进制表示为&H前缀,C++那个是0x
      

  5.   

    qyii(没读过大学)
    &H1A 吧? 我倒~
    VB的16进制表示为&H前缀,C++那个是0x诚然VB的16进制是&H,但从串口读出的数据是不会自动加上&H的,我们的xh_mlj(曦恒)在拆分出16进制数以前就已经出错了,何况他可能是用16进制传递BCD码或字符串呢。
      

  6.   

    Private Sub MSComm1_OnComm()
        On Error Resume Next
        
        Dim Buffer() As Byte
        Dim BufferTemp As Variant
        Dim StrData As String
        Dim StrHexData As String
            '延时
        Dim Start
        Start = Now()
            '设定开始时间
        Do
            DoEvents
        
        Loop Until Now() > DateAdd("s", 2, Start)
         
        With MSComm1
            Select Case .CommEvent
                Case comEvReceive
                    
                    .RThreshold = 0
                    
                    ReDim Buffer(.InBufferCount) As Byte
                    BufferTemp = .Input
                    Buffer = BufferTemp
                    
                    For IntI = 0 To UBound(Buffer())
                    
                        StrData = Hex(Buffer(IntI))
                        
                        StrHexData = StrHexData & Format(StrData, "00")
                        
                    Next
                Case comEvSend
                
            End Select
            
            .RThreshold = 1
        End With
        
    End Sub
      

  7.   

    Buffer(0) -- 2
    Buffer(1) -- 1
    Buffer(2) -- 118
    Buffer(3) -- 48
    Buffer(4) -- 49
    Buffer(5) -- 96
    Buffer(6) -- 0
    Buffer(7) -- 0
    Buffer(8) -- 0
    Buffer(9) -- 3
    Buffer(10) -- 48
    Buffer(11) -- 49
    Buffer(12) -- 54
    Buffer(13) -- 57
    Buffer(14) -- 48
    Buffer(15) -- 48
    Buffer(16) -- 48
    Buffer(17) -- 48
    Buffer(18) -- 2
    Buffer(19) -- 0
    Buffer(20) -- 48
    Buffer(21) -- 60
    Buffer(22) -- 5
    Buffer(23) -- 128
    Buffer(24) -- 32
    Buffer(25) -- 192
    Buffer(26) -- 16
    Buffer(27) -- 5
    Buffer(28) -- 48
    Buffer(29) -- 48
    Buffer(30) -- 65
    Buffer(31) -- 48
    Buffer(32) -- 48
    Buffer(33) -- 48
    Buffer(34) -- 48
    Buffer(35) -- 48
    Buffer(36) -- 48
    Buffer(37) -- 48
    Buffer(38) -- 48
    Buffer(39) -- 48
    Buffer(40) -- 48
    Buffer(41) -- 48
    Buffer(42) -- 48
    Buffer(43) -- 55
    Buffer(44) -- 48
    Buffer(45) -- 48
    Buffer(46) -- 48
    Buffer(47) -- 48
    Buffer(48) -- 48
    Buffer(49) -- 49
    Buffer(50) -- 48
    Buffer(51) -- 57
    Buffer(52) -- 49
    Buffer(53) -- 52
    Buffer(54) -- 48
    Buffer(55) -- 53
    Buffer(56) -- 48
    Buffer(57) -- 57
    Buffer(58) -- 48
    Buffer(59) -- 54
    Buffer(60) -- 49
    Buffer(61) -- 54
    Buffer(62) -- 57
    Buffer(63) -- 57
    Buffer(64) -- 48
    Buffer(65) -- 51
    Buffer(66) -- 48
    Buffer(67) -- 50
    Buffer(68) -- 49
    Buffer(69) -- 48
    Buffer(70) -- 48
    Buffer(71) -- 52
    Buffer(72) -- 48
    Buffer(73) -- 48
    Buffer(74) -- 55
    Buffer(75) -- 57
    Buffer(76) -- 54
    Buffer(77) -- 56
    Buffer(78) -- 56
    Buffer(79) -- 48
    Buffer(80) -- 55
    Buffer(81) -- 48
    Buffer(82) -- 55
    Buffer(83) -- 48
    Buffer(84) -- 50
    Buffer(85) -- 53
    Buffer(86) -- 53
    Buffer(87) -- 54
    Buffer(88) -- 54
    Buffer(89) -- 54
    Buffer(90) -- 54
    Buffer(91) -- 61
    Buffer(92) -- 57
    Buffer(93) -- 57
    Buffer(94) -- 48
    Buffer(95) -- 51
    Buffer(96) -- 53
    Buffer(97) -- 50
    Buffer(98) -- 48
    Buffer(99) -- 48
    Buffer(100) -- 48
    Buffer(101) -- 48
    Buffer(102) -- 48
    Buffer(103) -- 48
    Buffer(104) -- 49
    Buffer(105) -- 49
    Buffer(106) -- 63
    Buffer(107) -- 0
    Buffer(108) -- 0
    Buffer(109) -- 0
    Buffer(110) -- 0
    Buffer(111) -- 0
    Buffer(112) -- 48
    Buffer(113) -- 48
    Buffer(114) -- 48
    Buffer(115) -- 48
    Buffer(116) -- 49
    Buffer(117) -- 53
    Buffer(118) -- 49
    Buffer(119) -- 54
    Buffer(120) -- 49
    Buffer(121) -- 48
    Buffer(122) -- 53
    Buffer(123) -- 49
    Buffer(124) -- 49
    Buffer(125) -- 48
    Buffer(126) -- 48
    Buffer(127) -- 52
    Buffer(128) -- 53
    Buffer(129) -- 49
    Buffer(130) -- 49
    Buffer(131) -- 48
    Buffer(132) -- 48
    Buffer(133) -- 50
    Buffer(134) -- 55
    Buffer(135) -- 77
    Buffer(136) -- 130
    Buffer(137) -- 114
    Buffer(138) -- 118
    Buffer(139) -- 133
    Buffer(140) -- 188
    Buffer(141) -- 55
    Buffer(142) -- 55
    Buffer(143) -- 0
    Buffer(144) -- 38
    Buffer(145) -- 48
    Buffer(146) -- 48
    Buffer(147) -- 48
    Buffer(148) -- 48
    Buffer(149) -- 48
    Buffer(150) -- 50
    Buffer(151) -- 48
    Buffer(152) -- 48
    Buffer(153) -- 48
    Buffer(154) -- 48
    Buffer(155) -- 52
    Buffer(156) -- 49
    Buffer(157) -- 48
    Buffer(158) -- 48
    Buffer(159) -- 48
    Buffer(160) -- 48
    Buffer(161) -- 48
    Buffer(162) -- 48
    Buffer(163) -- 32
    Buffer(164) -- 32
    Buffer(165) -- 32
    Buffer(166) -- 32
    Buffer(167) -- 32
    Buffer(168) -- 32
    Buffer(169) -- 32
    Buffer(170) -- 32
    Buffer(171) -- 247
    Buffer(172) -- 55
    Buffer(173) -- 18
    Buffer(174) -- 173
    Buffer(175) -- 228
    Buffer(176) -- 127
    Buffer(177) -- 17
    Buffer(178) -- 214
    Buffer(179) -- 3
    Buffer(180) -- 235
      

  8.   

    上面是放在数组里的数据,我想要得到的是:
    02 01 76 30 31 60 00 00 00 03 30 31 36 39 30 30 30 30 02 00 30 3C 05 80 20 C0 10 05 30 30 41 30 30 30 30 30 30 30 30 30 30 30 30 37 30 30 30 30 30 31 30 39 31 34 30 35 30 39 30 36 31 36 39 39 30 33 30 32 31 30 30 34 30 30 37 39 36 38 38 30 37 30 37 30 32 35 35 36 36 36 36 3D 39 39 30 33 35 32 30 30 30 30 30 30 31 31 3F 00 00 00 00 00 30 30 30 30 31 35 31 36 31 30 35 31 31 30 30 34 35 31 31 30 30 32 37 4D 82 72 76 85 BC 37 37 00 26 30 30 30 30 30 32 30 30 30 30 34 31 30 30 30 30 30 30 20 20 20 20 20 20 20 20 F7 37 12 AD E4 7F 11 D6 03 EB也就是把数组里的数据转换成十六进制,如果是一位,例如 Buffer(0)=2 转换后为 02.我现在的程序是这样写的:
    For IntI = 0 To UBound(Buffer())
                        
        StrData = Hex(Buffer(IntI))    If Len(StrData) = 1 Then
           StrHexData = StrHexData & "0" & StrData
        Else
           StrHexData = StrHexData & StrData
        End If
                        
    Next我原来用Format格式化数据时发现的问题,这组数据里没有 1A ,但数据是不定的,下组数据里可能就会出现!
      

  9.   

    strhexdata=iif(len(StrData)=1,"0" & strdata,strdata)