home *** CD-ROM | disk | FTP | other *** search
- {
- Here's a neat little ditty I converted from a C++ tip I saw in a mag a few
- years ago. It tests to see if its own output has been redirected and
- returns a 1 if TRUE (redirected) or a 0 if FALSE (not redirected). This
- function includes a sample prog that demonstrates its use. SIDE NOTE: I
- put this function in the U_FILE.pas.tpu for use with all of my home-grown
- file related functions and procedures.
-
- TEST WITH: Test_Red (enter)
- [you should see a NOT REDIRECTED msg, 10 lines and a FINISHED msg.]
-
- TEST WITH: Test_Red > this.dat (enter)
- [you should see a REDIRECTED msg, (no lines) and a FINISHED msg
- and the output of the lines will be in the this.dat file]
- }
-
- program test_red;
-
- {$A+,B-,D-,E-,F-,G-,I+,L-,N-,O-,P-,Q-,R-,S+,T-,V+,X-}
- {$M 1024,0,655360}
-
- {*******************************************************************!HDR**
- ** Function Name: fn_bRedirected()
- ** Description : Determines if output has been redirected;
- ** Returns : Integer to be treated as boolean;
- ** Calls :
- ** Special considerations:
- ** Modification history:
- ** Created: 11/03/93 20:23
- *********************************************************************!END}
-
- function fn_bRedirected : Integer; Assembler; {Treated as BOOLEAN}
- asm
- push ds
- mov ax, prefixseg
- mov ds, ax
- xor bx, bx
- les bx, [bx + $34]
- mov al, es:[bx]
- mov ah, es:[bx +1]
- pop ds
- cmp al, ah
- mov ax, 1
- jne @_exit
- xor ax, ax
- @_exit:
- {mov @Result, AX}
- end;
-
- var
- Count : Byte;
- hOutFile : text;
-
- begin
- Assign(hOutFile, 'CON');
- ReWrite(hOutFile);
- if not (boolean(fn_bRedirected)) then
- writeln(hOutFile, 'Not Redirected')
- else
- writeln(hOutFile, 'Please wait while redirection is in progress');
- for Count := 1 to 10 do
- writeln('Line ', Count : 2);
- writeln(hOutFile, 'Finished!');
- end.