swirl
Guide to OmniMark 9   OmniMark home
docs home 
IndexConceptsTasksSyntaxLibrariesLegacy LibrariesErrors
 
Prerequisite Concepts     Related Topics  

File tests

In addition to writing to and reading from files, you can perform a variety of tests on files.

The following process rule will fire only when the file "foo.txt" exists:

  process when file "foo.txt" exists
      reopen foo
      put foo "Mary had a little lamb.%n"
      close foo

If you want to do one thing when the file exists and another if it doesn't exist, you can use the test in a "do...done" block:

  process
      do when file "foo.txt" exists
          reopen foo
          put foo "Its fleece was white as snow.%n"
          close foo
      else
          open foo as file "foo.txt"
          put foo "Mary had a little lamb,%n"
          close foo
      done

You can also test for the readability and writability of a file as follows:

  process when file "foo.txt" isnt readable
      output "File foo.txt cannot be read.%n"
      || "Check your file and directory permissions.%n"
  
  process when file "foo.txt" isnt writable
      output "File foo.txt cannot be written.%n"
      || "Check your file and directory permissions.%n"

The results of these tests can be reversed by using is rather than isnt.

Finally, you can test whether a named file is a file or a directory:

  process when file "foo.txt" is file
      submit file "foo.txt"
  
  process when file "foo.txt" is directory
      output "Error: foo.txt is a directory.%n"

These tests can also be reversed by replacing is with isnt.

File tests are not often needed in OmniMark programs because the default handling of file input and output errors is often appropriate. If an error is encountered when attempting to read from or write to a file, OmniMark will generate an error message that specifies the error encountered and the name of the file involved. The program then terminates.

Error messages will be generated when any of the following problems are encountered:

File tests exist so that you can specify different handling procedures for file input and output errors.

Prerequisite Concepts
 
  Related Topics
 
 

Top [ INDEX ] [ CONCEPTS ] [ TASKS ] [ SYNTAX ] [ LIBRARIES ] [ LEGACY LIBRARIES ] [ ERRORS ]

OmniMark 9.1.0 Documentation Generated: September 2, 2010 at 1:35:14 pm
If you have any comments about this section of the documentation, please use this form.

Copyright © Stilo International plc, 1988-2010.