Contributor: PETER LOUWEN
{
 BP> Is there some way I can use interrupts or whatever to detect whether
 BP> the "file name" contained in the S string variable is a device name
 BP> (such as "CON", "LPT1", "AUX", etc) or not?
Yes: use the ubiquitious INT 21ドル. }
FUNCTION IsDevice(CONST Fname: PathStr): boolean;
{ -- Returns TRUE if named file is actually a device.
 -- Example: IsDevice('CON') = TRUE, IsDevice(paramstr(0)) = FALSE.
 -- N.B.: returns FALSE if FName is a non-existent file. }
VAR Regs: Registers;
 F : FILE;
 FH : word ABSOLUTE F;
BEGIN IsDevice := FALSE;
 assign(F, Fname);
 reset(F, 1);
 IF IOresult  0 THEN exit;
 WITH Regs
 DO BEGIN { -- Get information about file: }
 AX := 4400ドル;
 BX := FH;
 MsDos(Regs);
 IF NOT odd(Flags) AND (DL AND 80ドル  0)
 THEN IsDevice := TRUE
 END;
 close(F);
 IF IOresult  0 THEN ;
END;


AltStyle によって変換されたページ (->オリジナル) /