合并文件应该根据文件的不同(因为各个文件的文件头不同,合并时要删除文件头)来,不过好像意义不大啊。
--------------------------------------------------------------------
Made by Thirdapple's Studio
--------------------------------------------------------------------
Made by Thirdapple's Studio
解决方案 »
- 程序太平洋又重新开张了哦。
- 怎么提取WORD的页眉和页脚啊
- 字符串数据在导入EXCEL后,怎么变成了科学计数法形式的了?
- 如何用vb检测usb端口?
- 在datagrid里移记录问题
- Excel VBA操作图表数据标签的一个问题
- 字段是int,排序哪里出问题俩。
- 可以在设计阶段设置menu的tag值吗?
- AdamBear(学习再学习) Amoon(阿木)來領分吧!idoloveyou(我18岁,成人了!) AdamBear(学习再学习) Amoon(阿木) Richard2001(Richard)已經
- ZZAO回复各位网友(关于协同开发VB应用程序)
- 急!请大家帮我想想办法!
- 如何学好VB,放分
TEXT文件的话就太容易了
http://www.csdn.net/develop/read_article.asp?id=14112
寄[email protected]
此种方式是以行为单位进行读取的基本单位,主要应用的方法和函数有Open,Close,Line Input,FreeFile,EOF等。下面先简述其功能然后结合代码示例进行说明。Open:顾名思义,它的作用是打开文件,换而言之打开某个文件就是获得某个的控制权,一般情况下当文件处于打开状态时只有打开者才能对它进行操作。打开文件时要指定一个整数作为文件号,以后的操作都是针对这个代号进行的,而不是针对文件名。文件号也叫句柄,在程序中一个文件号只能指向一个文件,不能出现两个文件同时具有相同句柄的情况。Close:关闭文件,即释放文件的控制权。Line Input:以行为单位取得文件内容,以行为单位是指从当前位置开始到下一个换行符为止的内容。换行符是Chr(13) & Chr(10)两个字节组成,VB中已定义了常量vbCrLf,可直接使用。要注意的是Line Input读取一行时会把行尾的换行符去掉,因此我们在读取每行内容时要记得补上换行符才能保持得到的内容与文件一致。FreeFile:得到空闲的文件号,用这个函数取得文件号可以避免文件号的冲突。例如: Dim strFileName As String '文件名 Dim lngHandle As Long '文件句柄 Dim strAll As String '所读取的文本文件的所有内容 Dim strLine As String '在循环中存放每行的内容 strFileName = "c:\b.txt" '获得文件的句柄 lngHandle = FreeFile() 'For后面的参数表示以何种方式打开文件,Input是读取,Output是覆盖写入,Append是追加写入 Open strFileName For Input As lngHandle '循环直到文件尾 Do While Not EOF(lngHandle) '每次读取一行存放在strLine变量中 Line Input #lngHandle, strLine '每次读取都把所读到的内容连接到strAll变量,由于Line Input去掉了换行符,所以这里补上 strAll = strAll & strLine & vbCrLf Loop '显示得到的全部分内容MsgBox strAll, vbInformation 对文本文件的写入相对简单些,有三个步骤:打开文件,写入文本,关闭文件。代码示例: Dim strFileName As String '文件名 Dim lngHandle As Long '句柄 Dim strWrite As String '要写入的文本内容 strFileName = "c:\w.txt" lngHandle = FreeFile() '取得句柄 '准备要写入的内容 strWrite = "落日楼头,断鸿声里,江南游子。把吴钩看了,栏干拍遍,无人会、登临意。" Open strFileName For Output As lngHandle '打开文件 Print #lngHandle, strWrite '写入文本 Close lngHandle '关闭文件 MsgBox "写入完成。", vbInformation 二进制文件的操作
所有文件的存储其实质都是二进制的,二进制文件往往由两部分组成,一部分是文件头另一部分存放了文件的内容。文件头通常存放与文件格式有关的信息,以BMP等图象文件为例,它们的文件头中存放了是何种图形格式、图象大小、调色板等信息,要显示图象时先读取文件头以获得文件的详细信息,然后再按其格式把图象内容显示出来。用二进制方式可以操作任何的文件,当然至关重要的一点是要清楚了解所操作文件的文件头结构。 VB中二进制文件操作主要应用的方法和函数有:Open,Close,Get,Put等。Open:在For后面的打开模式要用Binary。Close:关闭文件。Get:在指定位置取得文件的内容,如果省略位置则从当前位置读取。Put:在指定位置写入文件,如果省略位置参数就从当前位置写。 下面结合代码讲解二进制文件的操作。下述程序完成了将两个文件结合成一个文件以及将这个结合后的文件再拆分成原来的两个文件。文件头的结构是自己定义的,非常简单,共8个字节(也就是两个长整型的长度),前4个字节存放第一个文件的长度,后4个字节存放第二个文件的长度。为了更直观地表达文件的结构,现假设有两个文件,第一个文件长度是100字节,第二个文件是200字节,那么合并后得到的文件应该是308字节。按顺序来看,文件的结构是:4第一文件的长度4第二文件的长度100第一文件的二进制内容200第二文件的二进制内容除了文件头的8字节长度是固定的后面的长度都会因文件的不同而变化的。 ‘实现文件的合并Private Sub MergeFile() Dim strFileName1 As String '第一个文件 Dim strFileName2 As String '第二个文件 Dim strOutput As String '合并后的文件 Dim aryContent() As Byte '用来读取文件的数组,每次读取前要重定义 strFileName1 = "c:\a.bmp" strFileName2 = "c:\b.bmp" strOutput = "c:\out.bmp" '注意下面三个Open语句都是用Binary模式打开的 Open strOutput For Binary As #100 Open strFileName1 For Binary As #1 Open strFileName2 For Binary As #2 Put #100, , LOF(1) '取得第一文件的长度,并把它写入到合并文件的文件头中 Put #100, , LOF(2) '取得第二文件的长度,并写入到合并文件的文件头中 ReDim aryContent(LOF(1) - 1) '重定义数组,为读取文件做准备 Get #1, , aryContent() '取得第一文件的内容到数组 Put #100, , aryContent() '把第一文件的内容写到合并文件中 ReDim aryContent(LOF(2) - 1) Get #2, , aryContent() Put #100, , aryContent() '关闭文件 Close #1 Close #2 Close #100End Sub‘实现文件的拆分Private Sub SplitFile() Dim strFileName1 As String Dim strFileName2 As String Dim strFileSplit As String Dim aryContent() As Byte Dim lngLOF(1) As Long '存放从文件头取得的两个文件的长度 strFileName1 = "c:\a2.bmp" strFileName2 = "c:\b2.bmp" strFileSplit = "c:\out.bmp" Open strFileSplit For Binary As #100 Get #100, , lngLOF(0) '取得第一文件的长度 Get #100, , lngLOF(1) '第二文件的长度 Open strFileName1 For Binary As #1 Open strFileName2 For Binary As #2 ReDim aryContent(lngLOF(0)-1) '用第一文件的长度重定义数组,为读取第一文件做准备 Get #100, 9, aryContent() '从第9字节,即文件后面开始读取第一文件的内容 Put #1, , aryContent() '把取得的内容写入到拆分文件中 ReDim aryContent(lngLOF(1)-1) Get #100, 9 + lngLOF(0) + 1, aryContent() '从第9字节再加上第一文件的长度处开始读取第二文件的内容,这里可以清楚地看到文件头的作用了 Put #2, , aryContent Close #1 Close #2 Close #100 MsgBox "拆分完成。", vbInformation 文本文件由于没有格式所以它的读写都比较简单和直观,而用二进制操作文件时其实质就是对文件头的理解,如果不知道文件头的结构那就无法对文件进行处理了,知道了文件头所包含的信息后,对文件的操作其实就是按规则进行Get、Put罢了。
http://www.dingwisdom.com/download/file.zip
http://www.dingwisdom.com/download/file.zip
[email protected]
这问题真搞笑。
两个文件单就合并,这太容易了,以二进制打开,写到第一个文件中不就行了。
但要将两个EXE文件合并,而且功能也合并了,上帝啊!!!!!!。
问问BILL吧,或许可能。
基础思想是将要合并的两个程序做成你的一个A程序的资源文件,当A程序运行时,释放这两个资源文件,并用Shell函数运行,就OK了。
The Great Thought from One member of CSDN(Not me).
--------------------------------------------------------------------
Made by Thirdapple's Studio
先写入一个文件,再写入这个文件格式,再写第二个文件,写第二个文件格式,依次写入,直到写完所有文件,第一个文件是EXE文件,然后在解文件时读最后的字节,就是从文件尾向文件头读。
这时第一个EXE是可以运行的,你把解开的程序做到第一个文件中不就行了
email联系吧.
[email protected]