Extract Data from a Text File Using the Specified Separator

Problem description & analysis

Below is text file 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

The column separator is the semicolon (";"). We are trying to use the file as the data source in BIRT, use the semicolon as the separator, and extract a data set from the text file as follows:

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

Solution

Write the following script p1.dfx in esProc:

A

1

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

Explanation:

A1   Use semicolon as the separator, import data from the file, and return it as table sequence. Take the first record as column headers.

Refer to How to Call an SPL Script in BIRT to learn about the method of integrating the SPL script with BIRT.

Q & A Collection

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