因为企业需要对一些特殊文档进行加密处理,所以想到了二进制的运算,之前很少用VB做二进制的运算。
所以想了解一下。
比如:把一个大文件转成二进制保存(可以通过保存到SQL中的Binary来实现),然后对它进行一些处理,如每次读取16位,将前8位和后8位进行互换,直至结束。这样重新保存的文档将无法正常打开,只有再一次地进行互换后才能正常打开。
类似这样的操作,我都有那些二进制的函数可以使用?
我需要知道:
1、按我指定的位数读取;
2、换位或其它运算后如何再整合回去并保存;
3、运算函数如:与、或、与非、或非等。
4、如果判断已经读到文件尾了(就是文件EOF了)

解决方案 »

  1.   

    文件本身就是用二进制保存的
    用binary的方式打开文件,随便你怎么处理
      

  2.   

    简单来讲,在VB里是对字节操作.如果非要对每个位进行操作,VB没有直接提供的办法,要自己实现.按你上面讲的,8位正好是一个BYTE,还是对字节操作吧.如果基于字节操作,那么你的问题就都比较好说:首先把数据读入缓冲区,如果目标文件太大,大于20M,则分段,每次读20M.然后:1、按我指定的位数读取;
        直接使用字节数组的索引.
    2、换位或其它运算后如何再整合回去并保存;
        直接对元素进行赋值即可.
    3、运算函数如:与、或、与非、或非等。
        现成的AND,OR,XOR,但貌似没有与非,要自己处理了.
    4、如判断已经读到文件尾了(就是文件EOF了)
        数组在读入时你已经知道正确的长度了,只需要对当前的索引进行比较,看看是否大于这个长度就行了.
      

  3.   

    对于此类问题,如果考虑效率,首推c不建议用VB
    一般用C做dll,用VB调用