楼主,关于下标越界的问题我已经解决了,目前测试没再出现下标溢出的情况了
- Fram_Size = CLng(tempsize) '获取帧的大小
-
- ReDim Jpeg(Fram_Size - 1) '重新定义帧数组
- index_2 = FindChar(index_2, s, vbCrLf & vbCrLf)
- J = 0: index_2 = index_2 + 4: L = UBound(s)
- '将当前批次中的JPEG图像数据复制到帧数组中
- For i = index_2 To L
- If Fram_Size < (L - index_2 + 2) Then Exit For '错误判断
- Jpeg(J) = s(i)
- J = J + 1
- Next
复制代码
我觉得问题就出在 Fram_Size = CLng(tempsize)上,由于Fram_Size-1的值有时小于L-index_2+1,导致 ReDim Jpeg(Fram_Size - 1)数组时,数组大小不够,因此在For循环里,当J加到一定数后,Jpeg(J)数组出现溢出,所以我加了个判断,一旦出现这种情况,就干脆放弃这批图像数据,跳出For循环。程序运行时,相比修改前,也确实有时会出现图像丢失的现象,就是图像闪了一下,我觉得闪的那下就是出问题的图像数据,不知道分析的对不对。 |