2.5.2 文件格式

当创建一个如我们例子中使用到的数据文件时,保存数据的格式将完全由你决定。(然而,如果打算在另一个应用程序中使用这个数据文件,你可能就不得不遵循那个应用程序的规则。)

下面,让我们构造一个表示数据文件中一条记录的字符串。可以使用如下所示语句:


$outputstring=$date."\t".$tireqty."tires\t".$oilqty."oil\t"

.$sparkqty."spark plugs\t\$".$totalamount

."\t".$address."\n";


在这个简单的例子中,我们将每一个订单记录保存在文件的一行中。我们选择每行记录一个订单这种格式是因为这样可以使用换行字符作为简单的记录间隔符。由于换行字符并不是可见的,因此我们使用控制序列"\n"来表示。

在本书的所有例子中,我们每次按照相同的顺序写入数据字段,并且使用制表符来分隔每一个字段。需要再次提到的是,由于制表符是不可见的,因此可以使用控制序列"\t"来表示。可以选择任何便于以后读取的、有意义的定界符。

分隔字符或定界字符一定不能出现在输入中,或者我们对输入进行处理,将分隔符删除或者进行转义处理。在第4章中详细介绍输入的处理。

现在,我们假设没有人会在订单中输入制表符。对于一个用户来说,在一行HTML的输入域中输入一个制表符或者换行字符是比较困难的,但是这并不是没有可能的。

使用特殊的域分隔符便于在读取数据的时候将数据分隔成不同的变量。在第3章和第4章中,我们将详细讨论这一点。从现在开始,我们将每一个订单当作一个字符串进行处理。

处理了一些订单后,该文件的内容将类似于程序清单2-1所示。

程序清单2-1 orders.txt——订单文件可能包含内容的示例


20:30,31st March 2008 4 tires 1 oil 6 spark plugs$434.00 22 Short St,

Smalltown

20:42,31st March 2008 1 tires 0 oil 0 spark plugs$100.00 33 Main Rd,

Newtown

20:43,31st March 2008 0 tires 1 oil 4 spark plugs$26.00 127 Acacia St,

Springfield