Topic 2: File Operations (Open, Read, Write, Close)

File Operations in RPG

In RPG, handling data files is essential for managing input and output operations. This topic will cover the fundamental operations that you can perform on files: opening, reading, writing, and closing.

1. Opening a File

To work with a file in RPG, the first step is to open it. You can open a file using the OPEN operation code. The syntax is:

`rpg OPEN file-name `

Example of Opening a File

`rpg Dcl-F myFile DISK; // Declare the file

// Opening the file for input OPEN myFile; `

2. Reading from a File

Once the file is opened, you can read data from it using the READ operation code. This operation reads a single record from the file into a record format.

Example of Reading from a File

`rpg Dcl-F myFile DISK; // Declare the file Dcl-DS recordFormat; field1 Char(20); field2 Int(10); End-Ds;

// Read the first record from the file READ myFile recordFormat;

// Check if the read was successful If %EOF(myFile); // Handle end of file EndIf; `

3. Writing to a File

To write data to a file, you use the WRITE operation code. This writes the contents of a record format into the file.

Example of Writing to a File

`rpg Dcl-F myFile DISK; // Declare the file Dcl-DS recordFormat; field1 Char(20); field2 Int(10); End-Ds;

// Assign values to the fields recordFormat.field1 = 'Data Entry'; recordFormat.field2 = 123;

// Write the record to the file WRITE myFile recordFormat; `

4. Closing a File

After completing the file operations, it is important to close the file using the CLOSE operation code. This ensures that all resources are released properly.

Example of Closing a File

`rpg CLOSE myFile; `

Practical Example

Let’s combine all these operations into a simple RPG program that reads from an input file, processes the data, and writes the results to an output file.

`rpg Dcl-F inputFile DISK; // Input file declaration Dcl-F outputFile DISK; // Output file declaration Dcl-DS recordFormat; field1 Char(20); field2 Int(10); End-Ds;

// Open files OPEN inputFile; OPEN outputFile;

// Read records from input file, process, and write to output file READ inputFile recordFormat; While not %EOF(inputFile); // Process data (e.g., just writing it back for this example) WRITE outputFile recordFormat; READ inputFile recordFormat; EndWhile;

// Close files CLOSE inputFile; CLOSE outputFile; `

Summary

In summary, file operations in RPG are crucial for data manipulation. By properly opening, reading, writing, and closing files, you can effectively manage data input and output within your RPG applications.

Back to Course View Full Topic