TextIO : Little user guide

I receive sometime some remarks concerning how to use the TextIO file, so there is a little example of how to use it.

You must also know that TextIO class will replace the old AsciiIO class.

When you create your file with the 'new', you can also add a parameter: 'CodePage'. This CodePage can create a file of type ANSI or UTF8. For more information concerning this, read this page: https://msdn.microsoft.com/en-us/library/aa881745(v=ax.50).aspx

For other information on TextIO class: https://msdn.microsoft.com/en-us/library/aa603840(v=AX.50).aspx

So now, little example:

 

Write

public void writeOnFile(FileName _fileName, str _value, container _valueList)
{
    #File
    TextIO file; 
   
    // SET PERMISSION
    new FileIOPermission(_fileName, #io_write).assert();
   
    // CREATE FILE
    file = new TextIO(_fileName, #io_write);

    // CHECK STATUS
    if (!file || file.status() != IO_Status::Ok)
    {
        throw error('Can not create file');
    }
   
    // ADD SIMPLY DATA
    file.write(_value);
   
    // ADD DATA SEPARATE BY ';' (For CSV file f.e.)
    file.outFieldDelimiter(';');
    file.write(_valueList);
   
    // CLOSE FILE
    file = null;
   
    // REVERT ACCESS
    CodeAccessPermission::revertAssert();
}

 

Read

private void readFile(FileName _fileName)
{
    #File
    TextIO file;
    container line;

    // SET PERMISSION
    new FileIOPermission(_fileName, #io_read).assert();
    
    // SET FILE
    file = new TextIO(_fileName, #io_read);
   
    // CHECK STATUS
    if (!file || file.status() != IO_Status::Ok)
    {
        throw error("Can't open file");
    }
   
    // SET DELIMITER FOR READ
    file.inFieldDelimiter(';');
   
    // READ FIRST LINE
    line = file.read();
   
    while (conLen(line))
    {
        // Put your specific code here

        // READ NEXT LINE
        line = file.read();
    }
   
    // CLOSE FILE
    file = null;
   
    // REVERT ACCESS
    CodeAccessPermission::revertAssert();
}

 

 

Disclaimer:

This programming example is for illustration purposes only. Microsoft disclaims all warranties and conditions with regard to use of the programming example for other purposes. Microsoft shall not, at any time, be liable for any special, direct, indirect or consequential damages, whether in an action of contract, negligence or other action arising out of or in connection with the use or performance of the programming example. Nothing herein should be construed as constituting any kind of warranty.