pb10读取二进制文件的疑惑

ccbaor 2014-01-28 04:43:34
小弟需要在pb中调用c的api函数,因此需要将一个二进制文件的内容读取到char数组中,使用了一下代码
Integer li_filenum
Long flen, bytes_read
Blob b, tot_b, b1
char ch

flen = FileLength("hardware.bin")

li_filenum = FileOpen("hardware.bin",streammode!, Read!, lockread!)

bytes_read = FileRead(li_filenum, b)

FileClose(li_filenum)

char exeFileBuf[]=space(flen)
int test[1024]

For i = 1 To Len(b)
b1 = BlobMid(b,i,1)
ch=char(b1)
test[i]=asc(ch) //这个数组是调试测试使用
Next

每次调试的结果是,文件能打开,大小可以获取,但是test数组全部元素都为0,小弟不知道是读取文件时出错了,还是blob转换为char[]时出错了,敬请赐教
另外,这段代码在pb8上可以正常运行
...全文
239 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccbaor 2014-01-29
  • 打赏
  • 举报
回复
引用 2 楼 xiajinxian 的回复:
写错了,应该是b1 test[i]=asca(string(b1,encodingansi!)) //
太感谢了,可以了,低版本的可以,pb10不可以,我觉得可能是unicode的问题,原来这么解决,太感谢了,祝您新春愉快
ccbaor 2014-01-29
  • 打赏
  • 举报
回复
引用 2 楼 xiajinxian 的回复:
写错了,应该是b1 test[i]=asca(string(b1,encodingansi!)) //
好,我试试,感谢赐教!
A啦Dbit 2014-01-28
  • 打赏
  • 举报
回复
写错了,应该是b1 test[i]=asca(string(b1,encodingansi!)) //
A啦Dbit 2014-01-28
  • 打赏
  • 举报
回复
在PB10下 循环里改成如下试试 test[i]=asca(string(b,encodingansi!)) //

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧