Using the IMPORT statement
- Last Updated: February 11, 2026
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
Using the IMPORT statement
The IMPORT statement is the counterpart of
the EXPORT statement. It reads an input file into
ABL procedures, one line at a time.
The i-import.p procedure shows IMPORT reading
the file exported by the i-export.p procedure.
i-import.p
|
This relies on the input being space separated. You can also
use the DELIMITER option of the IMPORT statement
to read a file with a different separator.
For example, i-imprt2.p reads the file produced by i-exprt2.p shown in Using the EXPORT statement.
i-imprt2.p
|
This example reads one line at a time from i-datfl7.d into
the character-string variable data. It then breaks the line into
discrete values and assigns them to the fields of a Customer record.
Although the IMPORT statement is used primarily
to read data in the standard format written by the EXPORT statement.
However, you can use the UNFORMATTED and DELIMITER options
of IMPORT to read data in non-standard formats.
When you use the UNFORMATTED option, the IMPORT statement
reads one line from the input file. For example, suppose your input
file is formatted as shown in i-datf12.d.
i-datf12.d
|
The lines containing CustNum and SalesRep values
can be read with normal IMPORT statements. However,
if you try to read the Customer Name values with
a normal IMPORT statement, only the first word
of each Name is read—the space character is treated
as a delimiter. To prevent this, read the Name with
the UNFORMATTED option, as in i-impun1.p.
i-impun1.p
|
Now, suppose each line of the file contained a CustNum, Name,
and SalesRep value, but no special delimiters are
used. Instead, the fields are defined by their position within the
line as shown in idatf13.d.
i-datf13.d
|
In i-datfl3.d, the first three character
positions in each line are reserved for the CustNum value,
the next 17 positions for the Name value, and the
last three for the SalesRep value. Space characters
may occur between fields, but they may also occur within a field
value. To process this file with the IMPORT statement,
use the UNFORMATTED option to read one line at
a time, as shown in i-impun2.p.
i-impun2.p
|
After i-impun2.p reads each line, it uses
the SUBSTRING function to break the line into field
values. It then assigns these values to the appropriate fields in
the customer record.
IMPORT statement with the UNFORMATTED option
reads both lines into a single variable. What if fields values are separated by a delimiter other than the space character? For example, in i-datfl4.d, field values are separated by commas.
i-datf14.d
|
You could use the UNFORMATTED option of the IMPORT statement
to read this file one line at a time and then use the INDEX function
to locate the commas and break the line into field values. Another
solution is to use the DELIMITER option of the IMPORT statement
as shown in i-impun3.p.
i-impun3.p
|
In i-impun3.p, the DELIMITER option
specifies that field values are separated by commas rather than
by spaces. Therefore, the IMPORT statement parses
each line correctly and assigns each value to the appropriate field.
DELIMITER option
is longer than one character, then only the first character is used.For more information on the IMPORT statement,
see ABL Reference.