Previous: utidr Up: ../plot79_u.html Next: utifa
SUBROUTINE UTIDT (TEXT,LENTXT,NEXT,ERROR,FIELD,LENGTH,QUOTE, X FLUSH) C$ (Decode Character String) C$ Convert a character string delimited by a specified C$ character to a string stored 1 character/word in TEXT(*). C$ To permit free-form input, the conversion will continue C$ until the terminal delimiter is found, or else the end of C$ FIELD(*) is reached. C$ C$ If the delimiter is non-blank, then if it is present in the C$ string, it must be represented by two successive C$ delimiters. For example, 'O''Neill' will become O'Neill. C$ C$ If the delimiter character is a blank, then it may not be C$ present in the string to be returned, because a blank is C$ also considered a data item separator. A blank delimiter C$ is useful, for example, in extracting words from a text C$ file. The string will implicitly be extended on both ends C$ by a blank character, so that the user need not bother to C$ ensure this in order to correctly retrieve the first and C$ last words in a string from which leading and trailing C$ blanks have been trimmed. C$ C$ A pointer is set to the next unprocessed character in C$ FIELD(*) (which might be FIELD(LENGTH+1)) so that the C$ caller may check for valid syntax. The arguments are: C$ C$ TEXT(*)........Character string (returned). C$ LENTXT.........Number of characters in TEXT(*). It may be C$ zero. C$ NEXT...........On exit, index of the character in FIELD(*) C$ which follows the last character processed. C$ On input, it should point to the first C$ character to be processed. C$ ERROR.......... .TRUE. - No valid characters found. NUMBER C$ is set to 0. C$ .FALSE. - No error occurred. C$ FIELD(*).......Character string to be decoded (A1 format). C$ LENGTH.........Number of characters in FIELD(*). C$ QUOTE..........Delimiter character (A1 format). It may be C$ any valid Hollerith character. C$ FLUSH.......... .TRUE. - Flush any leading invalid C$ characters. C$ .FALSE. - Do not flush leading invalid C$ characters. C$ C$ The FLUSH option is useful to allow successive calls to C$ retrieve strings separated by commas, spaces, etc. The C$ caller must realize, however, that this might cause C$ skipping over incorrectly-coded items (e.g. C$ '1',"2",'3','4','5' for '1','2','3','4','5'). C$ (08-APR-82)