Miscellaneous "I got the bill for my surgery. Now I know why those doctors were wearing masks." James H. Barrie The totMISC unit contains a grab-bag of miscellaneous procedures and functions that don't logically fit anywhere else in the Toolkit! One day they may grow up to have their own units. Some of these routines are required by other parts of the Toolkit, and may be of little value to you. Nonetheless, they are here if you need them. The procedures and functions are organized into three categories: File, Printer and Misc. File Routines The following file related functions are included in the unit: Exist(Filename:string):boolean; This function returns true if a file can be found. The function is passed one parameter indicating the name of the file to look for. The filename may include an optional drive or path, and even filemasks are supported. Copyfile(Sourcefile,Targetfile:string):byte; This function physically copies a file like the DOS copy command. The function is passed two string parameters: the first string is the name of the source file, and the second is the name of the target file. If a file with the same name as Target already exists, it will be overwrit- ten. The function returns one of the following byte values: 0 successful 1 source and target the same 2 cannot open source 3 unable to create target 4 error during copy The function uses a small 2048 byte buffer to copy the file. If you want faster file copying, increase the buffer size by modifying the variable declaration in the CopyFile function. FSize(Filename:string): longint; This function returns a longint indicating the size of a file in bytes. The function is passed a single string parameter indicating the name of the file. The name may optionally include a drive or path qualifier. If the file is not found, a -1 is returned. 15-2 User's Guide -------------------------------------------------------------------------------- FileDrive(Full:string): string; This function extracts and returns the drive letter (without the colon) from a filename. The function is passed one string parameter indicating the name of the file. If the name does not include a drive, a null is returned, i.e. ''. FileDirectory(Full:string): string; This function extracts the directory path (without the drive letter) from a filename. The function is passed one string parameter indicating the name of the file. If the name does not include a path, a null is returned, i.e. ''. The trailing backslash is always removed. FileName(Full:string): string; This function extracts the file name (excluding the extension) from a filename. The function is passed one string parameter indicating the name of the file. If the string does not include a name, a null is returned, i.e. ''. FileExt(Full:string): string; This function extracts the file extension (excluding the period) from a filename. The function is passed one string parameter indicating the name of the file. If the string does not include an extension, a null is returned, i.e. ''. SlashedDirectory(Dir:string): string; This function is useful for building fully-qualified filenames. The function is passed one string parameter indicating the directory. The same directory is returned, with a backslash added if the string did not already terminate with a backslash or colon. Printer Routines The unit includes the following printer-related procedures and func- tions: PrinterStatus: byte; Miscellaneous 15-3 -------------------------------------------------------------------------------- This function is designed to indicate if a parallel printer is attached and on-line. The global variable LPTport indicates which port to test. Set LPTport to 0 for LPT1 (default), 1 for LPT2, etc. The function returns one of the following byte values to indicate the status of the printer: 0 printer ready 1 no paper 2 off line 3 busy 4 undetermined error AlternatePrinterStatus: byte; This function is very similar in operation to PrinterStatus but uses a slightly different technique. If you have problems using PrinterStatus with some wierdo printer, try this function instead. PrinterReady: boolean; This functions returns true if a printer is detected as being on-line and ready. ResetPrinter; These procedure should reset any printer back to its default (boot-up) settings. PrintScreen; This procedure emulates the user pressing the PrtScr key, and dumps the visible display to the printer port. Misc. Routines You know you're in trouble when you are reading the Miscellaneous sec- tion in the Miscellaneous chapter! Listed below are the remaining Toolkit procedures and functions: Beep; You guessed! This function emits a brief, but nonetheless irritating, beep from the PC speaker. CurrentTime: string; 15-4 User's Guide -------------------------------------------------------------------------------- This function returns a formatted string representing the current time according to the PCs internal clock. The string uses the twelve hour format HH:MM:SS a.m./p.m. Swap(var A,B:longint); This procedure is passed two longint variable parameters. The procedure swaps the contents of the two variables, i.e. A is assigned the value of B, and B is assigned the value of A. WithinRange(Min,Max,Test:longint):boolean; This function is passed three longint parameters. The function returns true if the third value is greater than or equal to the first parameter and less than or equal to the second parameter. Be sure to check the README file for any routines that may have been added to totMISC since the manual was printed.