使用指定分隔符从文本文件中提取数据

例题描述和简单分析

有文本文件separators.txt,数据如下所示:

EID;NAME;SURNAME;GENDER;STATE;BIRTHDAY;HIREDATE;DEPT

9;Victoria;Davis;F;Texas;1983-12-07;2009-12-07;HR

7;Alexis;Smith;F;Illinois;1972-08-16;2002-08-16;Sales

5;Ashley;Smith;F;Texas;1975-05-13;2004-07-30;R&D

3;Rachel;Johnson;F;New Mexico;1970-12-17;2010-12-01;Sales

1;Rebecca;Moore;F;California;1974-11-20;2005-03-11;R&D

2;Ashley;Wilson;F;New York;1980-07-19;2008-03-16;Finance

4;Emily;Smith;F;Texas;1985-03-07;2006-08-15;HR

6;Matthew;Johnson;M;California;1984-07-07;2005-07-07;Sales

8;Megan;Wilson;F;California;1979-04-19;1984-04-19;Marketing

10;Ryan;Johnson;M;Pennsylvania;1976-03-12;2006-03-12;R&D

已知列间分隔符为分号(";"),现需要用该文件作为 BIRT 的数据源。使用分号作为分隔符,从文本文件中提取的数据集如下所示:

EID

NAME

SURNAME

GENDER

STATE

BIRTHDAY

HIREDATE

DEPT

9

Victoria

Davis

F

Texas

1983-12-07

2009-12-07

HR

7

Alexis

Smith

F

Illinois

1972-08-16

2002-08-16

Sales

5

Ashley

Smith

F

Texas

1975-05-13

2004-07-30

R&D

3

Rachel

Johnson

F

New Mexico

1970-12-17

2010-12-01

Sales

1

Rebecca

Moore

F

California

1974-11-20

2005-03-11

R&D

2

Ashley

Wilson

F

New York

1980-07-19

2008-03-16

Finance

4

Emily

Smith

F

Texas

1985-03-07

2006-08-15

HR

6

Matthew

Johnson

M

California

1984-07-07

2005-07-07

Sales

8

Megan

Wilson

F

California

1979-04-19

1984-04-19

Marketing

10

Ryan

Johnson

M

Pennsylvania

1976-03-12

2006-03-12

R&D

解法及简要说明

在集算器中编写脚本p1.dfx,如下所示:


A

1

=file("separators.txt").import@t(;,";")

简要说明:

A1   用分号作为分隔符,读取文件内容并返回成序表,第一行记录作为字段名

BIRT 集成这段代码的方法可参考:BIRT 如何调用 SPL 脚本》

问答搜集

https://www.eclipse.org/forums/index.php/t/21046/