Parses a character string in the form path-name<<member-name>>, where path-name is the pathname of an ABL r-code library and member-name is the name of a file within the library, and returns the pathname of the library. The double angle brackets indicate that member-name is a file in a library. If the string is not in this form, the LIBRARY function returns the Unknown value (?).
Typically, you use the LIBRARY function with the SEARCH function to retrieve the name of a library. The SEARCH function returns character strings of the form path-name<<member-name>> if it finds a file in a library.
This procedure searches for a file that you specify. It displays a message indicating whether the file is not found in your path, is found in a library within your path, or is found in your path but not in a library.
r-rlib.p
DEFINE VARIABLE what-lib AS CHARACTER NO-UNDO. DEFINE VARIABLE location AS CHARACTER NO-UNDO. DEFINE VARIABLE myfile AS CHARACTER NO-UNDO FORMAT "x(16)" LABEL "R-code File". SET myfile. location = SEARCH(myfile). IF location = ?THEN DO: MESSAGE "Can't find" myfile. LEAVE. END. what-lib = LIBRARY(location). IF what-lib <> ? THEN MESSAGE myfile "can be found in library" what-lib. ELSE MESSAGE myfile "is not in a library but is in" location. |
You can improve the performance of an application by using the SEARCH and LIBRARY functions for any files you want to execute that you specify with a relative pathname. For example, if you want to execute a procedure file several times that you specify with a relative pathname, you can return the absolute pathname for the file using the SEARCH and LIBRARY functions, then execute the RUN statement with that absolute pathname, which avoids any need for the RUN statement to search PROPATH each time.