读写文件问题

liuyi3000 2004-01-31 05:32:30
怎样按照每行进行读取或写入
...全文
67 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname008 2004-01-31
  • 打赏
  • 举报
回复
Line Input # 语句


从已打开的顺序文件中读出一行并将它分配给 String变量。

语法

Line Input #filenumber, varname

Line Input # 语句的语法具有以下几个部分:

部分 描述
filenumber 必要。任何有效的文件号。
varname 必要。有效的 Variant 或 String 变量名。


说明

通常用 Print # 将 Line Input # 语句读出的数据从文件中写出来。

Line Input # 语句一次只从文件中读出一个字符,直到遇到回车符 (Chr(13)) 或回车–换行符 (Chr(13) + Chr(10)) 为止。回车–换行符将被跳过,而不会被附加到字符串上。
goodname008 2004-01-31
  • 打赏
  • 举报
回复
Input 函数


返回 String,它包含以 Input 或 Binary 方式打开的文件中的字符。

语法

Input(number, [#]filenumber)

Input 函数的语法具有以下几个部分:

部分 描述
number 必要。任何有效的数值表达式,指定要返回的字符个数。
filenumber 必要。任何有效的文件号。


说明

通常用 Print # 或 Put 将 Input 函数读出的数据写入文件。Input 函数只用于以 Input 或 Binary 方式打开的文件。

与 Input # 语句不同,Input 函数返回它所读出的所有字符,包括逗号、回车符、空白列、换行符、引号和前导空格等。

对于 Binary 访问类型打开的文件,如果试图用 Input 函数读出整个文件,则会在 EOF 返回 True 时产生错误。在用 Input 读出二进制文件时,要用 LOF 和 Loc 函数代替 EOF 函数,而在使用 EOF 函数时要配合以 Get 函数。

注意 对于文本文件中包含的字节数据要使用 InputB 函数。对于 InputB 来说,number 指定的是要返回的字节个数,而不是要返回的字符个数。
goodname008 2004-01-31
  • 打赏
  • 举报
回复
Input # 语句


从已打开的顺序文件中读出数据并将数据指定给变量。

语法

Input #filenumber, varlist

Input # 语句的语法具有以下几个部分:

部分 描述
filenumber 必要。任何有效的文件号。
varlist 必要。用逗号分界的变量列表,将文件中读出的值分配给这些变量;这些变量不可能是一个数组或对象变量。但是,可以使用变量描述数组元素或用户定义类型的元素。


说明

通常用 Write # 将 Input # 语句读出的数据写入文件。该语句只能用于以 Input 或 Binary 方式打开的文件。

在读出数据时不经修改就可直接将标准的字符串或数值数据指定给变量。下表说明如何处理其它输入数据:

数据 指定给变量的值
分隔逗号或空白行 Empty
#NULL# Null
#TRUE# or #FALSE# True 或 False
#yyyy-mm-dd hh:mm:ss# 用表达式表示的日期与/或时间
#ERROR errornumber# errornumber(此变量是一个 Variant,用来标记错误)


输入数据中的双引号符号 (" ") 将被忽略。

文件中数据项目的顺序必须与 varlist 中变量的顺序相同,而且与相同数据类型的变量匹配。如果变量为数值类型而数据不是数值类型,则指定变量的值为零。

在输入数据项目时,如果已到达文件结尾,则会终止输入,并产生一个错误。

注意 为了能够用 Input # 语句将文件的数据正确读入到变量中,在将数据写入文件时,要使用 Write # 语句而不使用 Print # 语句。使用 Write # 语句可以确保将各个单独的数据域正确分隔开。
goodname008 2004-01-31
  • 打赏
  • 举报
回复

Write # 语句


将数据写入顺序文件。

语法

Write #filenumber, [outputlist]

Write # 语句的语法具有以下几个部分:

部分 描述
filenumber 必要。任何有效的文件号。
outputlist 可选。要写入文件的数值表达式或字符串表达式,用一个或多个逗号将这些表达式分界。


说明

通常用 Input # 从文件读出 Write # 写入的数据。

如果省略 outputlist,并在 filenumber 之后加上一个逗号,则会将一个空白行打印到文件中。多个表达式之间可用空白、分号或逗号隔开。空白和分号等效。

用 Write # 将数据写入文件时将遵循几个通用的约定,使得无论什么国别都可用 Input # 读出并正确解释数据:

在写入数值数据时总使用句号作为十进制分隔符。


对于 Boolean 类型的数据,或者打印 #TRUE# 或者打印 #FALSE#。无论在什么地区,都不将 True 和 False 这两个关键字翻译出来。


使用通用的日期格式将 Date 类型的数据写入文件中。当日期或时间的部件丢失或为零时,只将现有部分写入文件中。


如果 outputlist 的数据为 Empty,则不将任何数据写入文件。但对 Null 数据,则要写入 #NULL#。


如果 outputlist 数据为 Null 数据,则将 #NULL# 写入文件中。


对于 Error 类型的数据,输出看起来与 #ERROR errorcode# 一样。无论在什么地区,都不将关键字 Error 翻译出来。
与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在项目和用来标记字符串的引号之间插入逗号。没有必要在列表中键入明确的分界符。Write # 语句在将 outputlist 中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10))。
goodname008 2004-01-31
  • 打赏
  • 举报
回复
Print # 语句


将格式化显示的数据写入顺序文件中。

语法

Print #filenumber, [outputlist]

Print # 语句的语法具有以下几个部分:

部分 描述
filenumber 必要。任何有效的文件号。
outputlist 可选。表达式或是要打印的表达式列表。


设置

outputlist 参数的设置如下:

[{Spc(n) | Tab[(n)]}] [expression] [charpos]

设置 描述
Spc(n) 用来在输出数据中插入空白字符,而 n 指的是要插入的空白字符数。
Tab(n) 用来将插入点定位在某一绝对列号上,这里,n 是列号。使用无参数的 Tab 将插入点定位在下一个打印区的起始位置。
expression 要打印的数值表达式或字符串表达式。
charpos 指定下一个字符的插入点。使用分号将插入点定位在上一个显示字符之后。用 Tab(n) 将插入点定位在某一绝对的列号上,用无参数的 Tab 将插入点定位在下一个打印区的起始处。如果省略 charpos,则在下一行打印下一个字符。


说明

通常用 Line Input # 或 Input 读出 Print # 在文件中写入的数据。

如果省略参数 outputlist,而且,filenumber 之后只含有一个列表分隔符,则将一空白行打印到文件中。多个表达式之间可用一个空白或一个分号隔开。空白与分号等效。

对于 Boolean 类型的数据,打印的是 True 或 False。无论在什么国别,都不将 True 和 False 这两个关键字翻译出来。

使用操作系统所能够辨认的标准短日期格式可将 Date 类型的数据写入文件中。在未指定日期或时间部件或这些部件的设置为零时,只将指定的部分写入文件中。

如果 outputlist 的数据是 Empty,则不将任何数据写入文件。但是,如果 outputlist 的数据是 Null,则将 Null 写入文件。

对于 Error 类型的数据而言,输出的数据看起来与 Error errorcode 一样。而且无论在什么地区,都不将 Error 关键字翻译出来。

用 Print # 写入文件的所有数据都是国际通用的;也就是说,可以正确利用十进制分隔符将这些数据格式化。

因为 Print # 将数据的图像写入文件,所以必须将各项数据分隔开来,以便正确打印。如果使用无参数的 Tab 将打印位置移动到下一个打印区,则 Print # 也会将打印字段之间的空白写入文件中。

注意 如果今后想用 Input # 语句读出文件的数据,就要用 Write # 语句而不用 Print # 语句将数据写入文件。因为在使用 Write # 时,将数据域分界就可确保每个数据域的完整性,因此可用 Input # 再将数据读出来。使用 Write # 还能确保任何地区的数据都被正确读出。
goodname008 2004-01-31
  • 打赏
  • 举报
回复
Open 语句


能够对文件输入/输出 (I/O)。

语法

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]

Open 语句的语法具有以下几个部分:

部分 描述
pathname 必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。
mode 必要。关键字,指定文件方式,有 Append、Binary、Input、Output、或 Random 方式。如果未指定方式,则以 Random 访问方式打开文件。
access 可选。关键字,说明打开的文件可以进行的操作,有 Read、Write、或 Read Write 操作。
lock 可选。关键字,说明限定于其它进程打开的文件的操作,有 Shared、Lock Read、Lock Write、和 Lock Read Write 操作。
filenumber 必要。一个有效的文件号,范围在 1 到 511 之间。使用 FreeFile 函数可得到下一个可用的文件号。
reclength 可选。小于或等于 32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。


说明

对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。

如果 pathname 指定的文件不存在,那么,在用 Append、Binary、Output、或 Random 方式打开文件时,可以建立这一文件。

如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open 操作失败,而且会有错误发生。

如果 mode 是 Binary 方式,则 Len 子句会被忽略掉。

重要 在 Binary、Input 和 Random 方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在 Append 和 Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。
华芸智森 2004-01-31
  • 打赏
  • 举报
回复
'
'读TEXT文件
'函数:RedTextFile
'参数:FileName 打开的TXT文件名.
'返回值:成功 返回文件内容.失败 返回""
Public Function RedTextFile(Filename As String) As String
Dim FileID As Long
Dim InputStr As String
Dim LineStr As String

On Error Resume Next

InputStr = "": LineStr = ""
FileID = FreeFile()
Open Filename For Input As #FileID
Do While Not EOF(FileID) ' 循环至文件尾。
LineStr = ""
Line Input #FileID, LineStr
InputStr = InputStr & LineStr
Loop
Close #FileID
RedTextFile = IIf(Err.Number = 0, InputStr, "")
Err.Clear
End Function

'
'写TEXT文件
'函数:WritTextFile
'参数:FileName 目标文件名.WritStr 写到目标的字符串.
'返回值:成功 返回文件内容.失败 返回""
'注:如果同名,目标字符串将覆盖原文件内容.
Public Function WritTextFile(Filename As String, WritStr As String) As Boolean
'/保存文件
Dim FileID As Long, ConTents As String
Dim A As Long, B As Long

On Error Resume Next

FileID = FreeFile
Open Filename For Output As #FileID
Print #FileID, WritStr
Close #FileID
WritTextFile = (Err.Number = 0)
Err.Clear
End Function
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup辅助程序 6 读核感悟 Linux内核启动 内核解压缩 8 读核感悟 Linux内核启动 开启页面映射 9 读核感悟 Linux内核启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场 内核线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚函数表和多态 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟 内存管理 内核中的页表映射总结 43 读核感悟 健壮的代码 exception table 内核中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟 内存管理 page fault处理流程 45 读核感悟 文件读写 select实现原理 47 读核感悟 文件读写 poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件读写 epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步问题 同步问题概述 55 1 同步问题的产生背景 55 2 内核态与用户态的区别 55 读核感悟 同步问题 内核态自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟 内存管理 free命令详解 58 读核感悟 文件读写 2 6 9内核中的AIO 59 1 AIO概述 59 2 内核态AIO的使用 61 读核感悟 文件读写 内核态AIO相关结构体 61 1 内核态AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写 内核态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO请求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心函数aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件读写 内核态是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API函数详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android应用程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5 linux Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android驱动开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android编程入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件测试文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面编程入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级编程 第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket编程代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生态 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核 [更多]

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧