Visual Basic/文件
此页面或部分是一个未开发的草稿或大纲。 您可以帮助开发工作,或者您可以在项目室中寻求帮助。 |
Visual Basic 的另一个重要部分是文件输入/输出,即处理文件。在编程时,您可能希望在某些时候保存数据,以便以后访问。这就是文件 I/O 的用处。VB 允许我们执行 Windows 资源管理器和 DOS 命令行中提供的大多数操作。在您开始之前,您需要了解文件 I/O 的工作原理。
VB 通常将数据排列成记录和字段,以方便程序员使用。最好的解释方法是通过举例说明
Bob,Larry,George Kevin,Ken,Alec
这显然是包含姓名的数据。每行数据称为一条记录。因此,第一条记录包含 Bob、Larry 和 George。一个字段是记录中的每一项。因此,第一条记录中的第一个字段是 Bob,第二个字段是 Larry,依此类推。您可以根据需要设置任意数量的字段和记录。
记录和字段实际上只是为了方便程序员而创建的。为了获得更大的灵活性,您也可以将整个内容视为一个字符串。您可以使用内置的 Split() 函数将字符串拆分为记录和字段。
当程序从外部来源接收数据时,它被认为是输入。在 Visual Basic 中,此来源通常是标准文本文件,具有 .txt 文件扩展名(可以使用记事本读取)。首先,您需要打开要从中读取数据的文件。这是使用以下代码完成的
Open <filename> For <mode> As <channelnumber>
例如
Open "c:\filename.txt" For Input As #1
文件路径可以是您想要的任何内容,如果不存在,将创建新的文件(和目录)。文件的扩展名并不重要。它不会影响文件的内容或写入/读取文件的过程。所以你也可以这样做
Open "c:\filename.myfile" For Input As #1
或者这样
Open "c:\filename" For Input As #1
打开和文件路径是不言自明的。但是,“用于输入”表示它被用来从外部文件接收数据,VB 将数据从文件“输入”到变量中。在输出(写入文件)时,这将更改为“用于输出”。当我们想以二进制方式打开文件时,它是“用于二进制”。“作为 #1”是指正在使用的通道。当您要从文件中查找特定信息时,您将使用“用于随机”。通道可以被视为 Visual Basic 为文件设置的路径。一个通道一次只能使用一个文件。因此,如果您想打开多个文件而不关闭任何文件,您可以使用不同的通道。要输入一行数据,它非常简单
Input <channel>, <variables>
例如
Input #1, x, y, z
这将从通道 1 连接到的任何内容中读取数据。它将把当前记录的第一个字段存储到 X 中,第二个字段存储到 Y 中,第三个字段存储到 Z 中。
最后,我们应该始终在完成工作后关闭文件。语法很简单
Close <channel>
举个例子
Close #1
有关使用输入的更多信息将在“数据使用”部分介绍。
注意:如果代码将成为更大程序的一部分,应以动态方式而不是硬编码的方式获取通道号。这是使用函数 FreeFile() 完成的
Dim nLogFile As Long nLogFile = FreeFile() Open "c:\filename" For Input As #nLogFile ... Close #nLogFile
输出与输入非常相似。唯一的区别是,它将信息发送出程序并进入文件。再次,我们只使用文本文件 (.txt)。首先,您必须打开文件
Open "C:\filepath.txt" For Output As #1
您可能已经注意到,与打开用于输入的文件唯一的区别是“用于输出”。完成此操作后,其他所有操作都非常简单。
Write #1, x, 5
假设 X = 3,如果您打开文本文档,它将如下所示
3, 5
您可以将任何值或变量写入文件,但需要注意的是,在写入字符串时,应将其放在引号中。如果它是包含字符串的变量,则会自动执行此操作。另一个重要提示是,两个连续的写入语句将写入不同的行。例如
Write #1, 5, 4 Write #1, 7, 4 Write #1, "this is a string"
将出现在文件中,如下所示
5, 4 7, 4 "this is a string"
请记住,在输出到文件时,它将擦除文本中所有先前的信息。要添加到现有信息中,必须使用“追加”命令。
如果您将数据写入文件供其他程序使用,您可能会发现您不希望 VB 将引号放在您的字符串周围。您可以通过使用 Print 命令而不是 Write 命令来避免写入引号。例如
Print #1, "this is a string"
将出现在文件中,如下所示
this is a string
如果在运行时,正在处理的文件被修改,并且添加了一行包含必要数据的新行,并且 open 语句以“#1”结束,那么文件中第 1 行中的任何内容都将被覆盖(只有在文件以 Output 方式打开时)。为了解决这个问题,一个变量被声明为 FreeFile(Dim FF as FreeFile)。这将打开正在处理文件中的第一个空闲插槽或行。新的 Open 语句将变为
Open "C:\filepath.txt" For Output As FF
(将擦除文件)
Open "C:\filepath.txt" For Append As FF
(将不会擦除文件)
使用第二个语句,将写入文件中的第一个空闲行。
在实践中,open 语句很少像这样
Open "C:\filepath.txt" For Append As FF
通常,文件路径将存储在字符串变量中
Dim s As String s = "C:\filepath.txt" Open s For Append As FF
变量s只需要保存文件的路径。路径可以是绝对路径,例如
s = "d:\users\me\my file.txt"
或当前目录中的文件(使用CurDir找出它是哪个)
s = "my file.txt"
或相对于当前目录的路径,例如
s = "..\you\your file.txt"
或像这样
s = "mysub\myother file.txt"
对于更具冒险精神的人来说,它还可以包括对服务器上共享文件的引用,该服务器不使用驱动器号
s = "\\someserver\someshare\somefile.txt"
可以在此处找到使用文件读取的示例窗体。在 Internet Explorer 中右键单击“此处”,然后选择“将目标另存为...”来保存窗体文件。
请上传更多包含示例的文件。这对开发人员来说将非常有帮助。
上一页:数组 | 目录 | 下一页:数据类型 |