Kbase P13521: How to import data this is not broken into separate records?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  15/10/2008 |
|
Status: Verified
GOAL:
How to import data this is not broken into separate records?
GOAL:
How to import an ASCII file that has no line feeds?
FIX:
The following code shows how to import data that has each record
located immediately after the previous record without any sort of
CR/LF (or other delimiter) between each record.
NOTE: This program only works with version 8.2 and higher.
/*-------------------------------------------------------------*/
/* This program demonstrates how to input data from a file */
/* when the data is not broken out into separate lines. */
/*-------------------------------------------------------------*/
DEFINE TEMP-TABLE ExtData NO-UNDO
FIELD cField AS CHARACTER FORMAT "X(2)"
FIELD iField AS INTEGER FORMAT "9999".
DEFINE VARIABLE ExtRecord AS RAW NO-UNDO.
DEFINE VARIABLE ExtField1 AS CHARACTER NO-UNDO FORMAT "X(2)".
DEFINE VARIABLE ExtField2 AS CHARACTER NO-UNDO FORMAT "X(4)".
DEFINE STREAM ExtStream.
ASSIGN LENGTH(ExtRecord) = 6. /* Put Record Length Here */
INPUT STREAM ExtStream FROM TEST.DAT.
REPEAT:
IMPORT STREAM ExtStream UNFORMATTED ExtRecord.
ASSIGN ExtField1 = GET-STRING(ExtRecord,1)
ExtField2 = GET-STRING(ExtRecord,3) NO-ERROR.
IF ExtField1 NE '' AND ExtField2 NE '' THEN
DO:
CREATE ExtData.
ASSIGN ExtData.cField = ExtField1
ExtData.iField = INTEGER(ExtField2).
DISPLAY ExtData.
END.
END.
INPUT STREAM ExtStream CLOSE.
ASSIGN LENGTH(ExtRecord) = 0.
The following data file was used to test this program:
AA1111BB2222CC3333DD4444EE5555FF6666GG7777HH8888II9999