% % $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. % \chapter{The SYSUTILS unit.} This chapter describes the \file{sysutils} unit. The \var{sysutils} unit was largely written by Gertjan Schouten, and completed by michael Van Canneyt. It aims to be compatible to the Delphi sysutils unit, but in contrast with the latter, it is designed to work on multiple platforms. This chapter starts out with a definition of all types and constants that are defined, followed by a complete explanation of each function. \section{Constants and types} The following general-purpose constants are defined: \begin{verbatim} const SecsPerDay = 24 * 60 * 60; // Seconds and milliseconds per day MSecsPerDay = SecsPerDay * 1000; DateDelta = 693594; // Days between 1/1/0001 and 12/31/1899 Eoln = #10; \end{verbatim} The following types are used frequently in date and time functions. They are the same on all platforms. \begin{verbatim} type TSystemTime = record Year, Month, Day: word; Hour, Minute, Second, MilliSecond: word; end ; TDateTime = double; TTimeStamp = record Time: integer; { Number of milliseconds since midnight } Date: integer; { One plus number of days since 1/1/0001 } end ; \end{verbatim} The following type is used in the \seep{FindFirst},\seep{FindNext} and \seep{FindClose} functions. The \var{win32} version differs from the other versions. If code is to be portable, that part shouldn't be used. \begin{verbatim} Type THandle = Longint; TSearchRec = Record Time,Size, Attr : Longint; Name : TFileName; ExcludeAttr : Longint; FindHandle : THandle; {$ifdef Win32} FindData : TWin32FindData; {$endif} end; \end{verbatim} The following constants are file-attributes that need to be matched in the findfirst call. \begin{verbatim} Const faReadOnly = $00000001; faHidden = $00000002; faSysFile = $00000004; faVolumeId = $00000008; faDirectory = $00000010; faArchive = $00000020; faAnyFile = $0000003f; \end{verbatim} The following constants can be used in the \seef{FileOpen} call. \begin{verbatim} Const fmOpenRead = $0000; fmOpenWrite = $0001; fmOpenReadWrite = $0002; \end{verbatim} The following variables are used in the case translation routines. \begin{verbatim} type TCaseTranslationTable = array[0..255] of char; var UpperCaseTable: TCaseTranslationTable; LowerCaseTable: TCaseTranslationTable; \end{verbatim} The initialization code of the \file{sysutils} unit fills these tables with the appropriate values. For the win32 and go32v2 versions, this information is obtained from the operating system. The following constants control the formatting of dates. For the Win32 version of the \file{sysutils} unit, these constants are set according to the internationalization settings of Windows by the initialization code of the unit. \begin{verbatim} Const DateSeparator: char = '-'; ShortDateFormat: string = 'd/m/y'; LongDateFormat: string = 'dd" "mmmm" "yyyy'; ShortMonthNames: array[1..12] of string[128] = ('Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec'); LongMonthNames: array[1..12] of string[128] = ('January','February','March','April', 'May','June','July','August', 'September','October','November','December'); ShortDayNames: array[1..7] of string[128] = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); LongDayNames: array[1..7] of string[128] = ('Sunday','Monday','Tuesday','Wednesday', 'Thursday','Friday','Saturday'); \end{verbatim} The following constants control the formatting of times. For the Win32 version of the \file{sysutils} unit, these constants are set according to the internationalization settings of Windows by the initialization code of the unit. \begin{verbatim} Const ShortTimeFormat: string = 'hh:nn'; LongTimeFormat: string = 'hh:nn:ss'; TimeSeparator: char = ':'; TimeAMString: string[7] = 'AM'; TimePMString: string[7] = 'PM'; \end{verbatim} The following constants control the formatting of currencies and numbers. For the Win32 version of the \file{sysutils} unit, these constants are set according to the internationalization settings of Windows by the initialization code of the unit. \begin{verbatim} Const DecimalSeparator : Char = '.'; ThousandSeparator : Char = ','; CurrencyDecimals : Byte = 2; CurrencyString : String[7] = '$'; { Format to use when formatting currency : 0 = $1 1 = 1$ 2 = $ 1 3 = 1 $ 4 = Currency string replaces decimal indicator. e.g. 1$50 } CurrencyFormat : Byte = 1; { Same as above, only for negative currencies: 0 = ($1) 1 = -$1 2 = $-1 3 = $1- 4 = (1$) 5 = -1$ 6 = 1-$ 7 = 1$- 8 = -1 $ 9 = -$ 1 10 = $ 1- } NegCurrFormat : Byte = 5; \end{verbatim} The following types are used in various string functions. \begin{verbatim} type PString = ^String; TFloatFormat = (ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency); \end{verbatim} The following constants are used in the file name handling routines. Do not use a slash of backslash character directly as a path separator; instead use the \var{OsDirSeparator} character. \begin{verbatim} Const DirSeparators : set of char = ['/','\']; {$ifdef Linux} OSDirSeparator = '/'; {$else} OsDirSeparator = '\'; {$endif} \end{verbatim} \section{Date and time functions} \subsection{Date and time formatting characters} 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: \begin{description} \item[c] : shortdateformat + ' ' + shorttimeformat \item[d] : day of month \item[dd] : day of month (leading zero) \item[ddd] : day of week (abbreviation) \item[dddd] : day of week (full) \item[ddddd] : shortdateformat \item[dddddd] : longdateformat \item[m] : month \item[mm] : month (leading zero) \item[mmm] : month (abbreviation) \item[mmmm] : month (full) \item[y] : year (four digits) \item[yy] : year (two digits) \item[yyyy] : year (with century) \item[h] : hour \item[hh] : hour (leading zero) \item[n] : minute \item[nn] : minute (leading zero) \item[s] : second \item[ss] : second (leading zero) \item[t] : shorttimeformat \item[tt] : longtimeformat \item[am/pm] : use 12 hour clock and display am and pm accordingly \item[a/p] : use 12 hour clock and display a and p accordingly \item[/] : insert date seperator \item[:] : insert time seperator \item["xx"] : literal text \item['xx'] : literal text \end{description} \begin{function}{Date} \Declaration Function Date: TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{DateTimeToFileDate} \Declaration Function DateTimeToFileDate(DateTime : TDateTime) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{DateTimeToStr} \Declaration Function DateTimeToStr(DateTime: TDateTime): string; \Description \Errors \SeeAlso \end{function} \begin{procedure}{DateTimeToString} \Declaration Procedure DateTimeToString(var Result: string; const FormatStr: string; const DateTime: TDateTime); \Description \Errors \SeeAlso \end{procedure} \begin{procedure}{DateTimeToSystemTime} \Declaration Procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); \Description \Errors \SeeAlso \end{procedure} \begin{function}{DateTimeToTimeStamp} \Declaration Function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp; \Description \Errors \SeeAlso \end{function} \begin{function}{DateToStr} \Declaration Function DateToStr(Date: TDateTime): string; \Description \Errors \SeeAlso \end{function} \begin{function}{DayOfWeek} \Declaration Function DayOfWeek(DateTime: TDateTime): integer; \Description \Errors \SeeAlso \end{function} \begin{procedure}{DecodeDate} \Declaration Procedure DecodeDate(Date: TDateTime; var Year, Month, Day: word); \Description \Errors \SeeAlso \end{procedure} \begin{procedure}{DecodeTime} \Declaration Procedure DecodeTime(Time: TDateTime; var Hour, Minute, Second, MilliSecond: word); \Description \Errors \SeeAlso \end{procedure} \begin{function}{EncodeDate} \Declaration Function EncodeDate(Year, Month, Day :word): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{EncodeTime} \Declaration Function EncodeTime(Hour, Minute, Second, MilliSecond:word): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{FileDateToDateTime} \Declaration Function FileDateToDateTime(Filedate : Longint) : TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{FormatDateTime} \Declaration Function FormatDateTime(FormatStr: string; DateTime: TDateTime):string; \Description \Errors \SeeAlso \end{function} \begin{function}{IncMonth} \Declaration Function IncMonth(const DateTime: TDateTime; NumberOfMonths: integer): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{IsLeapYear} \Declaration Function IsLeapYear(Year: Word): boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{MSecsToTimeStamp} \Declaration Function MSecsToTimeStamp(MSecs: Comp): TTimeStamp; \Description \Errors \SeeAlso \end{function} \begin{function}{Now} \Declaration Function Now: TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{StrToDate} \Declaration Function StrToDate(const S: string): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{StrToDateTime} \Declaration Function StrToDateTime(const S: string): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{StrToTime} \Declaration Function StrToTime(const S: string): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{SystemTimeToDateTime} \Declaration Function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{Time} \Declaration Function Time: TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{TimeStampToDateTime} \Declaration Function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime; \Description \Errors \SeeAlso \end{function} \begin{function}{TimeStampToMSecs} \Declaration Function TimeStampToMSecs(const TimeStamp: TTimeStamp): comp; \Description \Errors \SeeAlso \end{function} \begin{function}{TimeToStr} \Declaration Function TimeToStr(Time: TDateTime): string; \Description \Errors \SeeAlso \end{function} \section{Disk functions} \begin{function}{CreateDir} \Declaration Function CreateDir(Const NewDir : String) : Boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{DiskFree} \Declaration Function DiskFree(Drive : Byte) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{DiskSize} \Declaration Function DiskSize(Drive : Byte) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{GetCurrentDir} \Declaration Function GetCurrentDir : String; \Description \Errors \SeeAlso \end{function} \begin{function}{RemoveDir} \Declaration Function RemoveDir(Const Dir : String) : Boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{SetCurrentDir} \Declaration Function SetCurrentDir(Const NewDir : String) : Boolean; \Description \Errors \SeeAlso \end{function} \section{File handling functions} \begin{function}{ChangeFileExt} \Declaration Function ChangeFileExt(const FileName, Extension: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{DeleteFile} \Declaration Function DeleteFile(Const FileName : String) : Boolean; \Description \Errors \SeeAlso \end{function} \begin{procedure}{DoDirSeparators} \Declaration Procedure DoDirSeparators(Var FileName : String); \Description \Errors \SeeAlso \end{procedure} \begin{function}{ExpandFileName} \Declaration Function ExpandFileName(Const FileName : string): String; \Description \Errors \SeeAlso \end{function} \begin{function}{ExpandUNCFileName} \Declaration Function ExpandUNCFileName(Const FileName : string): String; \Description \Errors \SeeAlso \end{function} \begin{function}{ExtractFileDir} \Declaration Function ExtractFileDir(Const FileName : string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{ExtractFileDrive} \Declaration Function ExtractFileDrive(const FileName: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{ExtractFileExt} \Declaration Function ExtractFileExt(const FileName: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{ExtractFileName} \Declaration Function ExtractFileName(const FileName: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{ExtractFilePath} \Declaration Function ExtractFilePath(const FileName: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{ExtractRelativepath} \Declaration Function ExtractRelativepath(Const BaseName,DestNAme : String): String; \Description \Errors \SeeAlso \end{function} \begin{function}{FileAge} \Declaration Function FileAge(Const FileName : String): Longint; \Description \Errors \SeeAlso \end{function} \begin{procedure}{FileClose} \Declaration Procedure FileClose(Handle : Longint); \Description \Errors \SeeAlso \end{procedure} \begin{function}{FileCreate} \Declaration Function FileCreate(Const FileName : String) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileExists} \Declaration Function FileExists(Const FileName : String) : Boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{FileGetAttr} \Declaration Function FileGetAttr(Const FileName : String) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileGetDate} \Declaration Function FileGetDate(Handle : Longint) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileOpen} \Declaration Function FileOpen(Const FileName : string; Mode : Integer) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileRead} \Declaration Function FileRead(Handle : Longint; Var Buffer; Count : longint) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileSearch} \Declaration Function FileSearch(Const Name, DirList : String) : String; \Description \Errors \SeeAlso \end{function} \begin{function}{FileSeek} \Declaration Function FileSeek(Handle,Offset,Origin : Longint) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileSetAttr} \Declaration Function FileSetAttr(Const Filename : String; Attr: longint) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileSetDate} \Declaration Function FileSetDate(Handle,Age : Longint) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FileTruncate} \Declaration Function FileTruncate(Handle,Size: Longint) : boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{FileWrite} \Declaration Function FileWrite(Handle : Longint; Var Buffer; Count : Longint) : Longint; \Description \Errors \SeeAlso \end{function} \begin{procedure}{FindClose} \Declaration Procedure FindClose(Var F : TSearchrec); \Description \Errors \SeeAlso \end{procedure} \begin{function}{FindFirst} \Declaration Function FindFirst(Const Path : String; Attr : Longint; Var Rslt : TSearchRec) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{FindNext} \Declaration Function FindNext(Var Rslt : TSearchRec) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{GetDirs} \Declaration Function GetDirs(Var DirName : String; Var Dirs : Array of pchar) : Longint; \Description \Errors \SeeAlso \end{function} \begin{function}{RenameFile} \Declaration Function RenameFile(Const OldName, NewName : String) : Boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{SetDirSeparators} \Declaration Function SetDirSeparators(Const FileName : String) : String; \Description \Errors \SeeAlso \end{function} \section{PChar functions} \begin{function}{StrAlloc} \Declaration Function StrAlloc(Size: cardinal): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrBufSize} \Declaration Function StrBufSize(var Str: PChar): cardinal; \Description \Errors \SeeAlso \end{function} \begin{procedure}{StrDispose} \Declaration Procedure StrDispose(var Str: PChar); \Description \Errors \SeeAlso \end{procedure} \begin{function}{StrPCopy} \Declaration Function StrPCopy(Dest: PChar; Source: string): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrPLCopy} \Declaration Function StrPLCopy(Dest: PChar; Source: string; MaxLen: cardinal): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrPas} \Declaration Function StrPas(Str: PChar): string; \Description \Errors \SeeAlso \end{function} \begin{function}{StrCat} \Declaration Function StrCat(dest,source : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrComp} \Declaration Function StrComp(str1,str2 : pchar) : longint; \Description \Errors \SeeAlso \end{function} \begin{function}{StrCopy} \Declaration Function StrCopy(dest,source : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrECopy} \Declaration Function StrECopy(dest,source : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrEnd} \Declaration Function StrEnd(p : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrIComp} \Declaration Function StrIComp(str1,str2 : pchar) : longint; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLCat} \Declaration Function StrLCat(dest,source : pchar;l : longint) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLComp} \Declaration Function StrLComp(str1,str2 : pchar;l : longint) : longint; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLCopy} \Declaration Function StrLCopy(dest,source : pchar;maxlen : longint) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLen} \Declaration Function StrLen(p : pchar) : longint; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLIComp} \Declaration Function StrLIComp(str1,str2 : pchar;l : longint) : longint; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLower} \Declaration Function strlower(p : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrMove} \Declaration Function StrMove(dest,source : pchar;l : longint) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrNew} \Declaration Function StrNew(p : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrPos} \Declaration Function StrPos(str1,str2 : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrRScan} \Declaration Function StrRScan(p : pchar;c : char) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrScan} \Declaration Function StrScan(p : pchar;c : char) : pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrUpper} \Declaration Function StrUpper(p : pchar) : pchar; \Description \Errors \SeeAlso \end{function} \section{String functions} \begin{function}{AdjustLineBreaks} \Declaration Function AdjustLineBreaks(const S: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiCompareStr} \Declaration Function AnsiCompareStr(const S1, S2: string): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiCompareText} \Declaration Function AnsiCompareText(const S1, S2: string): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiExtractQuotedStr} \Declaration Function AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiLastChar} \Declaration Function AnsiLastChar(const S: string): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiLowerCase} \Declaration Function AnsiLowerCase(const s: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiQuotedStr} \Declaration Function AnsiQuotedStr(const S: string; Quote: char): string; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiStrComp} \Declaration Function AnsiStrComp(S1, S2: PChar): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiStrIComp} \Declaration Function AnsiStrIComp(S1, S2: PChar): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiStrLComp} \Declaration Function AnsiStrLComp(S1, S2: PChar; MaxLen: cardinal): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiStrLIComp} \Declaration Function AnsiStrLIComp(S1, S2: PChar; MaxLen: cardinal): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiStrLast} \Declaration Function AnsiStrLast(Str: PChar): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{CharAnsiStrLower} \Declaration Function AnsiStrLower(Str: PChar): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiStrUpper} \Declaration Function AnsiStrUpper(Str: PChar): PChar; \Description \Errors \SeeAlso \end{function} \begin{function}{AnsiUpperCase} \Declaration Function AnsiUpperCase(const s: string): string; \Description \Errors \SeeAlso \end{function} \begin{procedure}{AppendStr} \Declaration Procedure AppendStr(var Dest: PString; const S: string); \Description \Errors \SeeAlso \end{procedure} \begin{procedure}{AssignStr} \Declaration Procedure AssignStr(var P: PString; const S: string); \Description \Errors \SeeAlso \end{procedure} \begin{function}{BCDToInt} \Declaration Function BCDToInt(Value: integer): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{CompareMem} \Declaration Function CompareMem(P1, P2: Pointer; Length: cardinal): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{CompareStr} \Declaration Function CompareStr(const S1, S2: string): Integer; \Description \Errors \SeeAlso \end{function} \begin{function}{CompareText} \Declaration Function CompareText(const S1, S2: string): integer; \Description \Errors \SeeAlso \end{function} \begin{procedure}{DisposeStr} \Declaration Procedure DisposeStr(S: PString); \Description \Errors \SeeAlso \end{procedure} \begin{function}{FloatToStr} \Declaration Function FloatToStr(Value: Extended): String; \Description \Errors \SeeAlso \end{function} \begin{function}{FloatToStrF} \Declaration Function FloatToStrF(Value: Extended; format: TFloatFormat; Precision, Digits: Integer): String; \Description \Errors \SeeAlso \end{function} \begin{procedure}{FmtStr} \Declaration Procedure (Var Res: String; Const Fmt : String; Const args: Array of const); \Description \Errors \SeeAlso \end{procedure} \begin{function}{Format} \Declaration Function Format(Const Fmt : String; const Args : Array of const) : String; \Description \Errors \SeeAlso \end{function} \begin{function}{FormatBuf} \Declaration Function FormatBuf(Var Buffer; BufLen : Cardinal; Const Fmt; fmtLen : Cardinal; Const Args : Array of const) : Cardinal; \Description \Errors \SeeAlso \end{function} \begin{function}{IntToHex} \Declaration Function IntToHex(Value: integer; Digits: integer): string; \Description \Errors \SeeAlso \end{function} \begin{function}{IntToStr} \Declaration Function IntToStr(Value: integer): string; \Description \Errors \SeeAlso \end{function} \begin{function}{IsValidIdent} \Declaration Function IsValidIdent(const Ident: string): boolean; \Description \Errors \SeeAlso \end{function} \begin{function}{LeftStr} \Declaration Function LeftStr(const S: string; Count: integer): string; \Description \Errors \SeeAlso \end{function} \begin{function}{LoadStr} \Declaration Function LoadStr(Ident: integer): string; \Description \Errors \SeeAlso \end{function} \begin{function}{LowerCase} \Declaration Function LowerCase(const s: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{NewStr} \Declaration Function NewStr(const S: string): PString; \Description \Errors \SeeAlso \end{function} \begin{function}{QuotedStr} \Declaration Function QuotedStr(const S: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{RightStr} \Declaration Function RightStr(const S: string; Count: integer): string; \Description \Errors \SeeAlso \end{function} \begin{function}{StrFmt} \Declaration Function StrFmt(Buffer,Fmt : PChar; Const args: Array of const) : Pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrLFmt} \Declaration Function StrLFmt(Buffer : PCHar; Maxlen : Cardinal;Fmt : PChar; Const args: Array of const) : Pchar; \Description \Errors \SeeAlso \end{function} \begin{function}{StrToInt} \Declaration Function StrToInt(const s: string): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{StrToIntDef} \Declaration Function StrToIntDef(const S: string; Default: integer): integer; \Description \Errors \SeeAlso \end{function} \begin{function}{Trim} \Declaration Function Trim(const S: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{TrimLeft} \Declaration Function TrimLeft(const S: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{TrimRight} \Declaration Function TrimRight(const S: string): string; \Description \Errors \SeeAlso \end{function} \begin{function}{UpperCase} \Declaration Function UpperCase(const s: string): string; \Description \Errors \SeeAlso \end{function}