当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·avi问题,答对100分     »显示摘要«
    摘要: 我用avistreamgetframe读出avi图象的数据并将其画在cscrollview中,但是对于没有音频的avi文件一切正常,而对于有音频的文件这无法画出。且退出时产生异常。在avistreamgetframe 返回的byte*中是否含有音频数据? ......
    摘要: 我安装了sun的j2sdk-1_4_0,我安装在c:\jdk\,安装完后在jdk目录下有一个src.zip压缩文件,请问我是否要解压这个文件,如果要解压,那解压后的目录结构是怎样的.谢谢.还有怎样知道安装成功了java? ......


求助

谁有BASE64编码的VB源码

NO.1   作者: daviddivad

Private   Const   sBASE_64_CHARACTERS   =   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"  
   
  Base64   解码     ""   表示失败  
  Public   Function   fun_Base64Decode(ByVal   str_Source   As   String)   As   String  
          Dim   str_Result   As   String  
          Dim   str_Temp   As   String  
          Dim   str_Bin(1   To   3)   As   String  
          Dim   int_I   As   Integer  
          Dim   int_Len   As   Integer  
          Dim   int_Pos(1   To   4)   As   Integer  
          Dim   int_J   As   Integer  
          int_Len   =   Len(str_Source)  
          长度不是4的倍数,用空格填充  
          If   int_Len   Mod   4   <>   0   Then  
                  str_Source   =   str_Source   &   String(4   -   (int_Len   Mod   4),   Chr(32))  
                  int_Len   =   Len(str_Source)  
          End   If  
          For   int_I   =   1   To   int_Len   Step   4   每次取4个字符  
                  str_Temp   =   Mid$(str_Source,   int_I,   4)  
                  找出每个字符在常量里的位置  
                  For   int_J   =   1   To   4  
                          int_Pos(int_J)   =   InStr(1,   sBASE_64_CHARACTERS,   Mid$(str_Temp,   int_J,   1))   -   1  
                          If   int_Pos(int_J)   >=   64   Or   int_Pos(int_J)   <   0   Then   fun_Base64Decode   =   "":   Exit   Function  
                  Next   int_J  
                  把int_Pos的各个数值转换为二进制,表示为6位,因为它的值在0到63之间,所以一共有4*6=24位  
                  每次取出8位,转换为一个字符,所以可以转换为24/8=3个字符  
                  str_Bin(1)   =   Chr(int_Pos(1)   *   4   +   (int_Pos(2)   And   &H30)   \   16)  
                  str_Bin(2)   =   Chr((int_Pos(2)   And   &HF)   *   16   +   (int_Pos(3)   And   &H3C)   \   4)  
                  str_Bin(3)   =   Chr((int_Pos(3)   And   &H3)   *   64   +   int_Pos(4))  
                  str_Temp   =   str_Bin(1)   &   str_Bin(2)   &   str_Bin(3)  
                  str_Result   =   str_Result   &   str_Temp  
          Next   int_I  
          fun_Base64Decode   =   Trim(str_Result)  
  End   Function  
   
  Base64   编码         ""表示失败  
  Public   Function   fun_Base64Encode(ByVal   str_Source   As   String)   As   String  
          Dim   int_I   As   Integer  
          Dim   int_J   As   Integer  
          Dim   str_Result   As   String  
          Dim   int_Pos(1   To   4)   As   Integer  
          Dim   int_Bin(1   To   3)   As   Integer  
          Dim   str_Temp   As   String  
          Dim   int_Len   As   Integer  
          int_Len   =   Len(str_Source)  
          长度不是3的倍数,用空格填充  
          If   int_Len   Mod   3   <>   0   Then  
                  str_Source   =   str_Source   &   String(3   -   (int_Len   Mod   3),   Chr(32))  
                  int_Len   =   Len(str_Source)  
          End   If  
          For   int_I   =   1   To   int_Len   Step   3   每次取3个字符  
                  str_Temp   =   Mid$(str_Source,   int_I,   3)  
                  计算每个字符的ASCII值  
                  For   int_J   =   1   To   3  
                          int_Bin(int_J)   =   Asc(Mid$(str_Temp,   int_J,   1))  
                  Next   int_J  
                  每个字符以8位表示,所以一共为8*3=24位  
                  每次取出6位,所以一共可取24/6=4次  
                  int_Pos(1)   =   (int_Bin(1)   And   &HFC)   \   4  
                  int_Pos(2)   =   (int_Bin(1)   And   &H3)   *   16   +   (int_Bin(2)   And   &HF0)   \   16  
                  int_Pos(3)   =   (int_Bin(2)   And   &HF)   *   4   +   (int_Bin(3)   And   &HC0)   \   64  
                  int_Pos(4)   =   int_Bin(3)   And   &H3F  
                  str_Temp   =   ""  
                  在常量表达式中取出这4个数值所在位置的字符  
                  For   int_J   =   1   To   4  
                          If   int_Pos(int_J)   >   63   Or   int_Pos(int_J)   <   0   Then   fun_Base64Encode   =   "":   Exit   Function  
                          str_Temp   =   str_Temp   &   Mid$(sBASE_64_CHARACTERS,   int_Pos(int_J)   +   1,   1)  
                  Next   int_J  
                  str_Result   =   str_Result   &   str_Temp  
          Next   int_I  
          fun_Base64Encode   =   str_Result  
  End   Function  
 


    摘要: 正常运行的系统最近在检索数据时发生以下错误: datawindow error: ! select error:attempt to convert data stopped by syntax in source field 请问各路神仙这是怎么回事?最近没做过什么修改.难道让我重做一次?? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE