我有一段讀二進制文件的代碼,當我第一次讀的時候讀出的數據正常,
但當我第二再讀的時候,讀出的數據就全為零,不知是何原因望指點。
下面是我的代碼:
Public Function ReadStreamPicture(picFilename As String) As POINTSTRUCT()
Dim PtFile As String
Dim i As Integer
Static lOffset As Long
ReDim ptdata(0) As POINTSTRUCT
If picFilename = "" Then
PtFile = App.Path & "\StreamPicture.cdv"
Else
PtFile = picFilename
End If
Open PtFile For Binary Access Read As #2
GlbFRecord = LOF(2) / 16
For i = 1 To GlbFRecord '全局變量,已定義
ReDim Preserve ptdata(i) As POINTSTRUCT
Get #2, lOffset + 1, ptdata(i).dX
Get #2, lOffset + 9, ptdata(i).dY
lOffset = lOffset + 16
Next i
Close #2
ReadStreamPicture = ptdata
End Function'POINTSTRUCT為自定義結構體。
Public Type POINTSTRUCT 'for Point
dX As Double
dY As Double
End Type作如下調用:
Private Sub mnuOpenStreamPic_Click()
Dim fStreamPic As String
On Error GoTo CanelOpenErr
CdlgUsys.CancelError = True
CdlgUsys.Filter = "*.CDV|*.CDV"
CdlgUsys.Action = 1
fStreamPic = CdlgUsys.FileName
PU=ReadStreamPicture(fStreamPic)(1)’數據正常 PI=ReadStreamPicture(fStreamPic)(2)’全為零
CanelOpenErr:End Sub
但當我第二再讀的時候,讀出的數據就全為零,不知是何原因望指點。
下面是我的代碼:
Public Function ReadStreamPicture(picFilename As String) As POINTSTRUCT()
Dim PtFile As String
Dim i As Integer
Static lOffset As Long
ReDim ptdata(0) As POINTSTRUCT
If picFilename = "" Then
PtFile = App.Path & "\StreamPicture.cdv"
Else
PtFile = picFilename
End If
Open PtFile For Binary Access Read As #2
GlbFRecord = LOF(2) / 16
For i = 1 To GlbFRecord '全局變量,已定義
ReDim Preserve ptdata(i) As POINTSTRUCT
Get #2, lOffset + 1, ptdata(i).dX
Get #2, lOffset + 9, ptdata(i).dY
lOffset = lOffset + 16
Next i
Close #2
ReadStreamPicture = ptdata
End Function'POINTSTRUCT為自定義結構體。
Public Type POINTSTRUCT 'for Point
dX As Double
dY As Double
End Type作如下調用:
Private Sub mnuOpenStreamPic_Click()
Dim fStreamPic As String
On Error GoTo CanelOpenErr
CdlgUsys.CancelError = True
CdlgUsys.Filter = "*.CDV|*.CDV"
CdlgUsys.Action = 1
fStreamPic = CdlgUsys.FileName
PU=ReadStreamPicture(fStreamPic)(1)’數據正常 PI=ReadStreamPicture(fStreamPic)(2)’全為零
CanelOpenErr:End Sub
解决方案 »
- vb 能否用InputBox生成不确定数个Image控件数组并排列显示
- 关于工程之间加载窗体的问题
- 帮助
- webbrowser下载文件的问题
- 高手们``` 请问VB里把active dll控件,怎么生成标准的dll呀~``
- Oracle Objects for OLE及在VB中的应用,怎样实现事物回滚?
- 不知道谁对信息加密感兴趣,在下有一款加密软件.
- DSN连接SQL SERVER无法成功 分不够再加!!!!!!!11
- 来帮忙,两个小问题??
- 初学,,问题,,高手,,帮忙,,谢谢
- 急、急、急。各位高手,我想用VB将一张图片的某一部分改变颜色,并将修改过的图片,依然保存为原格式(JPG),该如何做????
- 怎么取得datagrid里面的你所点的那一行中的某一个单元格内的内容????、
在关闭(Close)文件后调用FreeFile 释放占用的文件句柄
在打开(Open)文件后使用Seek 将文件指针指向文件头
在关闭(Close)文件后调用FreeFile 释放占用的文件句柄
居然没看到这个
因我的程序需要不能那樣改。