编程基础/从文本文件加载数组
外观
< 编程基础
从文本文件加载数组需要几个步骤,包括:打开文件、读取记录、解析(分割)记录到字段、将字段添加到数组以及关闭文件。可以一次读取整个文件,然后解析或逐行处理。数组必须与文件中记录的数量一样大,或者必须动态生成。
从文件加载数组呈现了一个有趣的困境。问题围绕着你应该在数组中规划多少个元素。假设是 100,但是如果文件少于或多于 100 个值怎么办?程序如何正确处理?
或者
- 读取文件并计算记录数量。
- 创建一个指定大小的静态数组。
- 再次读取文件并将每个记录添加到数组。
或者
- 读取文件并将记录动态添加到数组。
有两种文件处理选项
- 将整个文件读入内存,分割记录,然后处理每个记录。
- 逐行读取文件并一次处理一条记录。
哪种方法更好将取决于文件的大小以及你的编程语言支持的文件和字符串处理类型。对于小文件,一次读取整个文件可能更快。非常大的文件必须逐行处理。
处理字段需要根据给定的文件格式分割记录。例如,逗号分隔值文件可能格式化为
Celsius, Fahrenheit 0.0,32.0 1.0,33.8 2.0,35.6
第一行包含用逗号分隔的字段名。接下来的几行包含每个字段的值,并用逗号分隔。请注意,所有文本文件输入都是字符串。每行必须以字段分隔符(逗号)分割,然后数字字段必须转换为整数或浮点数以进行处理。
Open file Read header While Not End-Of-File Read line Increment record count Close file Declare array with length based on record count Read Header While Not End-Of-File Read line Split line into field(s) Convert numeric values to numeric data types Add field(s) to array or parallel arrays Close file
Declare empty array Open file Read Header While Not End-Of-File Read line Split line into field(s) Convert numeric values to numeric data types Add field(s) to array or parallel arrays Close file
- 动态内存
- 与本地范围关联的堆栈创建内存。
- 解析
- 分割
- 静态内存
- 与全局范围关联的数据区内存。