知识大全 VB中文件操作的两种方式

Posted 文件

篇首语:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB中文件操作的两种方式相关的知识,希望对你有一定的参考价值。

VB中文件操作的两种方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  文本文件的操作

  此种方式是以行为单位进行读取的基本单位 主要应用的方法和函数有Open Close Line Input FreeFile EOF等 下面先简述其功能然后结合代码示例进行说明

  Open:顾名思义 它的作用是打开文件 换而言之打开某个文件就是获得某个的控制权 一般情况下当文件处于打开状态时只有打开者才能对它进行操作 打开文件时要指定一个整数作为文件号 以后的操作都是针对这个代号进行的 而不是针对文件名 文件号也叫句柄 在程序中一个文件号只能指向一个文件 不能出现两个文件同时具有相同句柄的情况

  Close:关闭文件 即释放文件的控制权

  Line Input:以行为单位取得文件内容 以行为单位是指从当前位置开始到下一个换行符为止的内容 换行符是Chr( ) & Chr( )两个字节组成 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:在指定位置写入文件 如果省略位置参数就从当前位置写

  下面结合代码讲解二进制文件的操作

  下述程序完成了将两个文件结合成一个文件以及将这个结合后的文件再拆分成原来的两个文件 文件头的结构是自己定义的 非常简单 共 个字节(也就是两个长整型的长度) 前 个字节存放第一个文件的长度 后 个字节存放第二个文件的长度 为了更直观地表达文件的结构 现假设有两个文件 第一个文件长度是 字节 第二个文件是 字节 那么合并后得到的文件应该是 字节 按顺序来看 文件的结构是

   第一文件的长度

   第二文件的长度

   第一文件的二进制内容

   第二文件的二进制内容

  除了文件头的 字节长度是固定的后面的长度都会因文件的不同而变化的

   实现文件的合并

  Private Sub MergeFile()

  Dim strFileName As String 第一个文件

  Dim strFileName As String 第二个文件

  Dim strOutput As String 合并后的文件

  Dim aryContent() As Byte 用来读取文件的数组 每次读取前要重定义

  strFileName = c:\\a bmp

  strFileName = c:\\b bmp

  strOutput = c:\\out bmp

   注意下面三个Open语句都是用Binary模式打开的

  Open strOutput For Binary As #

  Open strFileName For Binary As #

  Open strFileName For Binary As #

  Put # LOF( ) 取得第一文件的长度 并把它写入到合并文件的文件头中

  Put # LOF( ) 取得第二文件的长度 并写入到合并文件的文件头中

  ReDim aryContent(LOF( ) ) 重定义数组 为读取文件做准备

  Get # aryContent() 取得第一文件的内容到数组

  Put # aryContent() 把第一文件的内容写到合并文件中

  ReDim aryContent(LOF( ) )

  Get # aryContent()

  Put # aryContent()

   关闭文件

  Close #

  Close #

  Close #

  End Sub

   实现文件的拆分

  Private Sub SplitFile()

  Dim strFileName As String

  Dim strFileName As String

  Dim strFileSplit As String

  Dim aryContent() As Byte

  Dim lngLOF( ) As Long 存放从文件头取得的两个文件的长度

  strFileName = c:\\a bmp

  strFileName = c:\\b bmp

  strFileSplit = c:\\out bmp

  Open strFileSplit For Binary As #

  Get # lngLOF( ) 取得第一文件的长度

  Get # lngLOF( ) 第二文件的长度

  Open strFileName For Binary As #

  Open strFileName For Binary As #

  ReDim aryContent(lngLOF( ) ) 用第一文件的长度重定义数组 为读取第一文件做准备

  Get # aryContent() 从第 字节 即文件后面开始读取第一文件的内容

  Put # aryContent() 把取得的内容写入到拆分文件中

  ReDim aryContent(lngLOF( ) )

  Get # + lngLOF( ) + aryContent() 从第 字节再加上第一文件的长度处开始读取第二文件的内容 这里可以清楚地看到文件头的作用了

  Put # aryContent

  Close #

  Close #

  Close #

  MsgBox 拆分完成 vbInformation

cha138/Article/program/net/201311/12870

相关参考

知识大全 VB.netini文件操作

VB.netini文件操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下内容放到vbnet

知识大全 Hibernate的两种配置文件格式

Hibernate的两种配置文件格式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hibern

知识大全 用JSP实现上传文件的两种方法

用JSP实现上传文件的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前用cos作文件

知识大全 解析PHP实现下载文件的两种方法

解析PHP实现下载文件的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对使用PH

知识大全 介绍java 产生随机数的两种方式

   在java中我们可以通过两种方式来获取随机数(generatingarandomnumber)一种是大家熟悉的javalangMathRandom()静态方法另一种

知识大全 Java与Oracle的两种连接方式

Java与Oracle的两种连接方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第一种方式通

知识大全 Spring定时器的两种实现方式

Spring定时器的两种实现方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有两种流行Spr

知识大全 Spring依赖注入的两种方式比对

Spring依赖注入的两种方式比对  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下面对spri

知识大全 进入RMAN恢复管理器的两种方式

进入RMAN恢复管理器的两种方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  进入RMAN恢复

鱼鳞病常见的两种遗传方式

我们都知道鱼鳞病是一种皮肤干燥病症,很多患者都单纯的认为这是一种常见的皮肤病,殊不知鱼鳞病其实还是一种遗传疾病,因此做为鱼鳞病患者要特别注意这种疾病的遗传性。下面我们就和大家了解一下鱼鳞病常见的两种遗