fpc/docs/sysutils.xml
2004-08-29 15:34:16 +00:00

6042 lines
144 KiB
XML

<?xml version="1.0" encoding="ISO8859-1"?>
<fpdoc-descriptions>
<!--
$Id$
This file is part of the FPC documentation. -->
Copyright (C) 1999, by Michael Van Canneyt
The FPC documentation is free text; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The FPC Documentation is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the FPC documentation; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
-->
<package name="rtl">
<module name="sysutils">
<short>Various system utilities.</short>
<!-- \FPCexampledir{sysutex} -->
<descr>
This documentation describes the <file>sysutils</file> unit. The <file>sysutils</file> unit
was largely written by Gertjan Schouten, and completed by Michael Van Canneyt.
It aims to be compatible to the Delphi <file>sysutils</file> unit, but in contrast
with the latter, it is designed to work on multiple platforms. It is implemented
on all supported platforms.
</descr>
<topic name="StringFunctions">
<short>String functions</short>
<descr>
<p>
Functions for handling strings.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="AnsiCompareStr"/></td><td>Compare two strings</td></tr>
<tr><td><link id="AnsiCompareText"/></td><td>Compare two strings, case insensitive</td></tr>
<tr><td><link id="AnsiExtractQuotedStr"/></td><td>Removes quotes from string</td></tr>
<tr><td><link id="AnsiLastChar"/></td><td>Get last character of string</td></tr>
<tr><td><link id="AnsiLowerCase"/></td><td>Convert string to all-lowercase</td></tr>
<tr><td><link id="AnsiQuotedStr"/></td><td>Qoutes a string</td></tr>
<tr><td><link id="AnsiStrComp"/></td><td>Compare strings case-sensitive</td></tr>
<tr><td><link id="AnsiStrIComp"/></td><td>Compare strings case-insensitive</td></tr>
<tr><td><link id="AnsiStrLComp"/></td><td>Compare L characters of strings case sensitive</td></tr>
<tr><td><link id="AnsiStrLIComp"/></td><td>Compare L characters of strings case insensitive</td></tr>
<tr><td><link id="AnsiStrLastChar"/></td><td>Get last character of string</td></tr>
<tr><td><link id="AnsiStrLower"/></td><td>Convert string to all-lowercase</td></tr>
<tr><td><link id="AnsiStrUpper"/></td><td>Convert string to all-uppercase</td></tr>
<tr><td><link id="AnsiUpperCase"/></td><td>Convert string to all-uppercase</td></tr>
<tr><td><link id="AppendStr"/></td><td>Append 2 strings</td></tr>
<tr><td><link id="AssignStr"/></td><td>Assign value of strings on heap</td></tr>
<tr><td><link id="CompareStr"/></td><td>Compare two strings case sensitive</td></tr>
<tr><td><link id="CompareText"/></td><td>Compare two strings case insensitive</td></tr>
<tr><td><link id="DisposeStr"/></td><td>Remove string from heap</td></tr>
<tr><td><link id="IsValidIdent"/></td><td>Is string a valid pascal identifier</td></tr>
<tr><td><link id="LastDelimiter"/></td><td>Last occurance of character in a string</td></tr>
<tr><td><link id="LeftStr"/></td><td>Get first N characters of a string</td></tr>
<tr><td><link id="LoadStr"/></td><td>Load string from resources</td></tr>
<tr><td><link id="LowerCase"/></td><td>Convert string to all-lowercase</td></tr>
<tr><td><link id="NewStr"/></td><td>Allocate new string on heap</td></tr>
<tr><td><link id="RightStr"/></td><td>Get last N characters of a string</td></tr>
<tr><td><link id="StrAlloc"/></td><td>Allocate memory for string</td></tr>
<tr><td><link id="StrBufSize"/></td><td>Reserve memory for a string</td></tr>
<tr><td><link id="StrDispose"/></td><td>Remove string from heap</td></tr>
<tr><td><link id="StrPas"/></td><td>Convert PChar to pascal string</td></tr>
<tr><td><link id="StrPCopy"/></td><td>Copy pascal string</td></tr>
<tr><td><link id="StrPLCopy"/></td><td>Copy N bytes of pascal string</td></tr>
<tr><td><link id="UpperCase"/></td><td>Convert string to all-uppercase</td></tr>
</table>
</descr>
</topic>
<topic name="FormatStrings">
<short>Formatting strings</short>
<descr>
<p>
Functions for formatting strings.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="AdjustLineBreaks"/></td><td>Convert line breaks to line breaks for system</td></tr>
<tr><td><link id="FormatBuf"/></td><td>Format a buffer</td></tr>
<tr><td><link id="Format"/></td><td>Format arguments in string</td></tr>
<tr><td><link id="FmtStr"/></td><td>Format buffer</td></tr>
<tr><td><link id="QuotedStr"/></td><td>Quote a string</td></tr>
<tr><td><link id="StrFmt"/></td><td>Format arguments in a string</td></tr>
<tr><td><link id="StrLFmt"/></td><td>Format maximum L characters in a string</td></tr>
<tr><td><link id="TrimLeft"/></td><td>Remove whitespace at the left of a string</td></tr>
<tr><td><link id="TrimRight"/></td><td>Remove whitespace at the right of a string</td></tr>
<tr><td><link id="Trim"/></td><td>Remove whitespace at both ends of a string</td></tr>
</table>
</descr>
</topic>
<topic name="FormatChars">
<short>Date and time formatting characters</short>
<descr>
<p>
Various date and time formatting routines accept a format string.
to format the date and or time. The following characters can be used
to control the date and time formatting:
</p>
<dl>
<dt>c</dt><dd>shortdateformat + ' ' + shorttimeformat</dd>
<dt>d</dt><dd>day of month</dd>
<dt>dd</dt><dd>day of month (leading zero)</dd>
<dt>ddd</dt><dd>day of week (abbreviation)</dd>
<dt>dddd</dt><dd>day of week (full)</dd>
<dt>ddddd</dt><dd>shortdateformat</dd>
<dt>dddddd</dt><dd>longdateformat</dd>
<dt>m</dt><dd>month</dd>
<dt>mm</dt><dd>month (leading zero)</dd>
<dt>mmm</dt><dd>month (abbreviation)</dd>
<dt>mmmm</dt><dd>month (full)</dd>
<dt>y</dt><dd>year (four digits)</dd>
<dt>yy</dt><dd>year (two digits)</dd>
<dt>yyyy</dt><dd>year (with century)</dd>
<dt>h</dt><dd>hour</dd>
<dt>hh</dt><dd>hour (leading zero)</dd>
<dt>n</dt><dd>minute</dd>
<dt>nn</dt><dd>minute (leading zero)</dd>
<dt>s</dt><dd>second</dd>
<dt>ss</dt><dd>second (leading zero)</dd>
<dt>t</dt><dd>shorttimeformat</dd>
<dt>tt</dt><dd>longtimeformat</dd>
<dt>am/pm</dt><dd>use 12 hour clock and display am and pm accordingly</dd>
<dt>a/p</dt><dd>use 12 hour clock and display a and p accordingly</dd>
<dt>/</dt><dd>insert date seperator</dd>
<dt>:</dt><dd>insert time seperator</dd>
<dt>"xx"</dt><dd>literal text</dd>
<dt>'xx'</dt><dd>literal text</dd>
</dl>
</descr>
</topic>
<topic name="PCharFunctions">
<short>PChar related functions</short>
<descr>
<p>
Most PChar functions are the same as their counterparts in the <file>STRINGS</file>
unit. The following functions are the same :
</p>
<ol>
<li><link id="StrCat"/> : Concatenates two <var>PChar</var> strings.</li>
<li><link id="StrComp"/> : Compares two <var>PChar</var> strings.</li>
<li><link id="StrCopy"/> : Copies a <var>PChar</var> string.</li>
<li><link id="StrECopy"/> : Copies a <var>PChar</var> string and returns a pointer to
the terminating null byte.</li>
<li><link id="StrEnd"/> : Returns a pointer to the terminating null byte.</li>
<li><link id="StrIComp"/> : Case insensitive compare of 2 <var>PChar</var> strings.</li>
<li><link id="StrLCat"/> : Appends at most L characters from one <var>PChar</var> to
another <var>PChar</var>.
</li>
<li><link id="StrLComp"/> : Case sensitive compare of at most L characters of 2 <var>PChar</var> strings.
</li>
<li><link id="StrLCopy"/> : Copies at most L characters from one <var>PChar</var> to another.
</li>
<li><link id="StrLen"/> : Returns the length (exclusive terminating null byte)
of a <var>PChar</var> string.</li>
<li> <link id="StrLIComp"/> : Case insensitive compare of at most L characters of 2
<var>PChar</var> strings.
</li>
<li> <link id="StrLower"/> : Converts a <var>PChar</var> to all lowercase letters.
</li>
<li> <link id="StrMove"/> : Moves one <var>PChar</var> to another.
</li>
<li> <link id="StrNew"/> : Makes a copy of a <var>PChar</var> on the heap, and returns
a pointer to this copy.
</li>
<li> <link id="StrPos"/> : Returns the position of one <var>PChar</var> string in
another?
</li>
<li> <link id="StrRScan"/> : returns a pointer to the last occurrence of on
<var>PChar</var> string in another one.
</li>
<li> <link id="StrScan"/> : returns a pointer to the first occurrence of on
<var>PChar</var> string in another one.
</li>
<li> <link id="StrUpper"/> : Converts a <var>PChar</var> to all uppercase
letters.</li>
</ol>
<p>
The subsequent functions are different from their counterparts in
<file>STRINGS</file>, although the same examples can be used.
</p>
</descr>
</topic>
<topic name="IORoutines">
<short>File input/output routines</short>
<descr>
<p>
Functions for reading/writing to file.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="FileCreate"/></td><td>Create a file and return handle</td></tr>
<tr><td><link id="FileOpen"/></td><td>Open file end return handle</td></tr>
<tr><td><link id="FileRead"/></td><td>Read from file</td></tr>
<tr><td><link id="FileSeek"/></td><td>Set file position</td></tr>
<tr><td><link id="FileTruncate"/></td><td>Truncate file length</td></tr>
<tr><td><link id="FileWrite"/></td><td>Write to file</td></tr>
<tr><td><link id="FileClose"/></td><td>Close file handle</td></tr>
</table>
</descr>
</topic>
<topic name="FileNameRoutines">
<short>FileName handling routines</short>
<descr>
<p>
Functions for file manipulation.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="AddDisk"/></td><td>Add sisk to list of disk drives</td></tr>
<tr><td><link id="ChangeFileExt"/></td><td>Change extension of file name</td></tr>
<tr><td><link id="CreateDir"/></td><td>Create a directory</td></tr>
<tr><td><link id="DeleteFile"/></td><td>Delete a file</td></tr>
<tr><td><link id="DiskFree"/></td><td>Free space on disk</td></tr>
<tr><td><link id="DiskSize"/></td><td>Total size of disk</td></tr>
<tr><td><link id="ExpandFileName"/></td><td>Create full file name</td></tr>
<tr><td><link id="ExpandUNCFileName"/></td><td>Create full UNC file name</td></tr>
<tr><td><link id="ExtractFileDir"/></td><td>Extract directory part of filename</td></tr>
<tr><td><link id="ExtractFileDrive"/></td><td>Extract drive part of filename</td></tr>
<tr><td><link id="ExtractFileExt"/></td><td>Extract extension part of filename</td></tr>
<tr><td><link id="ExtractFileName"/></td><td>Extract name part of filename</td></tr>
<tr><td><link id="ExtractFilePath"/></td><td>Extrct path part of filename</td></tr>
<tr><td><link id="ExtractRelativePath"/></td><td>Construct relative path between two files</td></tr>
<tr><td><link id="FileAge"/></td><td>Return file age</td></tr>
<tr><td><link id="FileDateToDateTime"/></td><td>Convert file date to system date</td></tr>
<tr><td><link id="FileExists"/></td><td>Determine whether a file exists on disk</td></tr>
<tr><td><link id="FileGetAttr"/></td><td>Get attributes of file</td></tr>
<tr><td><link id="FileGetDate"/></td><td>Get date of last file modification</td></tr>
<tr><td><link id="FileSearch"/></td><td>Search for file in path</td></tr>
<tr><td><link id="FileSetAttr"/></td><td>Get file attributes</td></tr>
<tr><td><link id="FileSetDate"/></td><td>Get file dates</td></tr>
<tr><td><link id="FindFirst"/></td><td>Start finding a file</td></tr>
<tr><td><link id="FindNext"/></td><td>Find next file</td></tr>
<tr><td><link id="GetCurrentDir"/></td><td>Return current working directory</td></tr>
<tr><td><link id="RemoveDir"/></td><td>Remove a directory from disk</td></tr>
<tr><td><link id="RenameFile"/></td><td>Rename a file on disk</td></tr>
<tr><td><link id="SetCurrentDir"/></td><td>Set current working directory</td></tr>
<tr><td><link id="SetDirSeparators"/></td><td>Set directory separator characters</td></tr>
<tr><td><link id="FindClose"/></td><td>Stop searching a file</td></tr>
<tr><td><link id="DoDirSeparators"/></td><td>Replace directory separator characters</td></tr>
</table>
</descr>
</topic>
<topic name="DateTimeRoutines">
<short>Date/time routines</short>
<descr>
<p>
Functions for date and time handling.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="DateTimeToFileDate"/></td><td>Convert DateTime type to file date</td></tr>
<tr><td><link id="DateTimeToStr"/></td><td>Construct string representation of DateTime</td></tr>
<tr><td><link id="DateTimeToString"/></td><td>Construct string representation of DateTime</td></tr>
<tr><td><link id="DateTimeToSystemTime"/></td><td>Convert DateTime to system time</td></tr>
<tr><td><link id="DateTimeToTimeStamp"/></td><td>Convert DateTime to timestamp</td></tr>
<tr><td><link id="DateToStr"/></td><td>Construct string representation of date</td></tr>
<tr><td><link id="Date"/></td><td>Get current date</td></tr>
<tr><td><link id="DayOfWeek"/></td><td>Get day of week</td></tr>
<tr><td><link id="DecodeDate"/></td><td>Decode DateTime to year month and day</td></tr>
<tr><td><link id="DecodeTime"/></td><td>Decode DateTime to hours, minutes and seconds</td></tr>
<tr><td><link id="EncodeDate"/></td><td>Encode year, day and month to DateTime</td></tr>
<tr><td><link id="EncodeTime"/></td><td>Encode hours, minutes and seconds to DateTime</td></tr>
<tr><td><link id="FormatDateTime"/></td><td>Return string representation of DateTime</td></tr>
<tr><td><link id="IncMonth"/></td><td>Add 1 to month</td></tr>
<tr><td><link id="IsLeapYear"/></td><td>Determine if year is leap year</td></tr>
<tr><td><link id="MSecsToTimeStamp"/></td><td>Convert nr of milliseconds to timestamp</td></tr>
<tr><td><link id="Now"/></td><td>Get current date and time</td></tr>
<tr><td><link id="StrToDateTime"/></td><td>Convert string to DateTime</td></tr>
<tr><td><link id="StrToDate"/></td><td>Convert string to date</td></tr>
<tr><td><link id="StrToTime"/></td><td>Convert string to time</td></tr>
<tr><td><link id="SystemTimeToDateTime"/></td><td>Convert system time to datetime</td></tr>
<tr><td><link id="TimeStampToDateTime"/></td><td>Convert time stamp to DateTime</td></tr>
<tr><td><link id="TimeStampToMSecs"/></td><td>Convert Timestamp to number of millicseconds</td></tr>
<tr><td><link id="TimeToStr"/></td><td>return string representation of Time</td></tr>
<tr><td><link id="Time"/></td><td>Get current tyme</td></tr>
</table>
</descr>
</topic>
<topic name="ConversionRoutines">
<short>Miscellaneous conversion routines</short>
<descr>
<p>
Functions for various conversions.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="BCDToInt"/></td><td>Convert BCD number to integer</td></tr>
<tr><td><link id="CompareMem"/></td><td>Compare two memory regions</td></tr>
<tr><td><link id="FloatToStrF"/></td><td>Convert float to formatted string</td></tr>
<tr><td><link id="FloatToStr"/></td><td>Convert float to string</td></tr>
<tr><td><link id="FloatToText"/></td><td>Convert float to string</td></tr>
<tr><td><link id="FormatFloat"/></td><td>Format a floating point value</td></tr>
<tr><td><link id="GetDirs"/></td><td>Split string in list of directories</td></tr>
<tr><td><link id="IntToHex"/></td><td>return hexadecimal representation of integer</td></tr>
<tr><td><link id="IntToStr"/></td><td>return decumal representation of integer</td></tr>
<tr><td><link id="StrToIntDef"/></td><td>Convert string to integer with default value</td></tr>
<tr><td><link id="StrToInt"/></td><td>Convert string to integer</td></tr>
<tr><td><link id="StrToFloat"/></td><td>Convert string to float</td></tr>
<tr><td><link id="TextToFloat"/></td><td>Convert null-terminated string to float</td></tr>
</table>
</descr>
</topic>
<element name="TDateTime">
<short>Type describing date/time</short>
<descr>
<p>
Many functions return or require a <var>TDateTime</var> type, which contains
a date and time in encoded form. The date and time are converted to a double
as follows:
</p>
<ul>
<li> The date part is stored in the integer part of the double as the
number of days passed since January 1, 1900.
</li>
<li> The time part is stored in the fractional part of the double, as
the number of milliseconds passed since midnight (00:00), divided by the
total number of milliseconds in a day.
</li>
</ul>
</descr>
</element>
<element name="Date">
<short>Return the current date.</short>
<descr>
<var>Date</var> returns the current date in <var>TDateTime</var> format.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Time"/>
<link id="Now"/>
</seealso>
<example file="sysutex/ex1"/>
</element>
<element name="DateTimeToFileDate">
<short>Convert a <var>TDateTime</var> value to a file age (integer)</short>
<descr>
<var>DateTimeToFileDate</var> function converts a date/time indication in
<var>TDateTime</var> format to a filedate function, such as returned for
instance by the <link id="FileAge"/> function.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Time"/>
<link id="Date"/>
<link id="FileDateToDateTime"/>,
<link id="DateTimeToSystemTime"/>
<link id="DateTimeToTimeStamp"/>
</seealso>
<example file="sysutex/ex2"/>
</element>
<element name="DateTimeToStr">
<short>Converts a <var>TDateTime</var> value to a string using a predefined format.</short>
<descr>
<var>DateTimeToStr</var> returns a string representation of
<var>DateTime</var> using the formatting specified in
<var>ShortDateTimeFormat</var>. It corresponds to a call to
<var>FormatDateTime('c',DateTime)</var> (see <link id="formatchars"/>).
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FormatDateTime"/>
</seealso>
<example file="sysutex/ex3"/>
</element>
<element name="DateTimeToString">
<short>Converts a <var>TDateTime</var> value to a string with a given format.</short>
<descr>
<var>DateTimeToString</var> returns in <var>Result</var> a string representation of
<var>DateTime</var> using the formatting specified in <var>FormatStr</var>.
for a list of characters that can be used in the <var>FormatStr</var> formatting
string, see <link id="formatchars"/>.
</descr>
<errors>
In case a wrong formatting character is found, an <var>EConvertError</var> is
raised.
</errors>
<seealso>
<link id="FormatDateTime"/>
<link id="formatchars"/>.
</seealso>
<example file="sysutex/ex4"/>
</element>
<element name="DateTimeToSystemTime">
<short>Converts a <var>TDateTime</var> value to a systemtime structure.</short>
<descr>
<var>DateTimeToSystemTime</var> converts a date/time pair in <var>DateTime</var>, with
<var>TDateTime</var> format to a system time <var>SystemTime</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="DateTimeToFileDate"/>
<link id="SystemTimeToDateTime"/>,
<link id="DateTimeToTimeStamp"/>
</seealso>
<example file="sysutex/ex5"/>
</element>
<element name="DateTimeToTimeStamp">
<short>Converts a <var>TDateTime</var> value to a TimeStamp structure.</short>
<descr>
<var>DateTimeToSystemTime</var> converts a date/time pair in <var>DateTime</var>, with
<var>TDateTime</var> format to a <var>TTimeStamp</var> format.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="DateTimeToFileDate"/>
<link id="SystemTimeToDateTime"/>,
<link id="DateTimeToSystemTime"/>
</seealso>
<example file="sysutex/ex6"/>
</element>
<element name="DateToStr">
<short>Converts a <var>TDateTime</var> value to a date string with a predefined format.</short>
<descr>
<var>DateToStr</var> converts <var>Date</var> to a string representation. It uses
<var>ShortDateFormat</var> as it's formatting string. It is hence completely
equivalent to a <var>FormatDateTime('ddddd', Date)</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="TimeToStr"/>
<link id="DateTimeToStr"/>
<link id="FormatDateTime"/>,
<link id="StrToDate"/>
</seealso>
<example file="sysutex/ex7"/>
</element>
<element name="DayOfWeek">
<short>Returns the day of the week.</short>
<descr>
<var>DayOfWeek</var> returns the day of the week from <var>DateTime</var>.
<var>Sunday</var> is counted as day 1, <var>Saturday</var> is counted as
day 7. The result of <var>DayOfWeek</var> can serve as an index to
the <var>LongDayNames</var> constant array, to retrieve the name of
the day.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Date"/>
<link id="DateToStr"/>
</seealso>
<example file="sysutex/ex8"/>
</element>
<element name="DecodeDate">
<short>Decode a <var>TDateTime</var> to a year,month,day triplet</short>
<descr>
<var>DecodeDate</var> decodes the Year, Month and Day stored in <var>Date</var>,
and returns them in the <var>Year</var>, <var>Month</var> and <var>Day</var> variables.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="EncodeDate"/>
<link id="DecodeTime"/>.
</seealso>
<example file="sysutex/ex9"/>
</element>
<element name="DecodeTime">
<short>Decode a <var>TDateTime</var> to a hour,minute,second,millisec quartet</short>
<descr>
<var>DecodeDate</var> decodes the hours, minutes, second and milliseconds stored
in <var>Time</var>, and returns them in the <var>Hour</var>, <var>Minute</var> and
<var>Second</var> and <var>MilliSecond</var> variables.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="EncodeTime"/>
<link id="DecodeDate"/>.
</seealso>
<example file="sysutex/ex10"/>
</element>
<element name="EncodeDate">
<short>Encode a Year,Month,Day to a <var>TDateTime</var> value.</short>
<descr>
<p>
<var>EncodeDate</var> encodes the <var>Year</var>, <var>Month</var> and <var>Day</var> variables to
a date in <var>TDateTime</var> format. It does the opposite of the
<link id="DecodeDate"/> procedure.
</p>
<p>
The parameters must lie withing valid ranges (boundaries included):
</p>
<dl>
<dt>Year</dt><dd> must be between 1 and 9999.</dd>
<dt>Month</dt><dd> must be within the range 1-12.</dd>
<dt>Day</dt><dd> msut be between 1 and 31.</dd>
</dl>
</descr>
<errors>
In case one of the parameters is out of it's valid range, 0 is returned.
</errors>
<seealso>
<link id="EncodeTime"/>
<link id="DecodeDate"/>
</seealso>
<example file="sysutex/ex11"/>
</element>
<element name="EncodeTime">
<short>Encode a Hour,Min,Sec,millisec to a <var>TDateTime</var> value.</short>
<descr>
<p>
<var>EncodeTime</var> encodes the <var>Hour</var>, <var>Minute</var>, <var>Second</var>,
<var>MilliSecond</var> variables to a <var>TDateTime</var> format result.
It does the opposite of the <link id="DecodeTime"/> procedure.
</p>
<p>
The parameters must have a valid range (boundaries included):
</p>
<dl>
<dt>Hour</dt><dd> must be between 0 and 23.</dd>
<dt>Minute,second</dt><dd> must both be between 0 and 59.</dd>
<dt>Millisecond</dt><dd> must be between 0 and 999.</dd>
</dl>
</descr>
<errors>
In case one of the parameters is outside of it's valid range, 0 is returned.
</errors>
<seealso>
<link id="EncodeDate"/>
<link id="DecodeTime"/>
</seealso>
<example file="sysutex/ex12"/>
</element>
<element name="FileDateToDateTime">
<short>Convert a <var>FileDate</var> value to a <var>TDateTime</var>
value.</short>
<descr>
<var>FileDateToDateTime</var> converts the date/time encoded in <var>filedate</var>
to a <var>TDateTime</var> encoded form. It can be used to convert date/time values
returned by the <link id="FileAge"/> or <link id="FindFirst"/>/<link id="FindNext"/>
functions to <var>TDateTime</var> form.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="DateTimeToFileDate"/>
</seealso>
<example file="sysutex/ex13"/>
</element>
<element name="FormatDateTime">
<short>Return a string representation of a <var>TDateTime</var> value with a given
format.</short>
<descr>
<var>FormatDateTime</var> formats the date and time encoded in <var>DateTime</var>
according to the formatting given in <var>FormatStr</var>. The complete list
of formatting characters can be found in <link id="formatchars"/>.
</descr>
<errors>
On error (such as an invalid character in the formatting string), and
<var>EConvertError</var> exception is raised.
</errors>
<seealso>
<link id="DateTimeToStr"/>
<link id="DateToStr"/>
<link id="TimeToStr"/>
<link id="StrToDateTime"/>
</seealso>
<example file="sysutex/ex14"/>
</element>
<element name="IncMonth">
<short>Increases the month in a <var>TDateTime</var> value with a given amount.</short>
<descr>
<var>IncMonth</var> increases the month number in <var>DateTime</var> with
<var>NumberOfMonths</var>. It wraps the result as to get a month between 1 and
12, and updates the year accordingly. <var>NumberOfMonths</var> can be negative,
and can be larger than 12 (in absolute value).
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Date"/>
<link id="Time"/>
<link id="Now"/>
</seealso>
<example file="sysutex/ex15"/>
</element>
<element name="IsLeapYear">
<short>Determine whether a year is a leap year.</short>
<descr>
<var>IsLeapYear</var> returns <var>True</var> if <var>Year</var> is a leap year,
<var>False</var> otherwise.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="IncMonth"/>
<link id="Date"/>
</seealso>
<example file="sysutex/ex16"/>
</element>
<element name="MSecsToTimeStamp">
<short>Convert a number of milliseconds to a <var>TDateTime</var> value.</short>
<descr>
<p>
<var>MSecsTiTimeStamp</var> converts the given number of milliseconds to
a <var>TTimeStamp</var> date/time notation.
</p>
<p>
Use <var>TTimeStamp</var> variables if you need to keep very precise track of
time.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="TimeStampToMSecs"/>
<link id="DateTimeToTimeStamp"/>
</seealso>
<example file="sysutex/ex17"/>
</element>
<element name="Now">
<short>Returns the current date and time.</short>
<descr>
<var>Now</var> returns the current date and time. It is equivalent to
<var>Date+Time</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Date"/>
<link id="Time"/>
</seealso>
<example file="sysutex/ex18"/>
</element>
<element name="StrToDate">
<short>Convert a date string to a <var>TDateTime</var> value.</short>
<descr>
<p>
<var>StrToDate</var> converts the string <var>S</var> to a <var>TDateTime</var> date
value. The Date must consist of 1 to three digits, separated by the
<var>DateSeparator</var> character. If two numbers are given, they
are supposed to form the day and month of the current year. If only
one number is given, it is supposed to represent the day of the
current month. (This is <em>not</em> supported in Delphi)
</p>
<p>
The order of the digits (y/m/d, m/d/y, d/m/y) is determined from the
<var>ShortDateFormat</var> variable.
</p>
</descr>
<errors>
On error (e.g. an invalid date or invalid character),
an <var>EConvertError</var> exception is raised.
</errors>
<seealso>
<link id="StrToTime"/>
<link id="DateToStr"/>
<link id="TimeToStr"/>
</seealso>
<example file="sysutex/ex19"/>
</element>
<element name="StrToDateTime">
<short>Convert a date/time string to a <var>TDateTime</var> value.</short>
<descr>
<p>
<var>StrToDateTime</var> converts the string <var>S</var> to a <var>TDateTime</var> date
and time value. The Date must consist of 1 to three digits, separated by the
<var>DateSeparator</var> character. If two numbers are given, they
are supposed to form the day and month of the current year. If only
one number is given, it is supposed to represent the day of the
current month. (This is <em>not</em> supported in Delphi)
</p>
<p>
The order of the digits (y/m/d, m/d/y, d/m/y) is determined from the
<var>ShortDateFormat</var> variable.
</p>
</descr>
<errors>
On error (e.g. an invalid date or invalid character),
an <var>EConvertError</var> exception is raised.
</errors>
<seealso>
<link id="StrToDate"/>
<link id="StrToTime"/>
<link id="DateTimeToStr"/>
</seealso>
<example file="sysutex/ex20"/>
</element>
<element name="StrToTime">
<short>Convert a time string to a <var>TDateTime</var> value.</short>
<descr>
<var>StrToTime</var> converts the string <var>S</var> to a <var>TDateTime</var> time
value. The time must consist of 1 to 4 digits, separated by the
<var>TimeSeparator</var> character. If two numbers are given, they
are supposed to form the hour and minutes.
</descr>
<errors>
On error (e.g. an invalid date or invalid character),
an <var>EConvertError</var> exception is raised.
</errors>
<seealso>
<link id="StrToDate"/>
<link id="StrToDateTime"/>
<link id="TimeToStr"/>
</seealso>
<example file="sysutex/ex21"/>
</element>
<element name="SystemTimeToDateTime">
<short>Convert a system time to a <var>TDateTime</var> value.</short>
<descr>
<var>SystemTimeToDateTime</var> converts a <var>TSystemTime</var> record to a
<var>TDateTime</var> style date/time indication.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="DateTimeToSystemTime"/>
</seealso>
<example file="sysutex/ex22"/>
</element>
<element name="Time">
<short>Returns the current time.</short>
<descr>
<var>Time</var> returns the current time in <var>TDateTime</var> format. The date
part of the <var>TDateTimeValue</var> is set to zero.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Now"/>
<link id="Date"/>
</seealso>
<example file="sysutex/ex23"/>
</element>
<element name="TimeStampToDateTime">
<short>Convert a TimeStamp value to a <var>TDateTime</var> value.</short>
<descr>
<var>TimeStampToDateTime</var> converts <var>TimeStamp</var> to a <var>TDateTime</var>
format variable. It is the inverse operation of <link id="DateTimeToTimeStamp"/>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="DateTimeToTimeStamp"/>
<link id="TimeStampToMSecs"/>
</seealso>
<example file="sysutex/ex24"/>
</element>
<element name="TimeStampToMSecs">
<short>Converts a timestamp to a number of milliseconds.</short>
<descr>
<p>
<var>TimeStampToMSecs</var> converts <var>TimeStamp</var> to the number of seconds
since <var>1/1/0001</var>.
</p>
<p>
Use <var>TTimeStamp</var> variables if you need to keep very precise track of
time.
</p>
<p>
For an example, see <link id="MSecsToTimeStamp"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="MSecsToTimeStamp"/>
<link id="TimeStampToDateTime"/>
</seealso>
</element>
<element name="TimeToStr">
<short>Convert a <var>TDateTime</var> time to a string using a predefined format.</short>
<descr>
<var>TimeToStr</var> converts the time in <var>Time</var> to a string. It uses
the <var>ShortTimeFormat</var> variable to see what formatting needs to be
applied. It is therefor entirely equivalent to a
<var>FormatDateTime('t',Time)</var> call.
</descr>
<errors>
None.
</errors>
<seealso>
</seealso>
<example file="sysutex/ex25"/>
</element>
<element name="AddDisk">
<short>Add a disk to the list of known disks (Unix only)</short>
<descr>
<p>
On Linux both the <link id="DiskFree"/> and <link id="DiskSize"/> functions need a
file on the specified drive, since is required for the statfs system call.
</p>
<p>
These filenames are set in drivestr[0..26], and the first 4 have been
preset to :
</p>
<dl>
<dt>Disk 0</dt><dd><var>'.'</var> default drive - hence current directory is used.</dd>
<dt>Disk 1</dt><dd><var>'/fd0/.'</var> floppy drive 1.</dd>
<dt>Disk 2</dt><dd><var>'/fd1/.'</var> floppy drive 2.</dd>
<dt>Disk 3</dt><dd><var>'/'</var> <file>C:</file> equivalent of DOS is the root partition.</dd>
</dl>
<p>
Drives 4..26 can be set by your own applications with the <var>AddDisk</var> call.
</p>
<p>
The <var>AddDisk</var> call adds <var>Path</var> to the names of drive files, and
returns the number of the disk that corresponds to this drive. If you
add more than 21 drives, the count is wrapped to 4.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="DiskFree"/>
<link id="DiskSize"/>
</seealso>
</element>
<element name="CreateDir">
<short>Create a new directory</short>
<descr>
<p>
<var>CreateDir</var> creates a new directory with name <var>NewDir</var>.
If the directory doesn't contain an absolute path, then the directory is
created below the current working directory.
</p>
<p>
The function returns <var>True</var> if the directory was successfully
created, <var>False</var> otherwise.
</p>
</descr>
<errors>
In case of an error, the function returns <var>False</var>.
</errors>
<seealso>
<link id="RemoveDir"/>
</seealso>
<example file="sysutex/ex26"/>
</element>
<element name="DiskFree">
<short>Return the amount of free diskspace</short>
<descr>
<p>
<var>DiskFree</var> returns the free space (in bytes) on disk <var>Drive</var>.
Drive is the number of the disk drive:
</p>
<dl>
<dt>0</dt><dd> for the current drive.</dd>
<dt>1</dt><dd> for the first floppy drive.</dd>
<dt>2</dt><dd> for the second floppy drive.</dd>
<dt>3</dt><dd> for the first hard-disk partition.</dd>
<dt>4-26</dt><dd> for all other drives and partitions.</dd>
</dl>
<remark>
Under linux, and Unix in general, the concept of disk is
different than the dos one, since the filesystem is seen as one big
directory tree. For this reason, the <var>DiskFree</var> and <link id="DiskSize"/>
functions must be mimicked using filenames that reside on the partitions.
For more information, see <link id="AddDisk"/>.
</remark>
</descr>
<errors>
On error, <var>-1</var> is returned.
</errors>
<seealso>
<link id="DiskSize">DiskSize</link>
<link id="AddDisk"/>
</seealso>
<example file="sysutex/ex27"/>
</element>
<element name="DiskSize">
<short>Return the total amount of diskspace.</short>
<descr>
<p>
<var>DiskSize</var> returns the size (in bytes) of disk <var>Drive</var>.
Drive is the number of the disk drive:
</p>
<dl>
<dt>0</dt><dd> for the current drive.</dd>
<dt>1</dt><dd> for the first floppy drive.</dd>
<dt>2</dt><dd> for the second floppy drive.</dd>
<dt>3</dt><dd> for the first hard-disk parttion.</dd>
<dt>4-26</dt><dd> for all other drives and partitions.</dd>
</dl>
<remark>
Under linux, and Unix in general, the concept of disk is
different than the dos one, since the filesystem is seen as one big
directory tree. For this reason, the <link id="DiskFree"/> and <var>DiskSize</var>
functions must be mimicked using filenames that reside on the partitions.
For more information, see <link id="AddDisk"/>
</remark>
<p>
For an example, see <link id="DiskFree">DiskFree</link>.
</p>
</descr>
<errors>
On error, <var>-1</var> is returned.
</errors>
<seealso>
<link id="DiskFree"/>
<link id="AddDisk"/>
</seealso>
</element>
<element name="GetCurrentDir">
<short>Return the current working directory of the application.</short>
<descr>
<var>GetCurrentDir</var> returns the current working directory.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetCurrentDir"/>
<link id="DiskFree"/>
<link id="DiskSize"/>
</seealso>
<example file="sysutex/ex28"/>
</element>
<element name="RemoveDir">
<short>Remove a directory from the filesystem.</short>
<descr>
<p>
<var>RemoveDir</var> removes directory <var>Dir</var> from the disk.
If the directory is not absolue, it is appended to the current working
directory.
</p>
<p>
For an example, see <link id="CreateDir"/>.
</p>
</descr>
<errors>
In case of error (e.g. the directory isn't empty) the function returns
<var>False</var>. If successful, <var>True</var> is returned.
</errors>
<seealso>
</seealso>
</element>
<element name="SetCurrentDir">
<short>Set the current directory of the application.</short>
<descr>
<var>SetCurrentDir</var> sets the current working directory of your program
to <var>NewDir</var>. It returns <var>True</var> if the function was successfull,
<var>False</var> otherwise.
</descr>
<errors>
In case of error, <var>False</var> is returned.
</errors>
<seealso>
<link id="GetCurrentDir"/>
</seealso>
</element>
<example file="sysutex/ex29"/>
<element name="ChangeFileExt">
<short>Change the extension of a filename.</short>
<descr>
<p>
<var>ChangeFileExt</var> changes the file extension in <var>FileName</var> to
<var>Extension</var>.
The extension <var>Extension</var> includes the starting <var>.</var> (dot).
The previous extension of <var>FileName</var> are all characters after the
last <var>.</var>, the <var>.</var> character included.
</p>
<p>
If <var>FileName</var> doesn't have an extension, <var>Extension</var> is just
appended.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExpandFileName"/>
</seealso>
</element>
<element name="DeleteFile">
<short>Delete a file from the filesystem.</short>
<descr>
<var>DeleteFile</var> deletes file <var>FileName</var> from disk. The function
returns <var>True</var> if the file was successfully removed, <var>False</var>
otherwise.
</descr>
<errors>
On error, <var>False</var> is returned.
</errors>
<seealso>
<link id="FileCreate"/>
<link id="FileExists"/>
</seealso>
<example file="sysutex/ex31"/>
</element>
<element name="DoDirSeparators">
<short>Convert known directory separators to the current directory separator.</short>
<descr>
This function replaces all known directory separators
to the directory separator character for the current system.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
</seealso>
<example file="sysutex/ex32"/>
</element>
<element name="ExpandFileName">
<short>Expand a relative filename to an absolute filename.</short>
<descr>
<var>ExpandFileName</var> expands the filename to an absolute filename.
It changes all directory separator characters to the one appropriate for the
system first.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
<example file="sysutex/ex33"/>
</element>
<element name="ExpandUNCFileName">
<short>Expand a relative filename to an absolute UNC filename.</short>
<descr>
<var>ExpandUNCFileName</var> runs <link id="ExpandFileName"/> on <var>FileName</var>
and then attempts to replace the driveletter by the name of a shared disk.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
</element>
<element name="ExtractFileDir">
<short>Extract the directory part of a filename.</short>
<descr>
<var>ExtractFileDir</var> returns only the directory part of <var>FileName</var>,
not including a driveletter. The directory name has NO ending directory
separator, in difference with <link id="ExtractFilePath"/>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
<example file="sysutex/ex34"/>
</element>
<element name="ExtractFileDrive">
<short>Extract the drive part from a filename.</short>
<descr>
<p>
<var>Extracts</var> the drive letter from a filename. Note that some
operating systems do not support drive letters.
</p>
<p>
For an example, see <link id="ExtractFileDir"/>.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
</element>
<element name="ExtractFileExt">
<short>Return the extension from a filename.</short>
<descr>
<p>
<var>ExtractFileExt</var> returns the extension (including the
<var>.</var>(dot) character) of <var>FileName</var>.
</p>
<p>
For an example, see <link id="ExtractFileDir"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
</element>
<element name="ExtractFileName">
<short>Extract the filename part from a full path filename.</short>
<descr>
<p>
<var>ExtractFileName</var> returns the filename part from <var>FileName</var>.
The filename consists of all characters after the last directory separator
character ('/' or '\') or drive letter.
</p>
<p>
The full filename can always be reconstucted by concatenating the result
of <link id="ExtractFilePath"/> and <var>ExtractFileName</var>.
</p>
<p>
For an example, see <link id="ExtractFileDir"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
</element>
<element name="ExtractFilePath">
<short>Extract the path from a filename.</short>
<descr>
<p>
<var>ExtractFilePath</var> returns the path part (including driveletter) from
<var>FileName</var>. The path consists of all characters before the last
directory separator character ('/' or '\'), including the directory
separator itself.
In case there is only a drive letter, that will be returned.
</p>
<p>
The full filename can always be reconstucted by concatenating the result
of <var>ExtractFilePath</var> and <link id="ExtractFileName"/>.
</p>
<p>
For an example, see <link id="ExtractFileDir"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>
<link id="ExtractRelativePath"/>
</seealso>
</element>
<element name="ExtractRelativePath">
<short>Extract a relative path from a filename, given a base directory.</short>
<descr>
<var>ExtractRelativePath</var> constructs a relative path to go from
<var>BaseName</var> to <var>DestName</var>. If <var>DestName</var> is on another drive
(Not on Linux) then the whole <var>Destname</var> is returned.
<em> Note:</em> This function does not exist in the Delphi unit.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>,
<link id="ExtractFileDrive"/>
<link id="ExtractFileExt"/>,
</seealso>
<example file="sysutex/ex35"/>
</element>
<element name="FileAge">
<short>Return the timestamp of a file.</short>
<descr>
<var>FileAge</var> returns the last modification time of file <var>FileName</var>.
The FileDate format can be transformed to <var>TDateTime</var> format with the
<link id="FileDateToDateTime"/> function.
</descr>
<errors>
In case of errors, <var>-1</var> is returned.
</errors>
<seealso>
<link id="FileDateToDateTime"/>
<link id="FileExists"/>
<link id="FileGetAttr"/>
</seealso>
<example file="sysutex/ex36"/>
</element>
<element name="FileClose">
<short>Close a file handle.</short>
<descr>
<p>
<var>FileClose</var> closes the file handle <var>Handle</var>. After this call,
attempting to read or write from the handle will result in an error.
</p>
<p>
For an example, see <link id="FileCreate"/>
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FileCreate"/>
<link id="FileWrite"/>
<link id="FileOpen"/>
<link id="FileRead"/>,
<link id="FileTruncate"/>
<link id="FileSeek"/>
</seealso>
</element>
<element name="FileCreate">
<short>Create a new file and return a handle to it.</short>
<descr>
<var>FileCreate</var> creates a new file with name <var>FileName</var> on the disk and
returns a file handle which can be used to read or write from the file with
the <link id="FileRead"/> and <link id="FileWrite"/> functions.
If a file with name <var>FileName</var> already existed on the disk, it is
overwritten.
</descr>
<errors>
If an error occurs (e.g. disk full or non-existent path), the function
returns <var>-1</var>.
</errors>
<seealso>
<link id="FileClose"/>
<link id="FileWrite"/>
<link id="FileOpen"/>
<link id="FileRead"/>,
<link id="FileTruncate"/>
<link id="FileSeek"/>
</seealso>
<example file="sysutex/ex37"/>
</element>
<element name="FileExists">
<short>Check whether a file exists in the filesystem.</short>
<descr>
<var>FileExists</var> returns <var>True</var> if a file with name <var>FileName</var>
exists on the disk, <var>False</var> otherwise.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FileAge"/>
<link id="FileGetAttr"/>
<link id="FileSetAttr"/>
</seealso>
<example file="sysutex/ex38"/>
</element>
<element name="FileGetAttr">
<short>Return attributes of a file.</short>
<descr>
<p>
<var>FileGetAttr</var> returns the attribute settings of file
<var>FileName</var>. The attribute is a <var>OR</var>-ed combination
of the following constants:
</p>
<dl>
<dt>faReadOnly</dt><dd> The file is read-only.</dd>
<dt>faHidden</dt>
<dd>
The file is hidden. (On unix, this means that the filename starts with a dot)
</dd>
<dt>faSysFile</dt>
<dd>
The file is a system file (On unix, this means that the file is a character, block or FIFO file).
</dd>
<dt>faVolumeId</dt>
<dd> Volume Label. Not possible under unix.</dd>
<dt>faDirectory</dt><dd> File is a directory.</dd>
<dt>faArchive</dt><dd> file is an archive. Not possible on Unix</dd>
</dl>
</descr>
<errors>
In case of error, -1 is returned.
</errors>
<seealso>
<link id="FileSetAttr"/>
<link id="FileAge"/>
<link id="FileGetDate"/>.
</seealso>
<example file="sysutex/ex40"/>
</element>
<element name="FileGetDate">
<short>Return the file time of an opened file.</short>
<descr>
<var>FileGetdate</var> returns the filetime of the opened file with filehandle
<var>Handle</var>. It is the same as <link id="FileAge"/>, with this difference that
<var>FileAge</var> only needs the file name, while <var>FilegetDate</var> needs an
open file handle.
</descr>
<errors>
On error, -1 is returned.
</errors>
<seealso>
<link id="FileAge"/>
</seealso>
<example file="sysutex/ex39"/>
</element>
<element name="FileOpen">
<short>Open an existing file and return a filehandle</short>
<descr>
<p>
<var>FileOpen</var> opens a file with name <var>FileName</var> with mode <var>Mode</var>.
<var>Mode</var> can be one of the following constants:
</p>
<dl>
<dt>fmOpenRead</dt><dd> The file is opened for reading.</dd>
<dt>fmOpenWrite</dt><dd> The file is opened for writing.</dd>
<dt>fmOpenReadWrite</dt><dd> The file is opened for reading and
writing.</dd>
</dl>
<p>
If the file has been successfully opened, it can be read from or written to
(depending on the <var>Mode</var> parameter) with the <link id="FileRead"/> and
<var>FileWrite</var> functions.
</p>
<remark>
Remark that you cannot open a file if it doesn't exist yet, i.e. it will not
be created for you. If you want tp create a new file, or overwrite an old
one, use the <link id="FileCreate"/> function.
</remark>
<p>
For an example, see <link id="FileOpen"/>
</p>
</descr>
<errors>
On Error, -1 is returned.
</errors>
<seealso>
<link id="FileClose"/>
<link id="FileWrite"/>
<link id="FileCreate"/>
<link id="FileRead"/>,
<link id="FileTruncate"/>
<link id="FileSeek"/>
</seealso>
</element>
<element name="FileRead">
<short>Read data from a filehandle in a buffer.</short>
<descr>
<p>
<var>FileRead</var> reads <var>Count</var> bytes from file-handle <var>Handle</var> and
stores them into <var>Buffer</var>. Buffer must be at least <var>Count</var> bytes
long. No checking on this is performed, so be careful not to overwrite any
memory. <var>Handle</var> must be the result of a <link id="FileOpen"/> call.
</p>
<p>
For an example, see <link id="FileCreate"/>
</p>
</descr>
<errors>
On error, -1 is returned.
</errors>
<seealso>
<link id="FileClose"/>
<link id="FileWrite"/>
<link id="FileCreate"/>
<link id="FileOpen"/>,
<link id="FileTruncate"/>
<link id="FileSeek"/>
</seealso>
</element>
<element name="FileSearch">
<short>Search for a file in a path.</short>
<descr>
<var>FileSearch</var> looks for the file <var>Name</var> in <var>DirList</var>, where
dirlist is a list of directories, separated by semicolons or colons.
It returns the full filename of the first match found.
</descr>
<errors>
On error, an empty string is returned.
</errors>
<seealso>
<link id="ExpandFileName"/>
<link id="FindFirst"/>
</seealso>
<example file="sysutex/ex41"/>
</element>
<element name="FileSeek">
<short>Set the current file position on a file handle.</short>
<descr>
<p>
<var>FileSeek</var> sets the file pointer on position <var>Offset</var>, starting from
<var>Origin</var>. Origin can be one of the following values:
</p>
<dl>
<dt>fsFromBeginning</dt>
<dd> <var>Offset</var> is relative to the first byte of the file. This
position is zero-based. i.e. the first byte is at offset 0.
</dd>
<dt>fsFromCurrent</dt><dd><var>Offset</var> is relative to the current position.</dd>
<dt>fsFromEnd</dt>
<dd><var>Offset</var> is relative to the end of the file.
This means that <var>Offset</var> can only be zero or negative in this case.
</dd>
</dl>
<p>
If successfull, the function returns the new file position, relative to the
beginning of the file.
</p>
<remark>
The abovementioned constants do not exist in Delphi.
</remark>
</descr>
<errors>
On error, -1 is returned.
</errors>
<seealso>
<link id="FileClose"/>
<link id="FileWrite"/>
<link id="FileCreate"/>
<link id="FileOpen"/>
<link id="FileRead"/>
<link id="FileTruncate"/>
</seealso>
<example file="sysutex/ex42"/>
</element>
<element name="FileSetAttr">
<short>Set the attributes of a file.</short>
<descr>
<p>
<var>FileSetAttr</var> sets the attributes of <var>FileName</var> to <var>Attr</var>.
If the function was successful, 0 is returned, -1 otherwise.
<var>Attr</var> can be set to an OR-ed combination of the pre-defined
<var>faXXX</var> constants.
</p>
<p>
This function is not implemented on Unixes.
</p>
</descr>
<errors>
On error, -1 is returned (always on Unixes).
</errors>
<seealso>
<link id="FileGetAttr"/>
<link id="FileGetDate"/>
<link id="FileSetDate"/>.
</seealso>
</element>
<element name="FileSetDate">
<short>Set the date of a file.</short>
<descr>
<p>
<var>FileSetDate</var> sets the file date of the file with handle <var>Handle</var>
to <var>Age</var>, where <var>Age</var> is a DOS date-and-time stamp value.
</p>
<p>
The function returns zero if successfull. (not on unixes, where it is not
implemented)
</p>
</descr>
<errors>
On Unix, -1 is always returned, since this is impossible to implement.
On Windows and DOS, a negative error code is returned.
</errors>
<seealso>
</seealso>
</element>
<element name="FileTruncate">
<short>Truncate an open file to a given size.</short>
<descr>
<p>
<var>FileTruncate</var> truncates the file with handle <var>Handle</var> to
<var>Size</var> bytes. The file must have been opened for writing prior
to this call. The function returns <var>True</var> is successful, <var>False</var>
otherwise.
</p>
<p>
For an example, see <link id="FileCreate"/>.
</p>
</descr>
<errors>
On error, the function returns <var>False</var>.
</errors>
<seealso>
<link id="FileClose"/>
<link id="FileWrite"/>
<link id="FileCreate"/>
<link id="FileOpen"/>
<link id="FileRead"/>
<link id="FileSeek"/>
</seealso>
</element>
<element name="FileWrite">
<short>Write data from a buffer to a given filehandle.</short>
<descr>
<p>
<var>FileWrite</var> writes <var>Count</var> bytes from <var>Buffer</var> to the file with
handle <var>Handle</var>. Prior to this call, the file must have been opened
for writing. <var>Buffer</var> must be at least <var>Count</var> bytes large, or
a memory access error may occur.
</p>
<p>
The function returns the number of bytes written, or -1 in case of an
error.
</p>
<p>
For an example, see <link id="FileCreate"/>.
</p>
</descr>
<errors>
In case of error, -1 is returned.
</errors>
<seealso>
<link id="FileClose"/>
<link id="FileCreate"/>
<link id="FileOpen"/>
<link id="FileRead"/>
<link id="FileTruncate"/>
<link id="FileSeek"/>
</seealso>
</element>
<element name="FindClose">
<short>Close a find handle</short>
<descr>
<p>
<var>FindClose</var> ends a series of <link id="FindFirst"/>/<link id="FindNext"/> calls,
and frees any memory used by these calls. It is <em> absolutely</em> necessary
to do this call, or huge memory losses may occur.
</p>
<p>
For an example, see <link id="FindFirst"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FindFirst"/>
<link id="FindNext"/>
</seealso>
</element>
<element name="FindFirst">
<short>Start a file search and return a findhandle</short>
<descr>
<p>
<var>FindFirst</var> looks for files that match the name (possibly with
wildcards) in <var>Path</var> and attributes <var>Attr</var>. It then fills up the
<var>Rslt</var> record with data gathered about the file. It returns 0 if a file
matching the specified criteria is found, a nonzero value (-1 on linux)
otherwise.
</p>
<p>
The <var>Rslt</var> record can be fed to subsequent calls to <var>FindNext</var>, in
order to find other files matching the specifications.
</p>
<remark>
A <var>FindFirst</var> call must <em> always</em> be followed by a
<link id="FindClose">FindClose</link> call with the same <var>Rslt</var> record. Failure to do so will
result in memory loss.
</remark>
</descr>
<errors>
On error the function returns -1 on linux, a nonzero error code on Windows.
</errors>
<seealso>
<link id="FindClose"/>{FindCloseSys}, <link id="FindNext"/>.
</seealso>
<example file="sysutex/ex43"/>
</element>
<element name="FindNext">
<short>Find the next entry in a findhandle.</short>
<descr>
<p>
<var>FindNext</var> finds a next occurrence of a search sequence initiated by
<var>FindFirst</var>. If another record matching the criteria in Rslt is found, 0
is returned, a nonzero constant is returned otherwise.
</p>
<remark>
The last <var>FindNext</var> call must <em> always</em> be followed by a
<var>FindClose</var> call with the same <var>Rslt</var> record. Failure to do so will
result in memory loss.
</remark>
<p>
For an example, see <link id="FindFirst"/>
</p>
</descr>
<errors>
On error (no more file is found), a nonzero constant is returned.
</errors>
<seealso>
<link id="FindFirst"/>
<link id="FindClose"/>
</seealso>
</element>
<element name="GetDirs">
<short>Return a list of directory names from a path.</short>
<descr>
<var>GetDirs</var> splits DirName in a null-byte separated list of directory names,
<var>Dirs</var> is an array of <var>PChars</var>, pointing to these directory names.
The function returns the number of directories found, or -1 if none were found.
DirName must contain only OSDirSeparator as Directory separator chars.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExtractRelativePath"/>
</seealso>
<example file="sysutex/ex45"/>
</element>
<element name="RenameFile">
<short>Rename a file.</short>
<descr>
<var>RenameFile</var> renames a file from <var>OldName</var> to <var>NewName</var>. The
function returns <var>True</var> if successful, <var>False</var> otherwise.
<em> Remark:</em> you cannot rename across disks or partitions.
</descr>
<errors>
On Error, <var>False</var> is returned.
</errors>
<seealso>
<link id="DeleteFile"/>
</seealso>
<example file="sysutex/ex44"/>
</element>
<element name="SetDirSeparators">
<short>Set the directory separators to the known directory separators.</short>
<descr>
<var>SetDirSeparators</var> returns <var>FileName</var> with all possible
DirSeparators replaced by <var>OSDirSeparator</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ExpandFileName"/>
<link id="ExtractFilePath"/>
<link id="ExtractFileDir"/>
</seealso>
<example file="sysutex/ex47"/>
</element>
<element name="StrAlloc">
<short>Allocate a null-terminated string on the heap.</short>
<descr>
<p>
<var>StrAlloc</var> reserves memory on the heap for a string with length <var>Len</var>,
terminating <var>#0</var> included, and returns a pointer to it.
</p>
<p>
Additionally, <var>StrAlloc</var> allocates 4 extra bytes to store the size of
the allocated memory. Therefore this function is NOT compatible with the
<link id="StrAlloc"/> function of the <var>Strings</var> unit.
</p>
<p>
For an example, see <link id="StrBufSize"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="StrBufSize"/>
<link id="StrDispose"/>
<link id="StrAlloc"/>
</seealso>
</element>
<element name="StrBufSize">
<short>Return the size of a null-terminated string allocated on the heap.</short>
<descr>
<var>StrBufSize</var> returns the memory allocated for <var>Str</var>. This function
ONLY gives the correct result if <var>Str</var> was allocated using
<link id="StrAlloc">StrAlloc</link>.
</descr>
<errors>
If no more memory is available, a runtime error occurs.
</errors>
<seealso>
<link id="StrAlloc">StrAlloc</link>
<link id="StrDispose"/>
</seealso>
<example file="sysutex/ex46"/>
</element>
<element name="StrDispose">
<short>Dispose of a null-terminated string on the heap.</short>
<descr>
<p>
<var>StrDispose</var> frees any memory allocated for <var>Str</var>. This function
will only function correctly if <var>Str</var> has been allocated using
<link id="StrAlloc">StrAlloc</link> from the <file>SysUtils</file> unit.
</p>
<p>
For an example, see <link id="StrBufSize"/>.
</p>
</descr>
<errors>
If an invalid pointer is passed, or a pointer not allocated with
<var>StrAlloc</var>, an error may occur.
</errors>
<seealso>
<link id="StrBufSize"/>
<link id="StrAlloc"/>
<link id="StrDispose"/>
</seealso>
</element>
<element name="StrPCopy">
<short>Copy an ansistring to a null-terminated string.</short>
<descr>
<p>
<var>StrPCopy</var> Converts the Ansistring in <var>Source</var> to a Null-terminated
string, and copies it to <var>Dest</var>. <var>Dest</var> needs enough room to contain
the string <var>Source</var>, i.e. <var>Length(Source)+1</var> bytes.
</p>
<p>
For an example, see <link id="StrPCopy"/>.
</p>
</descr>
<errors>
No checking is performed to see whether <var>Dest</var> points to enough memory
to contain <var>Source</var>.
</errors>
<seealso>
<link id="StrPLCopy"/>
<link id="StrPCopy"/>
</seealso>
</element>
<element name="StrPLCopy">
<short>Copy a limited number of characters from an ansistring to a
null-terminated string.</short>
<descr>
<var>StrPLCopy</var> Converts maximally <var>MaxLen</var> characters of the
Ansistring in <var>Source</var> to a Null-terminated string, and copies
it to <var>Dest</var>. <var>Dest</var> needs enough room to contain
the characters.
</descr>
<errors>
No checking is performed to see whether <var>Dest</var> points to enough memory
to contain L characters of <var>Source</var>.
</errors>
<seealso>
<link id="StrPCopy"/>.
</seealso>
</element>
<element name="StrPas">
<short>Convert a null-terminated string to an ansistring.</short>
<descr>
<p>
Converts a null terminated string in <var>Str</var> to an Ansitring, and returns
this string. This string is NOT truncated at 255 characters as is the
</p>
<p>
For an example, see <link id="StrPas"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="StrPas"/>
</seealso>
</element>
<element name="AdjustLineBreaks">
<short>Convert possible line-endings to the currently valid line ending.</short>
<descr>
<var>AdjustLineBreaks</var> will change all <var>#13</var> characters with
<var>#13#10</var> on Windowsnt and dos. On linux, all <var>#13#10</var>
character pairs are converted to <var>#10</var> and single <var>#13</var>
characters also.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareStr"/>
<link id="AnsiCompareText"/>
</seealso>
<example file="sysutex/ex48"/>
</element>
<element name="AnsiCompareStr">
<short>Compare 2 ansistrings, case sensitive, ignoring accents characters.</short>
<descr>
<p>
<var>AnsiCompareStr</var> compares two strings and returns the following
result:
</p>
<dl>
<dt>&lt; 0</dt><dd> if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd>if <var>S1=S2</var>.</dd>
<dt>&gt; 0</dt><dd> if <var>S1&gt;S2</var>.</dd>
</dl>
<p>
The comparision takes into account Ansi characters, i.e. it takes
care of strange accented characters. Contrary to <link id="AnsiCompareText"/>,
the comparision is case sensitive.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AdjustLineBreaks"/>
<link id="AnsiCompareText"/>
</seealso>
<example file="sysutex/ex49"/>
</element>
<element name="AnsiCompareText">
<short>Compare 2 ansistrings, case insensitive, ignoring accents characters.</short>
<descr>
<p>
<var>AnsiCompareText</var> compares two strings and returns the following
result:
</p>
<dl>
<dt>&lt;0</dt><dd>if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd>if <var>S1=S2</var>.</dd>
<dt>&gt;0</dt><dd>if <var>S1&gt;S2</var>.</dd>
</dl>
<p>
the comparision takes into account Ansi characters, i.e. it takes
care of strange accented characters. Contrary to <link id="AnsiCompareStr"/>,
the comparision is case insensitive.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AdjustLineBreaks"/>
<link id="AnsiCompareText"/>
</seealso>
<example file="sysutex/ex50"/>
</element>
<element name="AnsiExtractQuotedStr">
<short>Removes quotes from a string.</short>
<descr>
<var>AnsiExtractQuotedStr</var> Returns <var>Src</var> as a string, with <var>Quote</var>
characters removed from the beginning and end of the string, and double
<var>Quote</var> characters replaced by a single <var>Quote</var> characters.
As such, it revereses the action of <link id="AnsiQuotedStr"/>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiQuotedStr"/>
</seealso>
<example file="sysutex/ex51"/>
</element>
<element name="AnsiLastChar">
<short>Return a pointer to the last character of a string.</short>
<descr>
This function returns a pointer to the last character of <var>S</var>.
Since multibyte characters are not yet supported, this is the same
as <var>@S[Length(S)])</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiStrLastChar"/>
</seealso>
<example file="sysutex/ex52"/>
</element>
<element name="AnsiLowerCase">
<short>Return a lowercase version of a string.</short>
<descr>
<p>
<var>AnsiLowerCase</var> converts the string <var>S</var> to lowercase characters
and returns the resulting string.
It takes into account the operating system language
settings when doing this, so spcial characters are converted correctly as
well.
</p>
<remark>
On linux, no language setting is taken in account yet.
</remark>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiUpperCase"/>
<link id="AnsiStrLower"/>
<link id="AnsiStrUpper"/>
</seealso>
<example file="sysutex/ex53"/>
</element>
<element name="AnsiQuotedStr">
<short>Return a quoted version of a string.</short>
<descr>
<p>
<var>AnsiQuotedString</var> quotes the string <var>S</var> and returns the result.
This means that it puts the <var>Quote</var> character at both the beginning and
end of the string and replaces any occurrence of <var>Quote</var> in <var>S</var>
with 2 <var>Quote</var> characters. The action of <var>AnsiQuotedString</var> can be
reversed by <link id="AnsiExtractQuotedStr"/>.
</p>
<p>
For an example, see <link id="AnsiExtractQuotedStr"/>
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiExtractQuotedStr"/>
</seealso>
</element>
<element name="AnsiStrComp">
<short>Compare two null-terminated strings. Case sensitive.</short>
<descr>
<p>
<var>AnsiStrComp</var> compares 2 <var>PChar</var> strings, and returns the following
result:
</p>
<dl>
<dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd> if <var>S1=S2</var>.</dd>
<dt>&gt;0</dt><dd> if <var>S1>S2</var>.</dd>
</dl>
<p>
The comparision of the two strings is case-sensitive.
The function does not yet take internationalization settings into account.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareText"/>
<link id="AnsiCompareStr"/>
</seealso>
<example file="sysutex/ex54"/>
</element>
<element name="AnsiStrIComp">
<short>Compare two null-terminated strings. Case insensitive.</short>
<descr>
<p>
<var>AnsiStrIComp</var> compares 2 <var>PChar</var> strings, and returns the following
result:
</p>
<dl>
<dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd> if <var>S1=S2</var>.</dd>
<dt>>0</dt><dd> if <var>S1>S2</var>.</dd>
</dl>
<p>
The comparision of the two strings is case-insensitive.
The function does not yet take internationalization settings into account.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareText"/>
<link id="AnsiCompareStr"/>
</seealso>
<example file="sysutex/ex55"/>
</element>
<element name="AnsiStrLastChar">
<short>Return a pointer to the last character of a string.</short>
<descr>
<p>
Return a pointer to the last character of the null-terminated string.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareText"/>
<link id="AnsiCompareStr"/>
</seealso>
<example file="sysutex/ex56"/>
</element>
<element name="AnsiStrLIComp">
<short>Compares a given number of characters of a string, case insensitive.</short>
<descr>
<p>
<var>AnsiStrLIComp</var> compares the first <var>Maxlen</var> characters of
2 <var>PChar</var> strings, <var>S1</var> and <var>S2</var>, and returns the following
result:
</p>
<dl>
<dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd> if <var>S1=S2</var>.</dd>
<dt>&gt;0</dt><dd> if <var>S1&gt;S2</var>.</dd>
</dl>
<p>
The comparision of the two strings is case-insensitive.
The function does not yet take internationalization settings into account.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareText"/>
<link id="AnsiCompareStr"/>
</seealso>
<example file="sysutex/ex57"/>
</element>
<element name="AnsiStrLower">
<short>Convert a null-terminated string to all-lowercase characters.</short>
<descr>
<p>
<var>AnsiStrLower</var> converts the PChar <var>Str</var> to lowercase characters
and returns the resulting pchar. Note that <var>Str</var> itself is modified,
not a copy, as in the case of <link id="AnsiLowerCase"/>.
It takes into account the operating system language
settings when doing this, so special characters are converted correctly as
well.
</p>
<remark>
On unix, no language setting is taken in account yet.
</remark>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiStrUpper"/>
<link id="AnsiLowerCase"/>
</seealso>
<example file="sysutex/ex59"/>
</element>
<element name="AnsiStrUpper">
<short>Convert a null-terminated string to all-uppercase characters.</short>
<descr>
<p>
<var>AnsiStrUpper</var> converts the <var>PChar</var> <var>Str</var> to uppercase characters
and returns the resulting string. Note that <var>Str</var> itself is modified,
not a copy, as in the case of <link id="AnsiUpperCase"/>.
It takes into account the operating system language
settings when doing this, so special characters are converted correctly as
well.
</p>
<remark> On linux, no language setting is taken in account yet.
</remark>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiUpperCase"/>
<link id="AnsiStrLower"/>
<link id="AnsiLowerCase"/>
</seealso>
<example file="sysutex/ex60"/>
</element>
<element name="AnsiUpperCase">
<short>Return an uppercase version of a string, taking into account special
characters.</short>
<descr>
<p>
<var>AnsiUpperCase</var> converts the string <var>S</var> to uppercase characters
and returns the resulting string.
It takes into account the operating system language
settings when doing this, so special characters are converted correctly as
well.
</p>
<remark>
On linux, no language setting is taken in account yet.
</remark>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiStrUpper"/>
<link id="AnsiStrLower"/>
<link id="AnsiLowerCase"/>
</seealso>
<example file="sysutex/ex61"/>
</element>
<element name="AppendStr">
<short>Append one ansistring to another.</short>
<descr>
<p>
<var>AppendStr</var> appends <var>S</var> to Dest.
</p>
<p>
This function is provided for Delphi
compatibility only, since it is completely equivalent to <var>Dest:=Dest+S</var>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AssignStr"/>
<link id="NewStr"/>
<link id="DisposeStr"/>
</seealso>
<example file="sysutex/ex62"/>
</element>
<element name="AssignStr">
<short>Assigns an ansistring to a null-terminated string.</short>
<descr>
<p>
<var>AssignStr</var> allocates <var>S</var> to <var>P</var>. The old value of <var>P</var> is
disposed of.
</p>
<p>
This function is provided for Delphi compatibility only. <var>AnsiStrings</var>
are managed on the heap and should be preferred to the mechanism of
dynamically allocated strings.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="NewStr"/>
<link id="AppendStr"/>
<link id="DisposeStr"/>
</seealso>
<example file="sysutex/ex63"/>
</element>
<element name="BCDToInt">
<short>Convert a BCD coded integer to a normal integer.</short>
<descr>
<var>BCDToInt</var> converts a <var>BCD</var> coded integer to a normal integer.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="StrToInt"/>
<link id="IntToStr"/>
</seealso>
<example file="sysutex/ex64"/>
</element>
<element name="CompareMem">
<short>Compare two memory areas.</short>
<descr>
<p>
<var>CompareMem</var> compares, byte by byte, 2 memory areas pointed
to by <var>P1</var> and <var>P2</var>, for a length of <var>L</var> bytes.
</p>
<p>
It returns the following values:
</p>
<dl>
<dt>&lt;0</dt><dd> if at some position the byte at <var>P1</var> is less than the byte at the
same postion at <var>P2</var>.
</dd>
<dt>0</dt><dd> if all <var>L</var> bytes are the same.</dd>
<dt>&gt;0</dt><dd>if at some position the byte at <var>P1</var> is greater than the
byte at the same postion at <var>P2</var>.</dd>
</dl>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<element name="CompareStr">
<short>Compare 2 ansistrings case-sensitively, ignoring special characters.</short>
<descr>
<p>
<var>CompareStr</var> compares two strings, <var>S1</var> and <var>S2</var>,
and returns the following
result:
</p>
<dl>
<dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd> if <var>S1=S2</var>.</dd>
<dt>&gt;0</dt><dd> if <var>S1&gt;S2</var>.</dd>
</dl>
<p>
The comparision of the two strings is case-sensitive.
The function does not take internationalization settings into account, it
simply compares ASCII values.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareText"/>
<link id="AnsiCompareStr"/>
<link id="CompareText"/>
</seealso>
<example file="sysutex/ex65"/>
</element>
<element name="CompareText">
<short>Compare 2 ansistrings case insensitive.</short>
<descr>
<p>
<var>CompareText</var> compares two strings, <var>S1</var> and <var>S2</var>,
and returns the following
result:
</p>
<dl>
<dt>&lt;0</dt><dd> if <var>S1&lt;S2</var>.</dd>
<dt>0</dt><dd> if <var>S1=S2</var>.</dd>
<dt>&gt;0</dt><dd> if <var>S1&gt;S2</var>.</dd>
</dl>
<p>
The comparision of the two strings is case-insensitive.
The function does not take internationalization settings into account, it
simply compares ASCII values.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiCompareText"/>
<link id="AnsiCompareStr"/>
<link id="CompareStr"/>
</seealso>
<example file="sysutex/ex66"/>
</element>
<element name="DisposeStr">
<short>Dispose an ansistring from the heap.</short>
<descr>
<p>
<var>DisposeStr</var> removes the dynamically allocated string <var>S</var> from the
heap, and releases the occupied memory.
</p>
<p>
This function is provided for Delphi compatibility only. <var>AnsiStrings</var>
are managed on the heap and should be preferred to the mechanism of
dynamically allocated strings.
</p>
<p>
For an example, see <link id="DisposeStr"/>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="NewStr"/>
<link id="AppendStr"/>
<link id="AssignStr"/>
</seealso>
</element>
<element name="FloatToStr">
<short>Convert a float value to a string using a fixed format.</short>
<descr>
<p>
<var>FloatToStr</var> converts the floating point variable <var>Value</var> to a
string representation. It will choose the shortest possible notation of the
two following formats:
</p>
<dl>
<dt>Fixed format</dt><dd> will represent the string in fixed notation,
</dd><dt>Decimal format</dt><dd> will represent the string in scientific
notation.</dd>
</dl>
<p>
More information on these formats can be found in <link id="FloatToStrF"/>.
<var>FloatToStr</var> is completely equivalent to the following call:
</p>
<code>
FloatToStrF(Value, ffGeneral,15, 0);
</code>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FloatToStrF"/>
<link id="FormatFloat"/>
<link id="StrToFloat"/>
</seealso>
<example file="sysutex/ex67"/>
</element>
<element name="FloatToStrF">
<short>Convert a float value to a string using a given format.</short>
<descr>
<p>
<var>FloatToStrF</var> converts the floating point number <var>value</var> to a string
representation, according to the settings of the parameters <var>Format</var>,
<var>Precision</var> and <var>Digits</var>.
</p>
<p>
The meaning of the <var>Precision</var> and <var>Digits</var> parameter depends on the
<var>Format</var> parameter. The format is controlled mainly by the <var>Format</var>
parameter. It can have one of the following values:
</p>
<dl>
<dt>ffcurrency</dt>
<dd> Money format. <var>Value</var> is converted to a string using
the global variables <var>CurrencyString</var>, <var>CurrencyFormat</var> and
<var>NegCurrencyFormat</var>. The <var>Digits</var> paramater specifies the number of digits
following the decimal point and should be in the range -1 to 18. If Digits
equals <var>-1</var>, <var>CurrencyDecimals</var> is assumed. The <var>Precision</var> parameter is ignored.
</dd>
<dt>ffExponent</dt>
<dd> Scientific format. <var>Value</var> is converted to a
string using scientific notation: 1 digit before the decimal point, possibly
preceded by a minus sign if <var>Value</var> is negative. The number of
digits after the decimal point is controlled by <var>Precision</var> and must lie
in the range 0 to 15.
</dd>
<dt>ffFixed</dt>
<dd> Fixed point format. <var>Value</var> is converted to a string
using fixed point notation. The result is composed of all digits of the
integer part of <var>Value</var>, preceded by a minus sign if <var>Value</var> is
negative. Following the integer part is <var>DecimalSeparator</var> and then the
fractional part of <var>Value</var>, rounded off to <var>Digits</var> numbers.
If the number is too large then the result will be in scientific notation.
</dd>
<dt>ffGeneral</dt>
<dd> General number format. The argument is converted to a
string using <var>ffExponent</var> or <var>ffFixed</var> format, depending on wich one
gives the shortest string. There will be no trailing zeroes. If <var>Value</var>
is less than <var>0.00001</var> or if the number of decimals left of the decimal
point is larger than <var>Precision</var> then scientific notation is used, and
<var>Digits</var> is the minimum number of digits in the exponent. Otherwise
<var>Digits</var> is ignored.
</dd>
<dt>ffnumber</dt>
<dd> Is the same as <var>ffFixed</var>, except that thousand separators
are inserted in the resultig string.
</dd>
</dl>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FloatToStr"/>
<link id="FloatToText"/>
</seealso>
<example file="sysutex/ex68"/>
</element>
<element name="FloatToText">
<short>Return a string representation of a float, with a given format.</short>
<descr>
<p>
<var>FloatToText</var> converts the floating point variable <var>Value</var> to a
string representation and stores it in <var>Buffer</var>. The conversion is
governed by <var>format</var>, <var>Precisison</var> and <var>Digits</var>.
more information on these parameters can be found in <link id="FloatToStrF"/>.
<var>Buffer</var> should point to enough space to hold the result. No checking on
this is performed.
</p>
<p>
The result is the number of characters that was copied in <var>Buffer</var>.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="FloatToStr"/>
<link id="FloatToStrF"/>
</seealso>
<example file="sysutex/ex69"/>
</element>
<element name="FmtStr">
<short>Format a string with given arguments.</short>
<descr>
<var>FmtStr</var> calls <link id="Format"/> with <var>Fmt</var> and <var>Args</var> as arguments,
and stores the result in <var>Res</var>. For more information on how the
resulting string is composed, see <link id="Format"/>.
</descr>
<errors>
In case of error, a <var>EConvertError</var> exception is raised.
</errors>
<seealso>
<link id="Format"/>
<link id="FormatBuf"/>.
</seealso>
<example file="sysutex/ex70"/>
</element>
<element name="Format">
<short>Format a string with given arguments.</short>
<descr>
<p>
Format replaces all placeholders in<var>Fmt</var> with the arguments passed in
<var>Args</var> and returns the resulting string. A placeholder looks as follows:
</p>
<code>
'%' [Index':'] ['-'] [Width] ['.' Precision] ArgType
</code>
<p>
elements between single quotes must be typed as shown without the quotes,
and elements between square brackets <var>[ ]</var> are optional. The meaning
of the different elements is shown below:
</p>
<dl>
<dt>'%'</dt>
<dd> starts the placeholder. If you want to insert a literal
<var>\%</var> character, then you must insert two of them : <var>\%\%</var>.
</dd>
<dt>Index ':'</dt>
<dd> takes the <var>Index</var>-th element in the argument array
as the element to insert.
</dd>
<dt>'-'</dt>
<dd> tells <var>Format</var> to left-align the inserted text. The default
behaviour is to right-align inserted text. This can only take effect if the
<var>Width</var> element is also specified.
</dd>
<dt>Width</dt>
<dd> the inserted string must have at least have <var>Width</var>
characters. If not, the inserted string will be padded with spaces. By
default, the string is left-padded, resulting in a right-aligned string.
This behaviour can be changed by the <var>'-'</var> character.
</dd>
<dt>'.' Precision</dt>
<dd> Indicates the precision to be used when converting
the argument. The exact meaning of this parameter depends on <var>ArgType</var>.
</dd>
</dl>
<p>
The <var>Index</var>, <var>Width</var> and <var>Precision</var> parameters can be replaced
by <var>*</var>, in which case their value will be read from the next element in
the <var>Args</var> array. This value must be an integer, or an
<var>EConvertError</var> exception will be raised.
</p>
<p>
The argument type is determined from <var>ArgType</var>. It can have one of the
following values (case insensitive):
</p>
<dl>
<dt>D</dt>
<dd>
Decimal format. The next argument in the <var>Args</var> array should be
an integer. The argument is converted to a decimal string,. If precision is
specified, then the string will have at least <var>Precision</var> digits in it.
If needed, the string is (left) padded with zeroes.
</dd>
<dt>E</dt>
<dd>
<p>
Scientific format. The next argument in the <var>Args</var> array should
be a Floating point value. The argument is converted to a decimal string
using scientific notation, using <link id="FloatToStrF"/>, where the optional
precision is used to specify the total number of decimals. (defalt a valueof
15 is used). The exponent is formatted using maximally 3 digits.
</p>
<p>
In short, the <var>E</var> specifier formats it's argument as follows:
</p>
<code>
FloatToStrF(Argument,ffexponent,Precision,3)
</code>
</dd>
<dt>F</dt>
<dd>
<p>Fixed point format. The next argument in the <var>Args</var> array
should be a floating point value. The argument is converted to a
decimal string, using fixed notation (see <link id="FloatToStrF"/>).
<var>Precision</var> indicates the number of digits following the
decimal point.
</p>
<p>
In short, the <var>F</var> specifier formats it's argument as follows:
</p>
<code>
FloatToStrF(Argument,ffFixed,ffixed,9999,Precision)
</code>
</dd>
<dt>G</dt>
<dd>
<p>
General number format. The next argument in the <var>Args</var> array
should be a floating point value. The argument is converted to a decimal
string using fixed point notation or scientific notation, depending on which
gives the shortest result. <var>Precision</var> is used to determine the number
of digits after the decimal point.
</p>
<p>
In short, the <var>G</var> specifier formats it's argument as follows:
</p>
<code>
FloatToStrF(Argument,ffGeneral,Precision,3)
</code>
</dd>
<dt>M</dt>
<dd>
<p>Currency format. the next argument in the var{Args} array must
be a floating point value. The argument is converted to a decimal string
using currency notation. This means that fixed-point notation is used, but
that the currency symbol is appended. If precision is specified, then
then it overrides the <var>CurrencyDecimals</var> global variable used in the
<link id="FloatToStrF"/>
</p>
<p>
In short, the <var>M</var> specifier formats it's argument as follows:
</p>
<code>
FloatToStrF(Argument,ffCurrency,9999,Precision)
</code>
</dd>
<dt>N</dt>
<dd> Number format. This is the same as fixed point format, except that
thousand separators are inserted in the resulting string.
</dd>
<dt>P</dt>
<dd> Pointer format. The next argument in the <var>Args</var> array must be a
pointer (typed or untyped). The pointer value is converted to a string of
length 8, representing the hexadecimal value of the pointer.
</dd>
<dt>S</dt>
<dd> String format. The next argument in the <var>Args</var> array must be
a string. The argument is simply copied to the result string. If
<var>Precision</var> is specified, then only <var>Precision</var> characters are
copied to the result string.
</dd>
<dt>X</dt>
<dd> hexadecimal format. The next argument in the <var>Args</var> array must
be an integer. The argument is converted to a hexadecimal string with just
enough characters to contain the value of the integer. If <var>Precision</var>
is specified then the resulting hexadecimal representation will have at
least <var>Precision</var> characters in it (with a maximum value of 32).
</dd>
</dl>
</descr>
<errors>
<p>
In case of error, an <var>EConversionError</var> exception is raised. Possible
errors are:
</p>
<ol>
<li> Errors in the format specifiers.</li>
<li> The next argument is not of the type needed by a specifier.</li>
<li> The number of arguments is not sufficient for all format specifiers.</li>
</ol>
</errors>
<seealso>
<link id="FormatBuf"/>
</seealso>
<example file="sysutex/ex71"/>
</element>
<element name="FormatBuf">
<short>Format a string with given arguments and store the result in a buffer.</short>
<descr>
<var>FormatBuf</var> calls formatfloat with <var>Buf</var>.
</descr>
<errors>
</errors>
<seealso>
</seealso>
<example file="sysutex/ex72"/>
</element>
<element name="FormatFloat">
<short>Format a float according to a certain mask.</short>
<descr>
<p>
<var>FormatFloat</var> formats the floating-point value given by <var>Value</var> using
the format specifications in <var>Format</var>. The format specifier can give
format specifications for positive, negative or zero values (separated by
a semicolon).
</p>
<p>
If the formatspecifier is empty or the value needs more than 18 digits to
be correctly represented, the result is formatted with a call to
<link id="FloatToStrF"/> with the <var>ffGeneral</var> format option.
</p>
<p>
The following format specifiers are supported:
</p>
<dl>
<dt>0</dt>
<dd> is a digit place holder. If there is a corresponding digit in
the value being formatted, then it replaces the 0. If not, the 0 is left
as-is.
</dd>
<dt>#</dt>
<dd> is also a digit place holder. If there is a corresponding digit in
the value being formatted, then it replaces the #. If not, it is removed.
by a space.
</dd>
<dt>.</dt>
<dd> determines the location of the decimal point. Only the first '.'
character is taken into account. If the value contains digits after the
decimal point, then it is replaced by the value of the <var>DecimalSeparator</var>
character.
</dd>
<dt>,</dt>
<dd> determines the use of the thousand separator character in the
output string. If the format string contains one or more ',' charactes,
then thousand separators will be used. The <var>ThousandSeparator</var> character
is used.
</dd>
<dt>E+</dt>
<dd> determines the use of scientific notation. If 'E+' or 'E-' (or
their lowercase counterparts) are present then scientific notation is used.
The number of digits in the output string is determined by the number of
<var>0</var> characters after the '<var>E+</var>'
</dd>
<dt>;</dt>
<dd> This character separates sections for positive, negative, and zero numbers in the
format string.
</dd>
</dl>
</descr>
<errors>
If an error occurs, an exception is raised.
</errors>
<seealso>
<link id="FloatToStr"/>
</seealso>
<example file="sysutex/ex89"/>
</element>
<element name="IntToHex">
<short>Convert an integer value to a hexadecimal string.</short>
<descr>
<var>IntToHex</var> converts <var>Value</var> to a hexadecimal string
representation. The result will contain at least <var>Digits</var>
characters. If <var>Digits</var> is less than the needed number of characters,
the string will NOT be truncated. If <var>Digits</var> is larger than the needed
number of characters, the result is padded with zeroes.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="IntToStr"/>, <var>StrToInt</var>
</seealso>
<example file="sysutex/ex73"/>
</element>
<element name="IntToStr">
<short>Convert an integer value to a decimal string.</short>
<descr>
<var>IntToStr</var> coverts <var>Value</var> to it's string representation.
The resulting string has only as much characters as needed to represent
the value. If the value is negative a minus sign is prepended to the
string.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="IntToHex"/>
<link id="StrToInt"/>
</seealso>
<example file="sysutex/ex74"/>
</element>
<element name="IsValidIdent">
<short>Check whether a string is a valid identifier name.</short>
<descr>
<var>IsValidIdent</var> returns <var>True</var> if <var>Ident</var> can be used as a
compoent name. It returns <var>False</var> otherwise. <var>Ident</var> must consist of
a letter or underscore, followed by a combination of letters, numbers or
underscores to be a valid identifier.
</descr>
<errors>
None.
</errors>
<seealso>
</seealso>
<example file="sysutex/ex75"/>
</element>
<element name="LastDelimiter">
<short>Return the last occurrence of a set of delimiters in a string.</short>
<descr>
<var>LastDelimiter</var> returns the <em> last</em> occurrence of any character in
the set <var>Delimiters</var> in the string <var>S</var>.
</descr>
<errors>
</errors>
<seealso>
</seealso>
<example file="sysutex/ex88"/>
</element>
<element name="LeftStr">
<short>Return a number of characters starting at the left of a string.</short>
<descr>
<var>LeftStr</var> returns the <var>Count</var> leftmost characters of <var>S</var>.
It is equivalent to a call to <var>Copy(S,1,Count)</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="RightStr"/>
<link id="TrimLeft"/>
<link id="TrimRight"/>
<link id="Trim"/>
</seealso>
<example file="sysutex/ex76"/>
</element>
<element name="LoadStr">
<short>Load a string from the resource tables.</short>
<descr>
This function is not yet implemented. resources are not yet supported.
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<element name="LowerCase">
<short>Return a lowercase version of a string.</short>
<descr>
<var>LowerCase</var> returns the lowercase equivalent of <var>S</var>. Ansi characters
are not taken into account, only ASCII codes below 127 are converted. It is
completely equivalent to the lowercase function of the system unit, and is
provided for compatiibility only.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiLowerCase"/>
<link id="UpperCase"/>
<link id="AnsiUpperCase"/>
</seealso>
<example file="sysutex/ex77"/>
</element>
<element name="NewStr">
<short>Allocate a new ansistring on the heap.</short>
<descr>
<p>
<var>NewStr</var> assigns a new dynamic string on the heap, copies <var>S</var> into
it, and returns a pointer to the newly assigned string.
</p>
<p>
This function is obsolete, and shouldn't be used any more. The
<var>AnsiString</var> mechanism also allocates ansistrings on the heap, and
should be preferred over this mechanism.
</p>
<p>
For an example, see <link id="AssignStr"/>.
</p>
</descr>
<errors>
If not enough memory is present, an EOutOfMemory exception will be raised.
</errors>
<seealso>
<link id="AssignStr"/>
<link id="DisposeStr"/>
</seealso>
</element>
<element name="QuotedStr">
<short>Return a quotes version of a string.</short>
<descr>
<var>QuotedStr</var> returns the string <var>S</var>, quoted with single quotes. This means
that <var>S</var> is enclosed in single quotes, and every single quote in <var>S</var>
is doubled. It is equivalent to a call to <var>AnsiQuotedStr(s, '''')</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiQuotedStr"/>
<link id="AnsiExtractQuotedStr"/>.
</seealso>
<example file="sysutex/ex78"/>
</element>
<element name="RightStr">
<short>Return a number of characters from a string, starting at the end.</short>
<descr>
<p>
<var>RightStr</var> returns the <var>Count</var> rightmost characters of <var>S</var>.
It is equivalent to a call to <var>Copy(S,Length(S)+1-Count,Count)</var>.
</p>
<p>
If <var>Count</var> is larger than the actual length of <var>S</var> only the real
length will be used.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="LeftStr"/>
<link id="Trim"/>
<link id="TrimLeft"/>
<link id="TrimRight"/>
</seealso>
<example file="sysutex/ex79"/>
</element>
<element name="StrFmt">
<short>Format a string with given arguments, store the result in a buffer.</short>
<descr>
<var>StrFmt</var> will format <var>fmt</var> with <var>Args</var>, as the <link id="Format"/>
function does, and it will store the result in <var>Buffer</var>. The function
returns <var>Buffer</var>. <var>Buffer</var> should point to enough space to contain
the whole result.
</descr>
<errors>
for a list of errors, see <link id="Format"/>.
</errors>
<seealso>
<link id="StrLFmt"/>
<link id="FmtStr"/>
<link id="Format"/>
<link id="FormatBuf"/>
</seealso>
<example file="sysutex/ex80"/>
</element>
<element name="StrLFmt">
<short>Format a string with given arguments, but with limited length.</short>
<descr>
<var>StrLFmt</var> will format <var>fmt</var> with <var>Args</var>, as the <link id="Format"/>
function does, and it will store maximally <var>Maxlen characters</var> of the
result in <var>Buffer</var>. The function returns <var>Buffer</var>. <var>Buffer</var>
should point to enough space to contain <var>MaxLen</var> characters.
</descr>
<errors>
for a list of errors, see <link id="Format"/>.
</errors>
<seealso>
<link id="StrFmt"/>
<link id="FmtStr"/>
<link id="Format"/>
<link id="FormatBuf"/>
</seealso>
<example file="sysutex/ex81"/>
</element>
<element name="StrToFloat">
<short>Convert a string to a floating-point value.</short>
<descr>
<var>StrToFloat</var> converts the string <var>S</var> to a floating point value.
<var>S</var> should contain a valid stroing representation of a floating point
value (either in decimal or scientific notation). If the string
contains a decimal value, then the decimal separator character can either be
a '.' or the value of the <var>DecimalSeparator</var> variable.
</descr>
<errors>
If the string <var>S</var> doesn't contain a valid floating point string, then an
exception will be raised.
</errors>
<seealso>
<link id="TextToFloat"/>
<link id="FloatToStr"/>
<link id="FormatFloat"/>
<link id="StrToInt"/>
</seealso>
<example file="sysutex/ex90"/>
</element>
<element name="StrToInt">
<short>Convert a string to an integer value.</short>
<descr>
<p>
<var>StrToInt</var> will convert the string <var>S</var>to an integer.
If the string contains invalid characters or has an invalid format,
then an <var>EConvertError</var> is raised.
</p>
<p>
To be successfully converted, a string can contain a combination
of <var>numerical</var> characters, possibly preceded by a minus sign (<var>-</var>).
Spaces are not allowed.
</p>
</descr>
<errors>
In case of error, an <var>EConvertError</var> is raised.
</errors>
<seealso>
<link id="IntToStr"/>
<link id="StrToIntDef"/>
</seealso>
<example file="sysutex/ex82"/>
</element>
<element name="StrToIntDef">
<short>Convert a string to an integer value, with a default value.</short>
<descr>
<p>
<var>StrToIntDef</var> will convert a string to an integer. If the string contains
invalid characters or has an invalid format, then <var>Default</var> is returned.
</p>
<p>
To be successfully converted, a string can contain a combination of
<var>numerical</var> characters, possibly preceded by a minus sign (<var>-</var>).
Spaces are not allowed.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="IntToStr"/>
<link id="StrToInt"/>
</seealso>
<example file="sysutex/ex83"/>
</element>
<element name="TextToFloat">
<short>Convert a buffer to a float value.</short>
<descr>
<p>
<var>TextToFloat</var> converts the string in <var>Buffer</var> to a floating point
value. <var>Buffer</var> should contain a valid stroing representation of a
floating point value (either in decimal or scientific notation).
If the buffer contains a decimal value, then the decimal separator
character can either be a '.' or the value of the <var>DecimalSeparator</var>
variable.
</p>
<p>
The function returns <var>True</var> if the conversion was successful.
</p>
</descr>
<errors>
If there is an invalid character in the buffer, then the function returns
<var>False</var>
</errors>
<seealso>
<link id="StrToFloat"/>
<link id="FloatToStr"/>
<link id="FormatFloat"/>
</seealso>
<example file="sysutex/ex91"/>
</element>
<element name="Trim">
<short>Trim whitespace from the ends of a string.</short>
<descr>
<p>
<var>Trim</var> strips blank characters (spaces) at the beginning and end of <var>S</var>
and returns the resulting string. Only <var>#32</var> characters are stripped.
</p>
<p>
If the string contains only spaces, an empty string is returned.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="TrimLeft"/>
<link id="TrimRight"/>
</seealso>
<example file="sysutex/ex84"/>
</element>
<element name="TrimLeft">
<short>Trim whitespace from the beginning of a string.</short>
<descr>
<var>TrimLeft</var> strips blank characters (spaces) at the beginning of <var>S</var>
and returns the resulting string. Only <var>#32</var> characters are stripped.
If the string contains only spaces, an empty string is returned.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Trim"/>
<link id="TrimRight"/>
</seealso>
<example file="sysutex/ex85"/>
</element>
<element name="TrimRight">
<short>Trim whitespace from the end of a string.</short>
<descr>
<var>Trim</var> strips blank characters (spaces) at the end of <var>S</var>
and returns the resulting string. Only <var>#32</var> characters are stripped.
If the string contains only spaces, an empty string is returned.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Trim"/>
<link id="TrimLeft"/>
</seealso>
<example file="sysutex/ex86"/>
</element>
<element name="UpperCase">
<short>Return an uppercase version of a string.</short>
<descr>
<var>UpperCase</var> returns the uppercase equivalent of <var>S</var>. Ansi characters
are not taken into account, only ASCII codes below 127 are converted. It is
completely equivalent to the <var>UpCase</var> function of the system unit, and is
provided for compatiibility only.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="AnsiLowerCase"/>
<link id="LowerCase"/>
<link id="AnsiUpperCase"/>
</seealso>
<example file="sysutex/ex87"/>
</element>
<element name="Unix">
<short>Unix unit.</short>
</element>
<element name="errors">
<short>Error descriptions.</short>
</element>
<element name="sysconst">
<short>Error and other message strings.</short>
</element>
<element name="GetLastOSError">
<short>Return the last code from the OS.</short>
</element>
<!-- procedure Visibility: default -->
<element name="RaiseLastOSError">
<short>Raise an exception if the last OS error was nonzero.</short>
</element>
<!-- function Visibility: default -->
<element name="GetEnvironmentVariable">
<short>Return the value of an environment variable.</short>
</element>
<!-- procedure Visibility: default -->
<element name="Sleep">
<short>Suspend execution of a program for a certain time.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ExecuteProcess">
<short>Execute another process (program).</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="GetAppConfigDir">
<short>Return the appropriate directory for the application's configuration files.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="GetAppConfigFile">
<short>Return an appropriate name for an application configuration file.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ApplicationName">
<short>Return a default application name</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="ConfigExtension">
<short>Default application configuration file extension.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="SysConfigDir">
<short>System configuration directory.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function type Visibility: default -->
<element name="TGetAppNameEvent">
<short>Callback type to get customized application name.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="OnGetApplicationName">
<short>Callback to get a customized application name.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- pointer type Visibility: default -->
<element name="PDayTable">
<short>Pointer to TDayTable type.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- array type Visibility: default -->
<element name="TDayTable">
<short>Array of day names.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="HoursPerDay">
<short>Number of hours in a day.</short>
</element>
<!-- constant Visibility: default -->
<element name="MinsPerHour">
<short>Number of minutes per hour.</short>
</element>
<!-- constant Visibility: default -->
<element name="SecsPerMin">
<short>Number of seconds per minute</short>
</element>
<!-- constant Visibility: default -->
<element name="MSecsPerSec">
<short>Number of milliseconds per second</short>
</element>
<!-- constant Visibility: default -->
<element name="MinsPerDay">
<short>Number of minutes per day.</short>
</element>
<!-- constant Visibility: default -->
<element name="SecsPerDay">
<short>Number of seconds per day</short>
</element>
<!-- constant Visibility: default -->
<element name="MSecsPerDay">
<short>Number of milliseconds per day</short>
</element>
<!-- constant Visibility: default -->
<element name="DateDelta">
<short>Days between 1/1/0001 and 12/31/1899</short>
</element>
<!-- constant Visibility: default -->
<element name="UnixDateDelta">
<short>Number of days between 1.1.1900 and 1.1.1970</short>
</element>
<!-- constant Visibility: default -->
<element name="MonthDays">
<short>Array with number of days in the months for leap and non-leap years.</short>
</element>
<!-- constant Visibility: default -->
<element name="TwoDigitYearCenturyWindow">
<short>Window to determine what century 2 digit years are in.</short>
</element>
<!-- record type Visibility: default -->
<element name="TSystemTime">
<short>System time structure</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.Year">
<short>Year part</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.Month">
<short>Month part</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.Day">
<short>Day of month part</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.Hour">
<short>Hour of the day</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.Minute">
<short>Minute of the hour</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.Second">
<short>Second of the minute</short>
</element>
<!-- variable Visibility: default -->
<element name="TSystemTime.MilliSecond">
<short>Milliseconds in the second</short>
</element>
<!-- record type Visibility: default -->
<element name="TTimeStamp">
<short>TimeStamp structure</short>
</element>
<!-- variable Visibility: default -->
<element name="TTimeStamp.Time">
<short>Time part</short>
</element>
<!-- variable Visibility: default -->
<element name="TTimeStamp.Date">
<short>Date part</short>
</element>
<!-- function Visibility: default -->
<element name="TryEncodeDate">
<short>Try to encode a date, and indicate success.</short>
</element>
<!-- function Visibility: default -->
<element name="TryEncodeTime">
<short>Try to encode a time, and indicate success.</short>
</element>
<!-- function Visibility: default -->
<element name="DecodeDateFully">
<short>Decode a date with additional date of the week.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="GetLocalTime">
<short>Get the local time.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- pointer type Visibility: default -->
<element name="PString">
<short>Pointer to a ansistring</short>
</element>
<!-- enumeration type Visibility: default -->
<element name="TFloatFormat">
<short>Formats for the FloatToStr function.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatFormat.ffGeneral">
<short>General number format.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatFormat.ffExponent">
<short>Scientific format.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatFormat.ffFixed">
<short>Fixed point format.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatFormat.ffNumber">
<short>Fixed point format with thousand separatord</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatFormat.ffCurrency">
<short>Monetary format.</short>
</element>
<!-- enumeration type Visibility: default -->
<element name="TFloatValue">
<short>Type of float in the buffer for FloatToText.</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatValue.fvExtended">
<short>Extended value</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatValue.fvCurrency">
<short>Currency value</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatValue.fvSingle">
<short>Single value</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatValue.fvReal">
<short>Real value</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatValue.fvDouble">
<short>Double value</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TFloatValue.fvComp">
<short>Comp value</short>
</element>
<!-- set type Visibility: default -->
<element name="TReplaceFlags">
<short>Flags for StringReplace function</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TReplaceFlags.rfReplaceAll">
<short>Replace all occurrences of the search string</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TReplaceFlags.rfIgnoreCase">
<short>Search case insensitive</short>
</element>
<!-- record type Visibility: default -->
<element name="TFloatRec">
<short>Record descriing a float value</short>
</element>
<!-- variable Visibility: default -->
<element name="TFloatRec.Exponent">
<short>Exponent part</short>
</element>
<!-- variable Visibility: default -->
<element name="TFloatRec.Negative">
<short>Sign part</short>
</element>
<!-- variable Visibility: default -->
<element name="TFloatRec.Digits">
<short>Digits of fraction</short>
</element>
<!-- constant Visibility: default -->
<element name="MinDateTime">
<short>Minimum <var>TDateTime</var> value.</short>
</element>
<!-- constant Visibility: default -->
<element name="MaxDateTime">
<short>Maximum <var>TDateTime</var> value.</short>
</element>
<!-- constant Visibility: default -->
<element name="MinCurrency">
<short>Minimum Currency value</short>
</element>
<!-- constant Visibility: default -->
<element name="MaxCurrency">
<short>Maximum currency value</short>
</element>
<!-- enumeration type Visibility: default -->
<element name="TTextLineBreakStyle">
<short>Line break style</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TTextLineBreakStyle.tlbsLF">
<short>Linefeed only</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TTextLineBreakStyle.tlbsCRLF">
<short>Carriage-return and linefeed characters</short>
</element>
<!-- constant Visibility: default -->
<element name="DefaultTextLineBreakStyle">
<short>Default line break style for the current platform.</short>
</element>
<!-- constant Visibility: default -->
<element name="LeadBytes">
<short>Lead bytes in Bulti-Byte character sets</short>
</element>
<!-- constant Visibility: default -->
<element name="EmptyStr">
<short>Empty String Constant</short>
</element>
<!-- constant Visibility: default -->
<element name="NullStr">
<short>Null string</short>
</element>
<!-- constant Visibility: default -->
<element name="EmptyWideStr">
<short>Empty wide string.</short>
</element>
<!-- function Visibility: default -->
<element name="CompareMemRange">
<short>Compare 2 memory locations</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="SameText">
<short>Checks whether 2 strings are the same (case insensitive)</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiSameText">
<short>Checks whether 2 strings are the same (case insensitive)</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiSameStr">
<short>Checks whether 2 strings are the same (case sensitive)</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiStrLComp">
<short>Compare a limited number of characters of 2 strings</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="TryStrToInt">
<short>Try to convert a string to an integer, and report on success.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StrToInt64">
<short>Convert a string to an Int64 value.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="TryStrToInt64">
<short>Try to convert a string to an int64 value, and report on success.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StrToInt64Def">
<short>Convert a string to an Int64 value, with a default value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StrToFloatDef">
<short>Convert a string to a float, with a default value.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="FloatToDateTime">
<short>Convert a float to a <var>TDateTime</var> value.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="FloattoCurr">
<short>Convert a float to a Currency value.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="TryFloatToCurr">
<short>Try to convert a float value to a currency value and report on success.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="CurrToStr">
<short>Convert a currency value to a string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StrToCurr">
<short>Convert a string to a currency value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StrToCurrDef">
<short>Convert a string to a currency value, using a default value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StrToBool">
<short>Convert a string to a boolean value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="BoolToStr">
<short>Convert a boolean value to a string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="StringReplace">
<short>Replace occurrences of one substring with another in a string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="FloatToTextFmt">
<short>Convert a float value to a string using a given mask.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="FloatToDecimal">
<short>Convert a float value to a decimal value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="IsDelimiter">
<short>Check whether a given string is a delimiter character.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- enumeration type Visibility: default -->
<element name="TMbcsByteType">
<short>Type of multi-byte character set.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- enumeration value Visibility: default -->
<element name="TMbcsByteType.mbSingleByte">
<short>Single bytes</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TMbcsByteType.mbLeadByte">
<short>Uses lead-byte</short>
</element>
<!-- enumeration value Visibility: default -->
<element name="TMbcsByteType.mbTrailByte">
<short>Uses trailing byte</short>
</element>
<!-- function Visibility: default -->
<element name="ByteType">
<short>Return the type of byte in an ansistring for a multi-byte character set</short>
</element>
<!-- function Visibility: default -->
<element name="StrByteType">
<short>Return the type of byte in a null-terminated string for a multi-byte character set</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ByteToCharLen">
<short>Convert a length in bytes to a length in characters.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="CharToByteLen">
<short>Convert a length in characters to a length in bytes.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ByteToCharIndex">
<short>Convert a character index in Bytes to an Index in characters</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="SwitchChars">
<short>Characters which start a command-line switch</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- set type Visibility: default -->
<element name="TSysCharSet">
<short>Set of characters.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="FindCmdLineSwitch">
<short>Check whether a certain switch is present on the command-line.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- alias type Visibility: default -->
<element name="THandle">
<short>File Handle type.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure type Visibility: default -->
<element name="tprocedure">
<short>Procedural type</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- alias type Visibility: default -->
<element name="tfilename">
<short>Filename type</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- set type Visibility: default -->
<element name="tintegerset">
<short>Set with size of integer.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- record type Visibility: default -->
<element name="longrec">
<short>Record describing a longint value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- record type Visibility: default -->
<element name="wordrec">
<short>Record describing a word value.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="wordrec.lo">
<short>Low byte of the word.</short>
</element>
<!-- variable Visibility: default -->
<element name="wordrec.hi">
<short>High byte of the word</short>
</element>
<!-- record type Visibility: default -->
<element name="int64rec">
<short>Record describing an Int64 value</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- pointer type Visibility: default -->
<element name="pbytearray">
<short>Pointer to an array of byte.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- array type Visibility: default -->
<element name="tbytearray">
<short>Array of bytes</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- pointer type Visibility: default -->
<element name="pwordarray">
<short>Array of word.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- array type Visibility: default -->
<element name="twordarray">
<short></short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- record type Visibility: default -->
<element name="TMethod">
<short>Record describing a method.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TMethod.Code">
<short>Pointer to method code.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TMethod.Data">
<short>Pointer to object instance.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="Exception">
<short>Base class of all exceptions.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.Create">
<short>Constructs a new exception object with a given message.</short>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateFmt">
<short>Constructs a new exception object and formats a new message.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateRes">
<short>Constructs a new exception object and gets the message from a reasource.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateResFmt">
<short>Constructs a new exception object and formats the message from a
reasource.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateHelp">
<short>Constructs a new exception object and sets the help context.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateFmtHelp">
<short>Constructs a new exception object and sets the help context and
formats the message</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateResHelp">
<short>Constructs a new exception object and sets the help context and
gets the message from a resource</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constructor Visibility: public -->
<element name="Exception.CreateResFmtHelp">
<short>Constructs a new exception object and sets the help context and
formats the message from a resource</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- property Visibility: public -->
<element name="Exception.helpcontext">
<short>Help context associated with the exception.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- property Visibility: public -->
<element name="Exception.message">
<short>Message associated with the exception.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- "class of" type Visibility: default -->
<element name="ExceptClass">
<short>Exception Class reference</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EExternal">
<short>External Exception.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInterror">
<short>Integer operation error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EDivByZero">
<short>Division by zero error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="ERangeError">
<short>Range check error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EIntOverflow">
<short>Integer overflow error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EMathError">
<short>Mathematical error</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInvalidOp">
<short>Invalid operation.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EZeroDivide">
<short>Division by zero error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EOverflow">
<short>Float overflow error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EUnderflow">
<short>Float underflow error</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInOutError">
<short>Input/Output error</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: public -->
<element name="EInOutError.ErrorCode">
<short>Error code for Input/Output operation.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EHeapMemoryError">
<short>Heap memory error</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- alias type Visibility: default -->
<element name="EHeapException">
<short>Heap exception</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EExternalException">
<short>External exception</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInvalidPointer">
<short>Invalid pointer operation</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EOutOfMemory">
<short>Out of memory error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInvalidCast">
<short>Invalid typecast error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EVariantError">
<short>Variant error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EAccessViolation">
<short>Access Violation error</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EPrivilege">
<short>Privileged instruction error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EStackOverflow">
<short>Stack overflow error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EControlC">
<short>Control-C (abort) was pressed on the console.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EConvertError">
<short>Conversion error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EAbort">
<short>Abort error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EAbstractError">
<short>Abstract error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EAssertionFailed">
<short>Assertion failed error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EPropReadOnly">
<short>Read-only property error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EPropWriteOnly">
<short>Write-only property error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EIntfCastError">
<short>Invalid interface cast error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInvalidContainer">
<short>Invalid container error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EInvalidInsert">
<short>Invalid insert error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EPackageError">
<short>Package error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="EOSError">
<short>Operating system error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: public -->
<element name="EOSError.ErrorCode">
<short>Operating system error code.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="ESafecallException">
<short>SafeCall exception.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- object Visibility: default -->
<element name="ENoThreadSupport">
<short>No Thread support error.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ExceptObject">
<short>Current Exception object.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ExceptAddr">
<short>Current exception address.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ExceptionErrorMessage">
<short>Return a message describing the exception.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="ShowException">
<short>Show the current exception to the user.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="Abort">
<short>Abort program execution.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="OutOfMemoryError">
<short>Raise an <var>EOutOfMemory</var> exception</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="Beep">
<short>Sound the system bell.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="SysErrorMessage">
<short>Format a system error message.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function type Visibility: default -->
<element name="TTerminateProc">
<short>Terminate procedure procedural variable.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="AddTerminateProc">
<short>Add a procedure to the exit chain.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="CallTerminateProcs">
<short>Call the exit chain procedures.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="OnShowException">
<short>Callback to show unhandled exceptions.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="filerecnamelength">
<short>Length of filerec filename field.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- record type Visibility: default -->
<element name="FileRec">
<short>Record describing an untyped file.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="FileRec.Handle">
<short>Operating system file handle.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="FileRec.Mode">
<short>Open mode.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="FileRec.RecSize">
<short>Record data size</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="FileRec._private">
<short>Private data. Do not use</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="FileRec.UserData">
<short>User data. Only use when implementing new type.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="FileRec.name">
<short>File name</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="TextRecNameLength">
<short>Length of text file record filename field </short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="TextRecBufSize">
<short>Buffer size of text file record.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- array type Visibility: default -->
<element name="TextBuf">
<short>Text record buffer array type</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- record type Visibility: default -->
<element name="TextRec">
<short>Record describing a text file type</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.Handle">
<short>Operating system handle for file.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.Mode">
<short>Open mode</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.bufsize">
<short>Size of buffer.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec._private">
<short>Private data. Do not use.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.bufpos">
<short>Current buffer position.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.bufend">
<short>Current buffer end.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.bufptr">
<short>Pointer to current buffer.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.openfunc">
<short>File open function. Allocates handle.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.inoutfunc">
<short>Read/write function</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.flushfunc">
<short>Flush buffer function</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.closefunc">
<short>Close handle function.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.UserData">
<short>User data for text rec.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.name">
<short>File name</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TextRec.buffer">
<short>Default buffer.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="HexDisplayPrefix">
<short>String to prepend to hexadecimal values</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="PathDelim">
<short>Path (directory) delimiter.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="DriveDelim">
<short>Drive letter delimiter</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="PathSep">
<short>Path separator. (Separates items in search paths)</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- alias type Visibility: default -->
<element name="TFileRec">
<short>Record describing an untyped file.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- alias type Visibility: default -->
<element name="TTextRec">
<short>Record describing a text file.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- array type Visibility: default -->
<element name="TCaseTranslationTable">
<short>Type for case conversion tables.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="UpperCaseTable">
<short>Table for conversion of characters to uppercase.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="LowerCaseTable">
<short>Table for conversion of characters to lowercase.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="DateSeparator">
<short>Date separator character (subject to locale).</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="ShortDateFormat">
<short>Short Date Format string (subject to locale).</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="LongDateFormat">
<short>Long date format string (subject to locale).</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="ShortMonthNames">
<short>Names of months, abbreviated form.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="LongMonthNames">
<short>Full names of months.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="ShortDayNames">
<short>Names of days, abbreviated form.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="LongDayNames">
<short>Full names of days.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="ShortTimeFormat">
<short>Short time format string (subject to locale).</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="LongTimeFormat">
<short>Long time format string (subject to locale)</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="TimeSeparator">
<short>Time separator character.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="TimeAMString">
<short>AM indicator string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="TimePMString">
<short>PM indicator string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="DecimalSeparator">
<short>Decimal point separator.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="ThousandSeparator">
<short>Thousand grouping character.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="CurrencyDecimals">
<short>Number of decimals in currency amounts.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="CurrencyFormat">
<short>Format string for currencies.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="NegCurrFormat">
<short>Format string for negative currencies.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="CurrencyString">
<short>Name of currency.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strlen">
<short>Length of a null-terminated string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strcopy">
<short>Copy a null-terminated string</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strlcopy">
<short>Copy a null-terminated string, limited in length.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strecopy">
<short>Copy a null-terminated string, return a pointer to the end.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strend">
<short>Return a pointer to the end of a null-terminated string</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strcat">
<short>Concatenate 2 null-terminated strings.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strcomp">
<short>Compare 2 null-terminated strings, case sensitive.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strlcomp">
<short>Compare limited number of characters of 2 null-terminated strings </short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="stricomp">
<short>Compare 2 null-terminated strings, case insensitive.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strmove">
<short>Move a null-terminated string to new location.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strlcat">
<short>Concatenate 2 null-terminated strings, with length boundary.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strscan">
<short>Find first occurrence of a character in a null-terminated string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strrscan">
<short>Find last occurrence of a character in a null-terminated string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strlower">
<short>Convert null-terminated string to all-lowercase.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strupper">
<short>Convert null-terminated string to all-uppercase</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strlicomp">
<short>Compare limited number of characters in 2 null-terminated strings,
ignoring case.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strpos">
<short>Find position of one null-terminated substring in another.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="strnew">
<short>Allocate room for new null-terminated string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiCompareFileName">
<short>Compare 2 filenames.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiLowerCaseFileName">
<short>Convert filename to lowercase.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiUpperCaseFileName">
<short>Convert filename to uppercase.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiPos">
<short>Return Position of one ansistring in another.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiStrPos">
<short>Return position of one null-terminated substring in another</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiStrRScan">
<short>Find last occurrence of a character in a null-terminated string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="AnsiStrScan">
<short>Find first occurrence of a character in a null-terminated string.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- constant Visibility: default -->
<element name="DirSeparators">
<short>Characters that are known directory separators.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="IncludeTrailingPathDelimiter">
<short>Add trailing directory separator to a pathname, if needed.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="IncludeTrailingBackslash">
<short>Add trailing directory separator to a pathname, if needed.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ExcludeTrailingBackslash">
<short>Strip trailing directory separator from a pathname, if needed.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="ExcludeTrailingPathDelimiter">
<short>Strip trailing directory separator from a pathname, if needed.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="IsPathDelimiter">
<short>Is the character at the given position a pathdelimiter ?</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="SameFileName">
<short>Are two filenames referring to the same file ?</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- record type Visibility: default -->
<element name="TSearchRec">
<short>Record describing a search handle or result </short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TSearchRec.Time">
<short>Timestamp of the file.</short>
</element>
<!-- variable Visibility: default -->
<element name="TSearchRec.Size">
<short>Size of the file.</short>
</element>
<!-- variable Visibility: default -->
<element name="TSearchRec.Attr">
<short>Attributes of the file.</short>
</element>
<!-- variable Visibility: default -->
<element name="TSearchRec.Name">
<short>File name (no directory part)</short>
</element>
<!-- variable Visibility: default -->
<element name="TSearchRec.ExcludeAttr">
<short>Attributes to exclude from search (do not use)</short>
</element>
<!-- variable Visibility: default -->
<element name="TSearchRec.FindHandle">
<short>Internal OS handle. Do not use.</short>
</element>
<!-- constant Visibility: default -->
<element name="faReadOnly">
<short>Read-Only file.</short>
</element>
<!-- constant Visibility: default -->
<element name="faHidden">
<short>Hidden file.</short>
</element>
<!-- constant Visibility: default -->
<element name="faSysFile">
<short>System file (Dos/Windows only)</short>
</element>
<!-- constant Visibility: default -->
<element name="faVolumeId">
<short>Volume id (Dos/Windows only)</short>
</element>
<!-- constant Visibility: default -->
<element name="faDirectory">
<short>File is a directory</short>
</element>
<!-- constant Visibility: default -->
<element name="faArchive">
<short>Archive bit is set</short>
</element>
<!-- constant Visibility: default -->
<element name="faAnyFile">
<short>Match any file</short>
</element>
<!-- constant Visibility: default -->
<element name="fmOpenRead">
<short>Open file in read-only mode</short>
</element>
<!-- constant Visibility: default -->
<element name="fmOpenWrite">
<short>Open file in write-only mode</short>
</element>
<!-- constant Visibility: default -->
<element name="fmOpenReadWrite">
<short>Open file in read/write mode.</short>
</element>
<!-- constant Visibility: default -->
<element name="fmShareCompat">
<short>Open file in DOS share-compatibility mode</short>
</element>
<!-- constant Visibility: default -->
<element name="fmShareExclusive">
<short>Lock file for exclusive use</short>
</element>
<!-- constant Visibility: default -->
<element name="fmShareDenyWrite">
<short>Lock file so other processes can only read.</short>
</element>
<!-- constant Visibility: default -->
<element name="fmShareDenyRead">
<short>Lock file so other processes cannot read.</short>
</element>
<!-- constant Visibility: default -->
<element name="fmShareDenyNone">
<short>Do not lock file.</short>
</element>
<!-- constant Visibility: default -->
<element name="fsFromBeginning">
<short>Start seek operation from beginning of file.</short>
</element>
<!-- constant Visibility: default -->
<element name="fsFromCurrent">
<short>Start seek operation from current position in file.</short>
</element>
<!-- constant Visibility: default -->
<element name="fsFromEnd">
<short>Start seek operation from end of file.</short>
</element>
<!-- function Visibility: default -->
<element name="DirectoryExists">
<short>Check whether a directory exists in the file system.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="FileIsReadOnly">
<short>Check whether a file is read-only.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="GetFileHandle">
<short>Extract OS handle from an untyped file or text file.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="InterLockedIncrement">
<short>Thread-safe integer increment.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="InterLockedDecrement">
<short>Thread-safe integer decrement</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="InterLockedExchange">
<short>Thread-safe exchange of 2 values.</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function Visibility: default -->
<element name="InterLockedExchangeAdd">
<short>Thread-safe exchange of 2 values</short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="FreeAndNil">
<short>Free object if needed, and set object reference to <var>Nil</var></short>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
</module>
</package>
</fpdoc-descriptions>