读取二进制字段的问题!(200分)

  • 主题发起人 主题发起人 flybox728
  • 开始时间 开始时间
F

flybox728

Unregistered / Unconfirmed
GUEST, unregistred user!
从一个image型字段中读取二进制数(注意:image里存的是二进制的数列不是图片),要求取出相邻的两位,i放高位,i+1放低位,组成16位,转成整数再存入数组。我用流读出image字段,stream.size=40000,最后要转成20000个整数,可能描述有点问题吧,大侠应该明白我的意思吧。vc++的代码如下:
CLongBinary* pBin = variant.m_pbinary;
DWORD len = pBin->m_dwDataLength;
Mm waveMm = zeros(1,len/2);
LPSTR buffer = (LPSTR)GlobalLock(pBin->m_hData);
for(int i = 0;i<len;i+=2)
{ short y = (byte)buffer+(((int)(byte)buffer[i+1])<<8);
waveMm.r(i/2+1) = y
}
菜鸟小弟在这里请教了,用delphi如何实现。
 
这么麻烦做什么?还放个 vc++ 代码唬人啊。Delphi 里只要移移位就可以的东西,搞这么
复杂, vc++ 里也可以更简单处理的,居然写这么麻烦。唉。
 
flamingo 本人是十足菜鸟,麻烦写出移移位的代码出来看一下,好吗?
 
看清楚!你的 vc++ 就是使用了移位,只是不明白为什么写这么夸张。
在 Delphi 里把 m_hData 装进来处理就行。要我写代码,你是谁啊?
看你的介绍,注册时间 2001-11-14。不会不懂大富翁游戏吧。
 
不用移位也可以,
用MakeWord()函数就可以实现啊。

MakeWord()就是将两个Byte(1字节)类型的数组成一个word(2字节)的数字。
 
[red]shr行么?[/red]
 
[yellow][/yellow]果腹果腹嘎
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部