我的代码: Private Function ReadFile(ByVal strFile As String, ByRef data() As Byte) As Single '读取: Dim TempFile As Long Dim LoadBytes() As Byte TempFile = FreeFile Open strFile For Binary As #TempFile ReDim LoadBytes(1 To LOF(TempFile)) As Byte'报错 Get #TempFile, , LoadBytes Close TempFile data = LoadBytes End Function 当strFile不是标准的DOS 8.3文件名时,LOF(TempFile)=0,ReDim那句话就会报错,如strFile是标准的DOS 8.3文件名时,LOF(TempFile)就会返回一个整数值(>0)
curFileNumber = FreeFile ReDim curData(FileLen(lsvFileList.ListItems(i).SubItems(1))) Open Trim(lsvFileList.ListItems(i).SubItems(1)) For Binary As #curFileNumber Get #curFileNumber, , curData Close #curFileNumber 这是我的代码,读什么文件都没有问题
Private Function ReadFile(ByVal strFile As String, ByRef data() As Byte) As Single
'读取:
Dim TempFile As Long
Dim LoadBytes() As Byte
TempFile = FreeFile
Open strFile For Binary As #TempFile
ReDim LoadBytes(1 To LOF(TempFile)) As Byte'报错
Get #TempFile, , LoadBytes
Close TempFile data = LoadBytes
End Function
当strFile不是标准的DOS 8.3文件名时,LOF(TempFile)=0,ReDim那句话就会报错,如strFile是标准的DOS 8.3文件名时,LOF(TempFile)就会返回一个整数值(>0)
不行,与lof(tempfile)结果一样,都是0
我用同一个WORD文档,一个取"test.doc",一个取"测试.doc",文件大小为2.56M,结果是"test.doc"可以读取,"测试.doc"不能读取
ReDim curData(FileLen(lsvFileList.ListItems(i).SubItems(1)))
Open Trim(lsvFileList.ListItems(i).SubItems(1)) For Binary As #curFileNumber
Get #curFileNumber, , curData
Close #curFileNumber
这是我的代码,读什么文件都没有问题
我换了你的代码,结果还是不行是不是VB需要做什么设置?