QTP的那些事--二进制和字符串的相互转换

ascw表示对于unicode字符转化二进制的处理

'字符串转成二进制
Public   Function   StringToBinary(ByVal   VarString   As   String)   As   Variant 
    Dim   strBin   As   Variant
    Dim   varchar   As   String
    Dim   varasc   As   Long
    Dim   varlow,   varhigh
    Dim   i   As   Long
    strBin   =   " "
    For   i   =   1   To   Len(VarString)
            varchar   =   Mid(VarString,   i,   1)
            varasc   =   Asc(varchar)
            If   varasc   <   0   Then
                    varasc   =   varasc   +   65535
            End   If
            If   varasc   >   255   Then
                    varlow   =   Left(Hex(Asc(varchar)),   2)
                    varhigh   =   Right(Hex(Asc(varchar)),   2)
                    strBin   =   strBin   &   ChrB( "&H "   &   varlow)   &   ChrB( "&H "   &   varhigh)
            Else
                    strBin   =   strBin   &   ChrB(AscB(varchar))
            End   If
    Next
    StringToBinary   =   strBin
End   Function
'========================================================================
'二进制转换为字符串
Public   Function   BinaryToString(ByVal   BinaryStr   As   Variant)   As   String 
    Dim   lnglen   As   Long
    Dim   tmpBin   As   Variant
    Dim   strC   As   String
    Dim   skipflag   As   Long
    Dim   i   As   Long
    skipflag   =   0
    strC   =   " "
    If   Not   IsNull(BinaryStr)   Then
            lnglen   =   LenB(BinaryStr)
            For   i   =   1   To   lnglen
                    If   skipflag   =   0   Then
                        tmpBin   =   MidB(BinaryStr,   i,   1)
                        If   AscB(tmpBin)   >   127   Then
                                strC   =   strC   &   Chr(AscW(MidB(BinaryStr,   i   +   1,   1)   &   tmpBin))
                                skipflag   =   1
                        Else
                                strC   =   strC   &   Chr(AscB(tmpBin))
                        End   If
                    Else
                        skipflag   =   0
                    End   If
            Next
        End   If
        BinaryToString   =   strC
End   Function

 

 

 

*************************************************************************************************

方法二:

Function   getByteString(StringStr)
Dim   i,char
          For   i=1   to   Len(StringStr)
                    char=Mid(StringStr,i,1)
                    getByteString=getByteString&chrB(AscB(char))
          Next
End   Function
Function   getString(StringBin)
Dim   i
          getString= " "
          For   i=1   to   LenB(StringBin)
                    getString=getString&chr(AscB(MidB(StringBin,i,1))) 
          Next
End   Function

 

 

****************************************************************************************************

方法三:测试可用

Public   Function   StringToBinary(ByVal   VarString   As   String)   As   Variant
Dim   b()   As   Byte,   strBin   As   String,   i   As   Integer
b   =   StrConv(VarString,   vbUnicode)
For   i   =   0   To   UBound(b)
strBin   =   strBin   &   ChrB(b(i))
Next
StringToBinary   =   strBin
End   Function
Public   Function   BinaryToString(ByVal   BinaryStr   As   Variant)   As   String
  Dim   b()   As   Byte,   i   As   Integer
  ReDim   b(1   To   LenB(BinaryStr))
  For   i   =   1   To   LenB(BinaryStr)
  b(i)   =   AscB(MidB(BinaryStr,   i,   1))
  Next
  BinaryToString   =   StrConv(b,   vbFromUnicode)
End   Function

转载于:https://www.cnblogs.com/alterhu/archive/2012/03/26/2417746.html

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页