1、第10章 RAPTOR文件的使用学习目标学习目标 学会如何将数据输出到文件 学会如何从文件中读取数据到程序目录目录 10.1 将数据输出到文件将数据输出到文件10.2 从从文件输入数据文件输入数据10.1 10.1 将将数据输出到文件数据输出到文件在RAPTOR中,要想将数据输出到一个文件中,即文件输出,就需要在RAPTOR程序执行过程中遇到输出语句时,对其检查输出是否已经被重定向(Redirected)。【例10-1】产生10个100以内的随机整数存放到数组array中,并将该数组中的数据直接输出到文件array.csv中。问题分析:要将数组中的数据输出到array.csv文件中,就需要确定
2、输出语句是否被重定向。10.1 10.1 将数据输出到文件将数据输出到文件 RAPTOR提供两种输出重定向语句:Redirect_Output(False/True or“filename”)Redirect_Output_Append(False/True or“filename”)说明:对于第一种方式参数“filename”-指出文件名,则输出语句输出的结果将按指定的文件保存在当前RAPTOR程序所在的目录中。10.1 10.1 将数据输出到文件将数据输出到文件参数“True”表示将文件名的输入延迟到运行时间。调用时RAPTOR会打开一个文件选择对话框,用户可以指定文件名并用于输出,如Re
3、direct_Output(True)。参数“False”表示使用Redirect_Output(“filename”)将程序运行结果输出重定向到文件完成后,如果想让输出重定向到主控制台,需要再次调用Redirect_Output,并将参数设定为“False”,如Redirect_Output(False)。【例10-2】将例10-1程序修改为运行结果既能在RAPTOR控制台显示又可以输出到文件。问题分析:要想将程序运行结果既可以在主控制台上输出又可以输出到文件中,可以使用两次循环:一次循环用于产生随机数存储到一维数组并在主控制台输出;另一次循环是获取一维数组的数据后将输出结果重定向到文件中。
4、【例10-3】生成一个5行4列的100以内的随机整数存放到二维数组values中,并将该二维数组中的数据直接输出到文件Darray.csv中。问题分析:依据题意,要将产生的二维数组的数据输出到Darray.csv文件中,这与例10-1对数据的处理的方式相同。【例10-4】将输入的通讯录保存到指定文件中将某用户通过键盘输入的所有朋友的通讯联系方式(ID、姓名、电话、E-mail等)信息存储到以“addr.csv”命名的文件中。问题分析:依据题意,通讯录以二维数组的形式保存,要将输入通讯录信息保存到文件中,该题与例10-3对数据的处理方式也相同。从上图可以看出,RAPTOR程序运行后也是将程序结果
5、直接输出到文件中,并且数据输出形式也是以每行作为一个数据存放到EXCEL文件的单元格中。能否保存的形式如图10-5所示呢?程序修改为:【例10-5】将例10-4程序修改为运行结果既能在RAPTOR控制台显示信息又能存储到文件中。问题分析:要想将二维数组程序运行结果既可以在主控制台上显示又能存储到文件中,与例10-2对数据的处理的方式相同。但需要注意的是,数据输出到文件中不能以二维数组的形成输出,因此可以将二维数组的数据转换成一维数组(虚框部分),然后再将数据输出到文件中。目录目录 10.1 将数据输出到文件将数据输出到文件10.2 从从文件输入数据文件输入数据10.2 10.2 从文件输入数据
6、从文件输入数据RAPTOR可以利用输入语句将数据导入到程序中。程序在执行过程中如果遇到一个输入语句,系统会检查该输入是否已经被重定向(Redirected)。如果输入已经被重定向,这就意味着已经指定一个输入文件,此时要输入的数据将从指定的文件中提取;如果输入没有被重定向,则要输入的数据将从默认设备键盘上提取数据。【例10-6】从指定文件“array.csv”(如图10-8所示)中读取数据,并在RAPTOR控制台上显示。问题分析:从文件中读入数据时所使用的输入重定向过程与10.1节介绍的输出重定向类似。要从文件中读取数据到程序中,就需要使用输入重定向语句。10.2 10.2 从文件输入数据从文件
7、输入数据RAPTOR提供输入重定向语句(Redirect_Input)同样以过程调用形式出现,输入的内容从文件中提取。格式为:Redirect_Input(False/True or“filename”)说明:参数“filename”只指出文件名,则输入语句将从当前RAPTOR程序所在目录的文件中提取数据;如果参数“filename”拥有完整路径,则输入语句将从指定的文件目录的文件中提取数据。参数“True”表示将文件名的输入延迟到运行时间。调用时RAPTOR会打开一个文件选择对话框,用户可以指定文件名并用于输入,如Redirect_Input(True)。参数“False”表示输入重定向结束
8、,输入文件立即关闭,随后的RAPTOR程序输入回到键盘输入。【例10-7】读取通讯录文件某用户将所有朋友的通讯联系方式(ID、姓名、电话、E-mail等)存放文件“contractlist.csv”中,如图10-10所示。现需要从文件读取这些数据到程序中,并在RAPTOR主控制台上显示。问题分析:从图10-10可以看出,数据在文件.csv中保存形式是一个二维表,即每行表示每个人,每列表示每个人的信息,每个人的信息数据存储类型有数值类型和字符串类型。尽管存储数据形式和数据类型与例10-6不相同,但对数据读取方式是相同的。能否从文件读取的数据以二维数组的形成存储呢?下面例10-8了解如何以二维数组
9、形成存储数据。【例10-8】将例10-5的通讯录文件“contractlist.csv”中数据读取到程序中,以二维数组的形成存储数据,并将数据显示在RAPTOR主控制台上。问题分析:本题与例10-7不同之处在于:例10-7是将二维表中的每行数据以字符串形成存储在一维数组value中;本题是要以二维数组形成存储数据。由于文件是以.csv形式存储,文件中每列数据之间则以逗号分隔,因此,扫描每行数据时只要出现逗号,则以列的形式在程序中存储。程序利用双重循环结构实现,外层表示二维数组的行,内层表示二维数组的列。本章小结本章小结本章介绍了通过文件输入或文件输出的方式将程序需要的数据从文件中读取或者将程序运行结果输出到文件中,这种方式可以满足大量的数据输入或者存储,对工程类的计算过程非常有用。