Visual-Basic程序设计综合教程第9章-文件.ppt
第第9章章 文件文件 在现代计算机系统中,要用到大量的程序和数在现代计算机系统中,要用到大量的程序和数在现代计算机系统中,要用到大量的程序和数在现代计算机系统中,要用到大量的程序和数据,由于内存容量有限,且不能长期保存,故平时据,由于内存容量有限,且不能长期保存,故平时据,由于内存容量有限,且不能长期保存,故平时据,由于内存容量有限,且不能长期保存,故平时总是把它们以文件的形式存放在外存中,需要时可总是把它们以文件的形式存放在外存中,需要时可总是把它们以文件的形式存放在外存中,需要时可总是把它们以文件的形式存放在外存中,需要时可随时将它们调入内存。所以,在操作系统中增加了随时将它们调入内存。所以,在操作系统中增加了随时将它们调入内存。所以,在操作系统中增加了随时将它们调入内存。所以,在操作系统中增加了文件管理的功能,即文件系统,优秀的文件系统是文件管理的功能,即文件系统,优秀的文件系统是文件管理的功能,即文件系统,优秀的文件系统是文件管理的功能,即文件系统,优秀的文件系统是任何软件不可缺少的部分,好的文件系统可以使软任何软件不可缺少的部分,好的文件系统可以使软任何软件不可缺少的部分,好的文件系统可以使软任何软件不可缺少的部分,好的文件系统可以使软件用户安全地保存自己的数据,从而使软件更具有件用户安全地保存自己的数据,从而使软件更具有件用户安全地保存自己的数据,从而使软件更具有件用户安全地保存自己的数据,从而使软件更具有强大的生命力,因而有广泛的应用。强大的生命力,因而有广泛的应用。强大的生命力,因而有广泛的应用。强大的生命力,因而有广泛的应用。通过本章学习,读者应掌握以下内容:通过本章学习,读者应掌握以下内容:【主要内容主要内容】l l掌握文件的读写操作过程。掌握文件的读写操作过程。l l掌握有关文件操作常用函数和命令的使用掌握有关文件操作常用函数和命令的使用方法。方法。l l掌握相关的文件系统控件。掌握相关的文件系统控件。9.1 9.1 引例引例引例引例 【引例引例引例引例】在名称为在名称为在名称为在名称为Form1Form1的窗体上建立一个文的窗体上建立一个文的窗体上建立一个文的窗体上建立一个文本框(名称为本框(名称为本框(名称为本框(名称为Text1Text1,MultilineMultiline属性为属性为属性为属性为True,ScrollBarsTrue,ScrollBars属性为属性为属性为属性为2 2)和两个命令按钮(名)和两个命令按钮(名)和两个命令按钮(名)和两个命令按钮(名称分别为称分别为称分别为称分别为Cmd1Cmd1和和和和Cmd2Cmd2,标题分别为,标题分别为,标题分别为,标题分别为“读入数据读入数据读入数据读入数据”和和和和“排序显示保存排序显示保存排序显示保存排序显示保存”)(如图)(如图)(如图)(如图9.1(a)9.1(a)所示)。程所示)。程所示)。程所示)。程序运行后,如果单击序运行后,如果单击序运行后,如果单击序运行后,如果单击“读入数据读入数据读入数据读入数据”按钮,则读入按钮,则读入按钮,则读入按钮,则读入“in.txtin.txt”文件中的文件中的文件中的文件中的100100个整数,放入一个数组中个整数,放入一个数组中个整数,放入一个数组中个整数,放入一个数组中(数组下界为(数组下界为(数组下界为(数组下界为1 1);如果单击);如果单击);如果单击);如果单击“排序显示保存排序显示保存排序显示保存排序显示保存”按按按按钮。,则对这钮。,则对这钮。,则对这钮。,则对这100100个整数从大到小进行排序,把排个整数从大到小进行排序,把排个整数从大到小进行排序,把排个整数从大到小进行排序,把排序后的全部数据在文本框中显示出来,然后存入序后的全部数据在文本框中显示出来,然后存入序后的全部数据在文本框中显示出来,然后存入序后的全部数据在文本框中显示出来,然后存入文件文件文件文件”Result.txtResult.txt”中。图中。图中。图中。图9.1(a)9.1(a)【引例引例引例引例】设计设计设计设计界面界面界面界面要求:把数据写入文件要求:把数据写入文件要求:把数据写入文件要求:把数据写入文件“Result.txtResult.txt”用过程用过程用过程用过程putdataputdata来完成。来完成。来完成。来完成。操作步骤操作步骤操作步骤操作步骤(1)(1)设计界面设计界面设计界面设计界面根据题目的要求,建立如图根据题目的要求,建立如图根据题目的要求,建立如图根据题目的要求,建立如图9.1(a)9.1(a)所示的用户界面。所示的用户界面。所示的用户界面。所示的用户界面。(2)(2)属性设置属性设置属性设置属性设置各控件的属性设置,见表各控件的属性设置,见表各控件的属性设置,见表各控件的属性设置,见表9.19.1。图9.1(a)【引例】设计界面表表表表9.19.1【引例引例引例引例】属性设置属性设置属性设置属性设置控件名称属性属性值窗体NameForm1Caption引例文本框NameText1MultilineTrueScrollBars2命令按钮1NameCmd1Caption读入数据命令按钮2NameCmd2Caption排序显示保存(3)(3)编写代码编写代码编写代码编写代码 在窗体模块中定义变量在窗体模块中定义变量在窗体模块中定义变量在窗体模块中定义变量Dim number(1 To 100)As IntegerDim number(1 To 100)As IntegerDim i As Integer,j As Integer,t As IntegerDim i As Integer,j As Integer,t As Integer 命令按钮命令按钮命令按钮命令按钮Cmd1(Cmd1(输入数据输入数据输入数据输入数据)中程序代码为:中程序代码为:中程序代码为:中程序代码为:Private Sub Cmd1_Click()Private Sub Cmd1_Click()Open Open c:in.txtc:in.txt For Input As#1 For Input As#1 For i=1 To 100 For i=1 To 100 Input#1,Input#1,number(inumber(i)Next Next Close#1 Close#1 For i=1 To 100 For i=1 To 100 a$=a$+a$=a$+Str(number(iStr(number(i)+)+Next Next Text1=a$Text1=a$End SubEnd Sub 命令按钮命令按钮命令按钮命令按钮Cmd2(Cmd2(排序显示保存排序显示保存排序显示保存排序显示保存)中排序程序代码为:中排序程序代码为:中排序程序代码为:中排序程序代码为:Private Sub Cmd2_Click()Private Sub Cmd2_Click()For i=100 To 2 Step-1 For i=100 To 2 Step-1 For j=1 To i-1 For j=1 To i-1 If If number(jnumber(j)number(jnumber(j+1)Then+1)Then t=t=number(jnumber(j+1)+1)number(jnumber(j+1)=+1)=number(jnumber(j)number(jnumber(j)=t)=t End If End If Next j Next j Next i Next i For i=1 To 100 For i=1 To 100 a$=a$+a$=a$+Str(number(iStr(number(i)+)+Next Next Text1=a$Text1=a$putdataputdata number(),100 number(),100End SubEnd Sub 标准模块中定义的标准模块中定义的标准模块中定义的标准模块中定义的SubSub过程过程过程过程(保存文件保存文件保存文件保存文件)Sub putdata(a()As Integer,n As Integer)Sub putdata(a()As Integer,n As Integer)Dim Dim sFilesFile As String As String sFilesFile=result.txtresult.txt Open Open App.PathApp.Path&sFilesFile For Output As#1 For Output As#1 For i=1 To n For i=1 To n Print#1,Print#1,a(ia(i););Next Next Close#1 Close#1End SubEnd Sub(4)(4)运行程序运行程序运行程序运行程序 程序运行后,单击程序运行后,单击程序运行后,单击程序运行后,单击“读入数据读入数据读入数据读入数据”命令按钮,命令按钮,命令按钮,命令按钮,则读出文件则读出文件则读出文件则读出文件“in.txtin.txt”文件中的文件中的文件中的文件中的100100个整数,放入个整数,放入个整数,放入个整数,放入数组数组数组数组number(1 To 100)number(1 To 100)中,并显示在文本框中,中,并显示在文本框中,中,并显示在文本框中,中,并显示在文本框中,运行结果如图运行结果如图运行结果如图运行结果如图9.1(b)9.1(b)所示,单击所示,单击所示,单击所示,单击“排序显示保存排序显示保存排序显示保存排序显示保存”按钮,则对这按钮,则对这按钮,则对这按钮,则对这100100个整数从大到小进行排序,并个整数从大到小进行排序,并个整数从大到小进行排序,并个整数从大到小进行排序,并把排序后的全部数据显示在文本框中,然后存入把排序后的全部数据显示在文本框中,然后存入把排序后的全部数据显示在文本框中,然后存入把排序后的全部数据显示在文本框中,然后存入文件文件文件文件“Result.txtResult.txt”,见图,见图,见图,见图9.1(c)9.1(c)。图9.1(b)【引例】运行界面图9.1(c)【引例】运行界面分析分析分析分析:在在在在【引例引例引例引例】中,单击中,单击中,单击中,单击“读入数据读入数据读入数据读入数据”按钮,把按钮,把按钮,把按钮,把文件文件文件文件 in.txtin.txt 中数据读出来存放在数组中数据读出来存放在数组中数据读出来存放在数组中数据读出来存放在数组number(100)number(100)中,单击中,单击中,单击中,单击“排序显示保存排序显示保存排序显示保存排序显示保存”按钮,按钮,按钮,按钮,对数组对数组对数组对数组number(100)number(100)中数据进行排序处理后,把中数据进行排序处理后,把中数据进行排序处理后,把中数据进行排序处理后,把结果写入文件结果写入文件结果写入文件结果写入文件 result.txtresult.txt 中。中。中。中。【引例引例引例引例】中涉及中涉及中涉及中涉及到有关文件读写操作的问题,读者应掌握如何把到有关文件读写操作的问题,读者应掌握如何把到有关文件读写操作的问题,读者应掌握如何把到有关文件读写操作的问题,读者应掌握如何把数据从文件中读出,又如何把数据写入文件。这数据从文件中读出,又如何把数据写入文件。这数据从文件中读出,又如何把数据写入文件。这数据从文件中读出,又如何把数据写入文件。这是本章的重点,本章对文件的读写操作作详细说是本章的重点,本章对文件的读写操作作详细说是本章的重点,本章对文件的读写操作作详细说是本章的重点,本章对文件的读写操作作详细说明。明。明。明。9.2 文件分类文件分类根据不同的分类标准,文件可分为不同的类型。根据不同的分类标准,文件可分为不同的类型。根据不同的分类标准,文件可分为不同的类型。根据不同的分类标准,文件可分为不同的类型。1 1 根据数据的性质分类根据数据的性质分类根据数据的性质分类根据数据的性质分类(1)(1)程序文件程序文件程序文件程序文件这种文件存放的是可由计算机执行的程序,包括原这种文件存放的是可由计算机执行的程序,包括原这种文件存放的是可由计算机执行的程序,包括原这种文件存放的是可由计算机执行的程序,包括原文件和可执行文件,如文件和可执行文件,如文件和可执行文件,如文件和可执行文件,如.exe,.Frm,.Vbpexe,.Frm,.Vbp等。等。等。等。(2)(2)数据文件数据文件数据文件数据文件用来存放普通数据,如数据库表等。用来存放普通数据,如数据库表等。用来存放普通数据,如数据库表等。用来存放普通数据,如数据库表等。2 2 根据存取方式和结构分类根据存取方式和结构分类根据存取方式和结构分类根据存取方式和结构分类(1)(1)顺序文件顺序文件顺序文件顺序文件 顺序文件访问模式的规则最简单,读出时从第顺序文件访问模式的规则最简单,读出时从第顺序文件访问模式的规则最简单,读出时从第顺序文件访问模式的规则最简单,读出时从第一条记录一条记录一条记录一条记录“顺序顺序顺序顺序”读到最后一条记录,写入时也读到最后一条记录,写入时也读到最后一条记录,写入时也读到最后一条记录,写入时也一样,不可以在数据之间乱跳,例如读完第一条一样,不可以在数据之间乱跳,例如读完第一条一样,不可以在数据之间乱跳,例如读完第一条一样,不可以在数据之间乱跳,例如读完第一条记录后直接读第三条记录。顺序文件专门用来处记录后直接读第三条记录。顺序文件专门用来处记录后直接读第三条记录。顺序文件专门用来处记录后直接读第三条记录。顺序文件专门用来处理文本文件,文本文件中的每一行字符串就是一理文本文件,文本文件中的每一行字符串就是一理文本文件,文本文件中的每一行字符串就是一理文本文件,文本文件中的每一行字符串就是一条记录,每一条记录可长可短条记录,每一条记录可长可短条记录,每一条记录可长可短条记录,每一条记录可长可短,记录长度可以不相记录长度可以不相记录长度可以不相记录长度可以不相等,并且记录与记录之间是以等,并且记录与记录之间是以等,并且记录与记录之间是以等,并且记录与记录之间是以“换行换行换行换行”字符作为字符作为字符作为字符作为分隔符。分隔符。分隔符。分隔符。(2)(2)随机文件随机文件随机文件随机文件 在随机文件访问模式中,文件中每条记录长度在随机文件访问模式中,文件中每条记录长度在随机文件访问模式中,文件中每条记录长度在随机文件访问模式中,文件中每条记录长度都是相同的。记录与记录之间不需要特殊的分隔都是相同的。记录与记录之间不需要特殊的分隔都是相同的。记录与记录之间不需要特殊的分隔都是相同的。记录与记录之间不需要特殊的分隔符符符符,每个记录都有记录号每个记录都有记录号每个记录都有记录号每个记录都有记录号,根据用户给出的记录号根据用户给出的记录号根据用户给出的记录号根据用户给出的记录号,存取数据到指定的位置,因此,与顺序文件模式存取数据到指定的位置,因此,与顺序文件模式存取数据到指定的位置,因此,与顺序文件模式存取数据到指定的位置,因此,与顺序文件模式相比,它的优点是存取速度快,更新容易。相比,它的优点是存取速度快,更新容易。相比,它的优点是存取速度快,更新容易。相比,它的优点是存取速度快,更新容易。3 3 根据编码方式分类根据编码方式分类根据编码方式分类根据编码方式分类(1)ASCII(1)ASCII文件文件文件文件又称为文本文件,它以又称为文本文件,它以又称为文本文件,它以又称为文本文件,它以ASCIIASCII字符方式保存文件。字符方式保存文件。字符方式保存文件。字符方式保存文件。(2)(2)二进制文件二进制文件二进制文件二进制文件二进制文件是最原始的文件类型,它直接把二进制二进制文件是最原始的文件类型,它直接把二进制二进制文件是最原始的文件类型,它直接把二进制二进制文件是最原始的文件类型,它直接把二进制编码存放在文件中,没有什么格式。二进制文件编码存放在文件中,没有什么格式。二进制文件编码存放在文件中,没有什么格式。二进制文件编码存放在文件中,没有什么格式。二进制文件访问模式是以字节数来定位数据,允许程序按所访问模式是以字节数来定位数据,允许程序按所访问模式是以字节数来定位数据,允许程序按所访问模式是以字节数来定位数据,允许程序按所需的任何方式组织和访问数据,也允许对文件中需的任何方式组织和访问数据,也允许对文件中需的任何方式组织和访问数据,也允许对文件中需的任何方式组织和访问数据,也允许对文件中的各字节数据进行存取访问和改变。以二进制的的各字节数据进行存取访问和改变。以二进制的的各字节数据进行存取访问和改变。以二进制的的各字节数据进行存取访问和改变。以二进制的形式保存文件,占用存储空间比较小。形式保存文件,占用存储空间比较小。形式保存文件,占用存储空间比较小。形式保存文件,占用存储空间比较小。9.3 9.3 文件操作语句与函数文件操作语句与函数文件操作语句与函数文件操作语句与函数文件被打开后,自动生成一个文件指针,文件的读文件被打开后,自动生成一个文件指针,文件的读文件被打开后,自动生成一个文件指针,文件的读文件被打开后,自动生成一个文件指针,文件的读或写就从这个指针所指的位置开始。用或写就从这个指针所指的位置开始。用或写就从这个指针所指的位置开始。用或写就从这个指针所指的位置开始。用AppendAppend方式打开一个文件后,文件指针指向文件的末尾,方式打开一个文件后,文件指针指向文件的末尾,方式打开一个文件后,文件指针指向文件的末尾,方式打开一个文件后,文件指针指向文件的末尾,而如果用其它几种方式而如果用其它几种方式而如果用其它几种方式而如果用其它几种方式(如:如:如:如:Input,OutputInput,Output等等等等)打打打打开文件,则文件指针都指向文件的开头。完成一开文件,则文件指针都指向文件的开头。完成一开文件,则文件指针都指向文件的开头。完成一开文件,则文件指针都指向文件的开头。完成一次读写操作后,文件指针自动移到下一个读写操次读写操作后,文件指针自动移到下一个读写操次读写操作后,文件指针自动移到下一个读写操次读写操作后,文件指针自动移到下一个读写操作的起始位置,移动量的大小由作的起始位置,移动量的大小由作的起始位置,移动量的大小由作的起始位置,移动量的大小由OpenOpen语句和读写语句和读写语句和读写语句和读写语句中的参数共同决定。与文件指针有关的语句语句中的参数共同决定。与文件指针有关的语句语句中的参数共同决定。与文件指针有关的语句语句中的参数共同决定。与文件指针有关的语句和函数是和函数是和函数是和函数是SeekSeek。文件指针的定位通过。文件指针的定位通过。文件指针的定位通过。文件指针的定位通过SeekSeek语句语句语句语句来实现。来实现。来实现。来实现。SeekSeek语句的语法格式为:语句的语法格式为:语句的语法格式为:语句的语法格式为:Seek#Seek#文件号,位置文件号,位置文件号,位置文件号,位置功能:功能:功能:功能:SeekSeek语句用来设置文件中下一个读或写的位语句用来设置文件中下一个读或写的位语句用来设置文件中下一个读或写的位语句用来设置文件中下一个读或写的位置置置置与文件操作相关的函数说明见表与文件操作相关的函数说明见表与文件操作相关的函数说明见表与文件操作相关的函数说明见表9.29.2函数名功能LOF返回文件字节数EOF返回文件指针是否到达文件的末尾,末尾为Ture,否则False。Seek返回文件指针的当前位置FreeFile返回一个在程序中没有使用的文件号Loc返回由“文件号”指定文件的当前读写位置Kill删除某一路径下的文件。Name重新命名文件夹或目录FileCopy复制一个文件表9.2 文件操作函数9.4 顺序文件顺序文件9.4.1 9.4.1 顺序文件的写操作顺序文件的写操作顺序文件的写操作顺序文件的写操作数据文件的写操作分为数据文件的写操作分为数据文件的写操作分为数据文件的写操作分为3 3步,即打开文件、写入操作步,即打开文件、写入操作步,即打开文件、写入操作步,即打开文件、写入操作和关闭文件。其中打开文件和关闭文件分别由和关闭文件。其中打开文件和关闭文件分别由和关闭文件。其中打开文件和关闭文件分别由和关闭文件。其中打开文件和关闭文件分别由OpenOpen和和和和CloseClose语句来实现,写入文件由语句来实现,写入文件由语句来实现,写入文件由语句来实现,写入文件由PrintPrint和和和和WriteWrite语句来完成。语句来完成。语句来完成。语句来完成。l lPrintPrint语句语句语句语句格式:格式:格式:格式:Print#Print#文件号,文件号,文件号,文件号,Spc(n)|Tab(nSpc(n)|Tab(n)表达式表达式表达式表达式表表表表;|,;|,功能:功能:功能:功能:PrintPrint语句的功能是把数据写入文件。语句的功能是把数据写入文件。语句的功能是把数据写入文件。语句的功能是把数据写入文件。l lWriteWrite语句语句语句语句格式:格式:格式:格式:Write#Write#文件号,表达式表文件号,表达式表文件号,表达式表文件号,表达式表功能:和功能:和功能:和功能:和PrintPrint语句一样,用语句一样,用语句一样,用语句一样,用WriteWrite语句可以把数据语句可以把数据语句可以把数据语句可以把数据写入顺序文件。写入顺序文件。写入顺序文件。写入顺序文件。1 1 打开文件打开文件打开文件打开文件 对文件进行任何操作之前,必须先打开文件,同时,对文件进行任何操作之前,必须先打开文件,同时,对文件进行任何操作之前,必须先打开文件,同时,对文件进行任何操作之前,必须先打开文件,同时,通知操作系统对文件进行读操作还是写操作。打开文件通知操作系统对文件进行读操作还是写操作。打开文件通知操作系统对文件进行读操作还是写操作。打开文件通知操作系统对文件进行读操作还是写操作。打开文件的命令是的命令是的命令是的命令是OpenOpen,常用形式如下:,常用形式如下:,常用形式如下:,常用形式如下:Open Open 文件名文件名文件名文件名 For For 模式模式模式模式 As#As#文件号文件号文件号文件号 Len=Len=记录长度记录长度记录长度记录长度 (1)(1)打开打开打开打开“模式模式模式模式”见表见表见表见表9.39.3参数说明读或写语句Iutput从磁盘读入到内存Input#文件号Line Input#文件号Output从内存写入到磁盘Print#文件号 Write#文件号Append 向文件尾部追加式写入数据表9.3 模式说明(2)(2)文件号是一个介于文件号是一个介于文件号是一个介于文件号是一个介于1 1511511之间的整数。当打开之间的整数。当打开之间的整数。当打开之间的整数。当打开一个文件并为它指定一个文件号后,该文件号就一个文件并为它指定一个文件号后,该文件号就一个文件并为它指定一个文件号后,该文件号就一个文件并为它指定一个文件号后,该文件号就代表该文件,直到文件被关闭后,此文件号才可代表该文件,直到文件被关闭后,此文件号才可代表该文件,直到文件被关闭后,此文件号才可代表该文件,直到文件被关闭后,此文件号才可以再被其它文件使用。以再被其它文件使用。以再被其它文件使用。以再被其它文件使用。2 2 向顺序文件中向顺序文件中向顺序文件中向顺序文件中“写写写写”数据数据数据数据(1)(1)建立文件建立文件建立文件建立文件向顺序文件写入数据时,首先必须建立该文件,如向顺序文件写入数据时,首先必须建立该文件,如向顺序文件写入数据时,首先必须建立该文件,如向顺序文件写入数据时,首先必须建立该文件,如果磁盘上存在该文件,则删除原来的文件,同时果磁盘上存在该文件,则删除原来的文件,同时果磁盘上存在该文件,则删除原来的文件,同时果磁盘上存在该文件,则删除原来的文件,同时建立一个新的文件,如果没有,则新建立一个文建立一个新的文件,如果没有,则新建立一个文建立一个新的文件,如果没有,则新建立一个文建立一个新的文件,如果没有,则新建立一个文件。建立该文件程序代码为:件。建立该文件程序代码为:件。建立该文件程序代码为:件。建立该文件程序代码为:Open Open c:xx.txtc:xx.txt For Output As#For Output As#文件号文件号文件号文件号(2)(2)写入数据可以用写入数据可以用写入数据可以用写入数据可以用PrintPrint语句或用语句或用语句或用语句或用WriteWrite语句。语句。语句。语句。PrintPrint语句和语句和语句和语句和WriteWrite语句的区别见表语句的区别见表语句的区别见表语句的区别见表9.49.4。数据类型写入方法说明数值Print#文件号 语句用Print语句既可以按标准格式写入,又可以按紧凑格式写入,写入的数值,前有符号位,后有一个空格。Write#文件号 语句用Write语句写入数值能自动的在数值之间插入逗号“,”,并且不论是以何种格式写入,都以紧凑格式存放,写入的数值不包括符号位和空格,以字符形式存放。字符串Print#文件号 语句用Print语句写入字符串,不论是以紧凑格式还是标准格式,都必须在两个字符串之间加入一个“,”作为字符串的分隔符,否则,将作为一个字符串,写入的字符串按各自写入的格式存放。Write#文件号 语句用Write#文件号语句写入字符串,能自动的在写入的字符串上加上双引号“”,并且在两个字符串之间自动写入逗号“,”,不论是以紧凑格式还是标准格式写入,都是以紧凑格式存放。表9.4 Print语句和Write语句的区别3 3写入数值写入数值写入数值写入数值【例例例例9.19.1】把把把把1 15050之间的所有数值写入之间的所有数值写入之间的所有数值写入之间的所有数值写入“c:example.txtc:example.txt”文件,分别用文件,分别用文件,分别用文件,分别用PrintPrint语句和语句和语句和语句和WriteWrite语句,写入数值时可以按紧凑格式或标准格语句,写入数值时可以按紧凑格式或标准格语句,写入数值时可以按紧凑格式或标准格语句,写入数值时可以按紧凑格式或标准格式,注意它们的区别。式,注意它们的区别。式,注意它们的区别。式,注意它们的区别。设计步骤设计步骤设计步骤设计步骤(1)(1)界面设计界面设计界面设计界面设计根据题目的要求,可设计如图根据题目的要求,可设计如图根据题目的要求,可设计如图根据题目的要求,可设计如图9.29.2所示的界面。并设所示的界面。并设所示的界面。并设所示的界面。并设置相关控件的属性。置相关控件的属性。置相关控件的属性。置相关控件的属性。图9.2【例9.1】运行界面(2)(2)编写代码编写代码编写代码编写代码Dim i As IntegerDim i As Integer 用用用用PrintPrint语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值Private Sub Command1_Click()Private Sub Command1_Click()Open c:example1.txt For Output As#1 Open c:example1.txt For Output As#1 创建文件创建文件创建文件创建文件 For i=1 To 50For i=1 To 50 Print#1,i;Print#1,i;用用用用PrintPrint语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值 n=n+1n=n+1 If n Mod 5=0 Then If n Mod 5=0 Then 每行写入每行写入每行写入每行写入5 5个数值个数值个数值个数值 Print#1,Print#1,换行换行换行换行 End IfEnd If Next i Next i Close#1 Close#1 关闭文件关闭文件关闭文件关闭文件End SubEnd Sub 用用用用PrintPrint语句按标准格式写入数值语句按标准格式写入数值语句按标准格式写入数值语句按标准格式写入数值Private Sub Command2_Click()Private Sub Command2_Click()Open c:example2.txt For Output As#1 Open c:example2.txt For Output As#1 For i=1 To 50 For i=1 To 50 Print#1,i,Print#1,i,用用用用PrintPrint语句按标准格式写入数值语句按标准格式写入数值语句按标准格式写入数值语句按标准格式写入数值 n=n+1n=n+1 If n Mod 5=0 Then If n Mod 5=0 Then Print#1,Print#1,End If End If Next i Next i Close#1 Close#1End SubEnd Sub 用用用用WriteWrite语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值Private Sub Command3_Click()Private Sub Command3_Click()Open c:example3.txt For Output As#1 Open c:example3.txt For Output As#1 For i=1 To 50 For i=1 To 50 Write#1,i;Write#1,i;用用用用WriteWrite语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值语句按紧凑格式写入数值 n=n+1n=n+1 If n Mod 5=0 Then If n Mod 5=0 Then Write#1,Write#1,End If End If Next i Next i Close#1 Close#1End SubEnd Sub 用用用用WriteWrite语句按标准格式写入数语句按标准格式写入数语句按标准格式写入数语句按标准格式写入数Private Sub Command4_Click()Private Sub Command4_Click()Open c:example4.txt For Output As#1 Open c:example4.txt For Output As#1 For i=1 To 50 For i=1 To 50 Write#1,i,Write#1,i,用用用用WriteWrite语句按标准格式写入数值语句按标准格式写入数值语句按标准格式写入数值语句按标准格式写入数值 n=n+1n=n+1 If n Mod 5=0 Then If n Mod 5=0 Then Write#1,Write#1,End If End If Next i Next i Close#1 Close#1End SubEnd Sub(3)(3)运行程序图运行程序图运行程序图运行程序图9.3(a)9.3(a)用用用用PrintPrint语句按紧凑格式写入语句按紧凑格式写入语句按紧凑格式写入语句按紧凑格式写入数值符号位空格数值符号位空格数值符号位空格数值符号位空格程序运行时,单击程序运行时,单击程序运行时,单击程序运行时,单击“Print(Print(紧凑格式紧凑格式紧凑格式紧凑格式)”)”,“Print(Print(标准格式标准格式标准格式标准格式)”)”,“Write(Write(紧凑格式紧凑格式紧凑格式紧凑格式)”)”和和和和 “Write(Write(标准格式标准格式标准格式标准格式)”)”命令按钮,则分别把命令按钮,则分别把命令按钮,则分别把命令按钮,则分别把1 15050之间的所有数值按各自要求的格式写入之间的所有数值按各自要求的格式写入之间的所有数值按各自要求的格式写入之间的所有数值按各自要求的格式写入“c:”c:”的的的的四个文件四个文件四个文件四个文件example1.txt example1.txt,example2.txt example2.txt,example3.txt example3.txt 和和和和example4.txtexample4.txt。当打开这些文件。当打开这些文件。当打开这些文件。当打开这些文件时,将看到写入文件的内容分别如图时,将看到写入文件的内容分别如图时,将看到写入文件的内容分别如图时,将看到写入文件的内容分别如图9.3(a)9.3(a),9.3(b)9.3(c)9.3(d)9.3(b)9.3(c)9.3(d)所示,请读者注意比较它们的所示,请读者注意比较它们的所示,请读者注意比较它们的所示,请读者注意比较它们的区别和用法。区别和用法。区别和用法。区别和用法。图9.3(a)用Print语句按紧凑格式写入数值符号位空格图9.3(b)用Print语句按标准格式写入数值符号位空格图9.3(c)用Write语句按紧凑格式写入数值图9.3(d)用Write语句按标准格式写入数值自动写入逗号4 4写入字符串写入字符串写入字符串写入字符串【例例例例9.29.2】把把把把A AZ Z之间的所有字符写入之间的所有字符写入之间的所有字符写入之间的所有字符写入“c:example.txtc:example.txt”文件,分别用文件,分别用文件,分别用文件,分别用PrintPrint语句和语句和语句和语句和WriteWrite语句,写入字符串时可以按紧凑格式或标准语句,写入字符串时可以按紧凑格式或标准语句,写入字符串时可以按紧凑格式或标准语句,写入字符串时可以按紧凑格式或标准格式,注意它们的区别。格式,注意它们的区别。格式,注意它们的区别。格式,注意它们的区别。设计步骤设计步骤设计步骤设计步骤(1)(1)界面设计界面设计界面设计界面设计根据题目的要求,可设计如图根据题目的要求,可设计如图根据题目的要求,可设计如图根据题目的要求,可设计如图9.4(a)9.4(a)所示的界面。并所示的界面。并所示的界面。并所示的界面。并设置相关的控件属性。设置相关的控件属性。设置相关的控件属性。设置相关的控件属性。图9.4(a)【例9.2】设计界面(2)(2)编写代码编写代码编写代码编写代码 用用用用PrintPrint语句按紧凑格式写入字符语句按紧凑格式写入字符语句按紧凑格式写入字符语句按紧凑格式写入字符Private Sub Command1_Click()Private Sub Command1_Click()Open c:example5.txt For Output As#1 Open c:example5.txt For Output As#1 创建文件创建文件创建文件创建文件 For i=0 To 25For i=0 To 25 Print#1,Print#1,Chr(iChr(i+65);+65);用用用用PrintPrint语句按紧凑格式写入字符语句按紧凑格式写入字符语句按紧凑格式写入字符语句按紧凑格式写入字符串串串串 n=n+1n=n+1 If n Mod 5=0 Then If n Mod 5=0 Then 每行写入每行写入每行写入每行写入5 5个字符个字符个字符个字符 Print#1,Print#1,换行换行换行换行 End IfEnd If Next i Next i Close#1 Close#1 关闭文件关闭文件关闭文件关闭文件End SubEnd Sub 用用用用PrintPrint语句按标准格式写入字符串语句按标准格式写入字符串语句按标准格式写入字符串语句按标准格式写入字符串Private Sub Command2_Click()Private Sub Command2_Click()Open c:example6.txt For Ou