VB6中 如何将图片保存到一个dat文件中
有picturebox123里面分别有三张不同的图我想把单纯只将它们保存到一个新建的DAT文件中并调用,不知如何处理?如果是单纯的多个mp3或者wav呢?请不吝赐教!如果...
有picturebox1 2 3
里面分别有三张不同的图
我想把单纯只将它们保存到一个新建的DAT文件中并调用,不知如何处理?
如果是单纯的多个mp3或者wav呢?
请不吝赐教!
如果有详细代码就更好了,因为我是VB初学者。
希望可以达到以下目的:
保存一些JPG以及GIF图到一个文件中(听说DAT文件万能啊)
然后在以后的程序中要抽取部分或者全部调用到pictureBOX中来显示~
代码~ 展开
里面分别有三张不同的图
我想把单纯只将它们保存到一个新建的DAT文件中并调用,不知如何处理?
如果是单纯的多个mp3或者wav呢?
请不吝赐教!
如果有详细代码就更好了,因为我是VB初学者。
希望可以达到以下目的:
保存一些JPG以及GIF图到一个文件中(听说DAT文件万能啊)
然后在以后的程序中要抽取部分或者全部调用到pictureBOX中来显示~
代码~ 展开
4个回答
展开全部
'
'这个方法dat文件所占用的空间几乎为各文件大小之和
'自定义一个类型,作为随机文件dat的格式
Private Type du '如果文件个数固定那可以直接定义三个
'byte数组,那样速度可以更快一点
byt() As Byte '文件都保存在这里,二进制数组
dx() As Long '每个文件的大小
mc() As String '每个文件的名称
End Type
Dim du_1 As du
Dim du_4 As du
Private Sub Form_Load()
cs = Timer '仅闹哪为测试时间用
'共测试慧做了三个文件,类型各不相同
Dim wenjian(2) As String, m, n, a, ws
Dim xin() As Byte
ws = 3 '文件数
'第一组
'wenjian(0) = "c:\Book1.xls" '前弯衡13,824 字节
'wenjian(1) = "c:\IIS调试器.exe" '650,419 字节
'wenjian(2) = "c:\Readme.rtf" '57,363 字节
wenjian(0) = "c:\1.jpg" '2,351,738 字节
wenjian(1) = "c:\2.jpg" '2,421,660 字节
wenjian(2) = "c:\3.jpg" '2,657,808 字节
ReDim du_1.dx(ws - 1)
ReDim du_1.mc(ws - 1)
a = 0
For m = 0 To ws - 1
Open wenjian(m) For Binary As #1
du_1.dx(m) = FileLen(wenjian(m))
'如果是当前路径,那就直接把wenjian(m)赋值给du_1.mc(m)
du_1.mc(m) = Mid(wenjian(m), InStrRev(wenjian(m), "\") + 1)
ReDim Preserve du_1.byt(a + du_1.dx(m) - 1)
ReDim xin(du_1.dx(m) - 1)
Get #1, 1, xin
For n = 0 To du_1.dx(m) - 1
du_1.byt(a + n) = xin(n)
Next
a = a + du_1.dx(m)
Close #1
Next
'写入到dat文件
Open "c:\cs.dat" For Binary As #1
Put #1, 1, du_1
Close #1
'读取dat文件
Open "c:\cs.dat" For Binary As #1
Get #1, 1, du_4
Close #1
a = 0
For m = 0 To UBound(du_4.dx)
ReDim xin(du_4.dx(m) - 1)
For n = 0 To du_4.dx(m) - 1
xin(n) = du_4.byt(n + a)
Next
a = a + du_4.dx(m)
Open "c:\cs" & du_4.mc(m) For Binary As #1
Put #1, , xin
Close #1
Next
'测试用时
'第一组0.515625秒,
'第二组4.34375秒
Debug.Print Timer - cs '仅为测试时间用
End Sub
'这个方法dat文件所占用的空间几乎为各文件大小之和
'自定义一个类型,作为随机文件dat的格式
Private Type du '如果文件个数固定那可以直接定义三个
'byte数组,那样速度可以更快一点
byt() As Byte '文件都保存在这里,二进制数组
dx() As Long '每个文件的大小
mc() As String '每个文件的名称
End Type
Dim du_1 As du
Dim du_4 As du
Private Sub Form_Load()
cs = Timer '仅闹哪为测试时间用
'共测试慧做了三个文件,类型各不相同
Dim wenjian(2) As String, m, n, a, ws
Dim xin() As Byte
ws = 3 '文件数
'第一组
'wenjian(0) = "c:\Book1.xls" '前弯衡13,824 字节
'wenjian(1) = "c:\IIS调试器.exe" '650,419 字节
'wenjian(2) = "c:\Readme.rtf" '57,363 字节
wenjian(0) = "c:\1.jpg" '2,351,738 字节
wenjian(1) = "c:\2.jpg" '2,421,660 字节
wenjian(2) = "c:\3.jpg" '2,657,808 字节
ReDim du_1.dx(ws - 1)
ReDim du_1.mc(ws - 1)
a = 0
For m = 0 To ws - 1
Open wenjian(m) For Binary As #1
du_1.dx(m) = FileLen(wenjian(m))
'如果是当前路径,那就直接把wenjian(m)赋值给du_1.mc(m)
du_1.mc(m) = Mid(wenjian(m), InStrRev(wenjian(m), "\") + 1)
ReDim Preserve du_1.byt(a + du_1.dx(m) - 1)
ReDim xin(du_1.dx(m) - 1)
Get #1, 1, xin
For n = 0 To du_1.dx(m) - 1
du_1.byt(a + n) = xin(n)
Next
a = a + du_1.dx(m)
Close #1
Next
'写入到dat文件
Open "c:\cs.dat" For Binary As #1
Put #1, 1, du_1
Close #1
'读取dat文件
Open "c:\cs.dat" For Binary As #1
Get #1, 1, du_4
Close #1
a = 0
For m = 0 To UBound(du_4.dx)
ReDim xin(du_4.dx(m) - 1)
For n = 0 To du_4.dx(m) - 1
xin(n) = du_4.byt(n + a)
Next
a = a + du_4.dx(m)
Open "c:\cs" & du_4.mc(m) For Binary As #1
Put #1, , xin
Close #1
Next
'测试用时
'第一组0.515625秒,
'第二组4.34375秒
Debug.Print Timer - cs '仅为测试时间用
End Sub
展开全部
你慧悔可以自定义数据文件格式,下面给出Dat文件结构细节,请参考:
一、文件内容:把文件(Picture、mp3、wav或其他任何文件)内容以byte字节存入文件中;
二、文件清单列表:在文件的末尾记录该文件在dat文件卖历中的起止位置及文件名称;
三、如果是多个文件,就可以参考步骤一、二进行。注意文件清单列中碧搜表始终位于DAT文件末尾,以便读取操作。
一、文件内容:把文件(Picture、mp3、wav或其他任何文件)内容以byte字节存入文件中;
二、文件清单列表:在文件的末尾记录该文件在dat文件卖历中的起止位置及文件名称;
三、如果是多个文件,就可以参考步骤一、二进行。注意文件清单列中碧搜表始终位于DAT文件末尾,以便读取操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个保存到BMP文件中就可以用SavePicture函数,三张保存到一个文件可以先用PictureBox控件的PaintPicture方法把三张图画到第四个PictureBox控件上,磨歼档然后调瞎乱用SavePicture "X.BMP",Picture4.Image
只是保存到JPG文件中,就需要写很复改岁杂的代码,
只是保存到JPG文件中,就需要写很复改岁杂的代码,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直裤灶接保存为jpg活bmp文件啊
SavePicture Picture1.Image,文件缺纯弯路径(如"C:\Windows\1.jpg")伏闷
SavePicture Picture1.Image,文件缺纯弯路径(如"C:\Windows\1.jpg")伏闷
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询