PB中二进制文件读取问题(原创)
2005-11-21 15:37
375 查看
笔者在开发一个应用系统时需要处理dbf文件数据,在PB中仅能够支持DBaseII,DBaseIII的数据格式,对于更新版本不被支持。因此需要自己编程进行处理。在编程过程中碰到二进制文件读写操作方面的问题,例如:按字节读入以下格式的文件并转换成十进制字符
AA 00 56 00 BB BB CC DD EE FF......
代码大概是这样的:
Integer li_filenum, loops, i,k,l
Long flen, bytes_read, new_pos
Blob b, tot_b, b1
SetPointer(hourglass!)
flen = FileLength("c:/file1.dat")
li_filenum = FileOpen("c:/file1.dat", &
streammode!, Read!, lockread!)
If flen > 32765 Then
If Mod(flen, 32765) = 0 Then
loops = flen/32765
Else
loops = (flen/32765) + 1
End If
Else
loops = 1
End If
new_pos = 1
For i = 1 To loops
bytes_read = FileRead(li_filenum, b)
tot_b = tot_b + b
Next
FileClose(li_filenum)
l = Len(tot_b)
For i = 1 To l
b1 = BlobMid(tot_b,i,1)
k = Asc(String(b1))
sle_1.Text += String(k) + ":"
Next
显示:170:0:86:0:187:187:204:221:238:255:
AA 00 56 00 BB BB CC DD EE FF......
代码大概是这样的:
Integer li_filenum, loops, i,k,l
Long flen, bytes_read, new_pos
Blob b, tot_b, b1
SetPointer(hourglass!)
flen = FileLength("c:/file1.dat")
li_filenum = FileOpen("c:/file1.dat", &
streammode!, Read!, lockread!)
If flen > 32765 Then
If Mod(flen, 32765) = 0 Then
loops = flen/32765
Else
loops = (flen/32765) + 1
End If
Else
loops = 1
End If
new_pos = 1
For i = 1 To loops
bytes_read = FileRead(li_filenum, b)
tot_b = tot_b + b
Next
FileClose(li_filenum)
l = Len(tot_b)
For i = 1 To l
b1 = BlobMid(tot_b,i,1)
k = Asc(String(b1))
sle_1.Text += String(k) + ":"
Next
显示:170:0:86:0:187:187:204:221:238:255:
相关文章推荐
- pb读取二进制文件
- .Net下二进制形式的文件(图片)的存储与读取(原创)
- 以上的文章是我解决这样一个问题时候的大致的思路: 把Matlab读取二进制文件的函数变成VBA读取二进制文件,实现同样的功能
- verilog读取的二进制与十六进制文件的格式问题
- InputStream 二进制读取文件, byte数据的长度问题
- JAVA读取文件的路径问题!
- 文件内容读取显示问题
- Java读取properties文件中文乱码问题解决
- Android 按照二进制格式读取.bin文件
- java读取隐藏文件的问题
- Java IO读取文件中文乱码问题
- 【R语言】R读取含中文excel文件,read.xlsx乱码问题
- c++文件读取最后一行读取两次的问题
- python读取文件写入数据库中编码问题
- Java读取文件----中文乱码问题
- 如何读取以BIFF格式存储的 Excel 二进制文件
- 转载+原创 使用记事本以及sqlyog编辑文件产生的文件编码格式问题
- (原创)二进制文件操作类
- 二进制输入或文件的读取
- nodejs文件读取中文乱码问题