[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
RE: [sqr-users] How to read a flat file that has a trailer line
- Subject: RE: [sqr-users] How to read a flat file that has a trailer line
- From: "Bob Stone" <bstone@fastenal.com>
- Date: Tue, 30 Jan 2007 18:17:22 -0600
- Delivery-date: Tue, 30 Jan 2007 19:23:28 -0500
- In-reply-to: <BAY122-DAV109A9A7977AC711707BFB3AEA60@phx.gbl>
- List-id: "This list is for discussion about the SQR database reportinglanguage from Hyperion Solutions." <sqr-users.sqrug.org>
- Thread-index: AcdEx5f6+cvHmS+pQlK1xZ+xtvsBQQABQTvQ
- Thread-topic: [sqr-users] How to read a flat file that has a trailer line
Do what you're doing.
while/read/blah/input_area
EXTRACT $OUTD-TYPE FROM $INPUT_AREA 0 1
IF $OUTD-TYPE <> 'T'
EXTRACT $OUTD-CRE-DATE FROM $INPUT_AREA 1 9
EXTRACT $OUTD-TRAN-UNIQ FROM $INPUT_AREA 9 11
EXTRACT $OUTD-SEQ FROM $INPUT_AREA 11 14
EXTRACT $OUTD-BUS-UNIT FROM $INPUT_AREA 14 19
EXTRACT $OUTD-MDCY FROM $INPUT_AREA 19 27
EXTRACT $OUTD-ACCOUNT FROM $INPUT_AREA 27 37
EXTRACT $OUTD-DEPTID FROM $INPUT_AREA 37 47
EXTRACT $OUTD-OPER-UNIT FROM $INPUT_AREA 47 55
EXTRACT $OUTD-PROD-ID FROM $INPUT_AREA 55 61
EXTRACT $OUTD-AMOUNT FROM $INPUT_AREA 61 72
EXTRACT $OUTD-DELIM FROM $INPUT_AREA 72 74
ELSE
EXTRACT $OUTT-TYPE FROM $INPUT_AREA 0 1
EXTRACT $OUTT-COUNT FROM $INPUT_AREA 1 9
EXTRACT $OUTT-DEBITS FROM $INPUT_AREA 9 21
EXTRACT $OUTT-CREDITS FROM $INPUT_AREA 21 33
EXTRACT $UNKNOWN FROM $INPUT_AREA 33 35
EXTRACT $OUTT-DELIM FROM $INPUT_AREA 35 37
END-IF
do Process-Data !could put this in each section, if you process the
'T' differently.
and so forth on the program. if statement is a pretty handy one to use
in a lot of ways. good ole IF.
-----Original Message-----
From: sqr-users-bounces+bstone=fastenal.com@sqrug.org
[mailto:sqr-users-bounces+bstone=fastenal.com@sqrug.org] On Behalf Of
Joe
Sent: Tuesday, January 30, 2007 5:33 PM
To: This list is for discussion about the SQR database reportinglanguage
from Hyperion Solutions.
Subject: [sqr-users] How to read a flat file that has a trailer line
I am writing an SQR to read a flat file that has a trailer line at the
end with different fields than the rest of the file. The trailer line
could be anywhere from 5 to 400 lines from the top of the file. It is
marked with a 'T' at the beginning
I'm not sure how to tackle this - I know the basics:
open $FileName as 1 for-reading record={IntLength1}:{IntType1}
status=#filestat......
while 1 = 1
READ 1 INTO $INPUT_AREA:{IntLength1}.....
!Detail line is
EXTRACT $OUTD-TYPE FROM $INPUT_AREA 0 1
EXTRACT $OUTD-CRE-DATE FROM $INPUT_AREA 1 9
EXTRACT $OUTD-TRAN-UNIQ FROM $INPUT_AREA 9 11
EXTRACT $OUTD-SEQ FROM $INPUT_AREA 11 14
EXTRACT $OUTD-BUS-UNIT FROM $INPUT_AREA 14 19
EXTRACT $OUTD-MDCY FROM $INPUT_AREA 19 27
EXTRACT $OUTD-ACCOUNT FROM $INPUT_AREA 27 37
EXTRACT $OUTD-DEPTID FROM $INPUT_AREA 37 47
EXTRACT $OUTD-OPER-UNIT FROM $INPUT_AREA 47 55
EXTRACT $OUTD-PROD-ID FROM $INPUT_AREA 55 61
EXTRACT $OUTD-AMOUNT FROM $INPUT_AREA 61 72
EXTRACT $OUTD-DELIM FROM $INPUT_AREA 72 74
!Trailer line is
EXTRACT $OUTT-TYPE FROM $INPUT_AREA 0 1
EXTRACT $OUTT-COUNT FROM $INPUT_AREA 1 9
EXTRACT $OUTT-DEBITS FROM $INPUT_AREA 9 21
EXTRACT $OUTT-CREDITS FROM $INPUT_AREA 21 33
EXTRACT $UNKNOWN FROM $INPUT_AREA 33 35
EXTRACT $OUTT-DELIM FROM $INPUT_AREA 35 37
do Process-Data
end-while
How do I read the last trailer line with different field positions and
lengths?
Example of input file:
D2007010201036955 12312006111005
0000000261543
C2007010201037955 12312006531010 428 00
0000000250865
C2007010201038955 12312006534010 999 00
0000000010678
T000000380000011780745200000117807452
How do I tell the program to read until it gets to 'T' then change what
it extracts after the 'T'?
TIA,
Joe
_______________________________________________
sqr-users mailing list
sqr-users@sqrug.org
http://www.sqrug.org/mailman/listinfo/sqr-users
_______________________________________________
sqr-users mailing list
sqr-users@sqrug.org
http://www.sqrug.org/mailman/listinfo/sqr-users