不确定多行构成一条单位的提取

1.   思路

不确定多行构成一条单位的提取,需从以下两点来思考:

1  从不确定多行中,按规律找出区分每个单位的方法

2  把区分后的数据构成一条单位并提取

不同数据的规律可能不一样,但总是要有规律才能区分每个单位。

2.   举例

现有文本文件 info.txt,部分内容如下:

Abbrucharbeiten

ATR Armbruster

Werkstr. 28

78727 Oberndorf 

Tel. 0175 7441784

Fax 07423 6280

Abbrucharbeiten

Jensen & Sohn, Karl

Schallenberg 6A

25587 Münsterdorf

Tel. 04821 82538

Fax 04821 83381

Abbrucharbeiten

Kiwitt, R.

Auf der Heide 54

48282 Emsdetten

Tel. 02572 88559

Tel. 0172 7624359

Abbrucharbeiten, Sand und Kies, Transporte, Kiesgruben, Erdbau

Josef Grabmeier GmbH

Reitgesing 1

85560 Ebersberg

Tel. 08092 24701-0

Fax 08092 24701-24

这是 4 个联系方式信息,其中每个联系方式信息的前 4 行分别是部门、公司名称、地址、邮编,第 5 行开始为联系方式,可能是电话或者传真,数量可能为两个或更多。现需要按数据的实际内容,将文本文件的信息转为 Excel,格式为:

Branche:    Name:     Address:   Place:    contact1:   contact2:

1st row     2nd row   3rd row    4th row   5th row     6th row.....

 

在 SPL 中编写脚本:


A

1

=file("info.txt").import@i()

2

=A1.group@o(left(~,3)=="Tel"   || left(~,3)=="Fax")

3

=A2.step(2,2)

4

=A2.step(2,1).((~|A3(#)).concat@cq())

5

=file("info.csv").export(A4)

A1   读取 info.txt 数据

A2   将电话、传真信息与其他信息分组

A3   取分组结果的偶数行

A4   合并奇、偶行数据作为一条记录,每条记录用逗号分隔,拼成字符串(奇数行是其他信息,偶数行是电话、传真信息)

A5   结果输出到 info.csv 中