Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Экранные Средства    >>    outfilt1
   
 
 OutFilt 1.0 - Duplicate Screen Output to a File  Robert Rothenburg 07.07.1994

This unit allows you to "invisibly" output to the screen, with an option to enable screen pausing or to "tee" the output to a file. To use, change all references to Write and WriteLn to fWrite and fWriteLn, repectively. Note that fWrite and fWriteLn only accept strings, so numbers will have to be changed to strings beforehand.



4k 
 

OutFilt v1.0 by Robert Rothenburg Walking-Owl, 1994 Public Domain ========================================================================== This unit allows you to "invisibly" output to the screen, with an option to enable screen pausing or to "tee" the output to a file. To use, change all references to Write and WriteLn to fWrite and fWriteLn, repectively. Note that fWrite and fWriteLn only accept strings, so numbers will have to be changed to strings beforehand. If the PauseBetweenScreens variable is set to "True", an automatic pause will occur every 24 lines. OutFilt seems to work correctly for screen pauses for line-wraps as well as for newlines, and should correctly determine the number of columns for the given graphics mode: however this version always assumes a page to have 25 lines. ----- If you want to duplicate the output to a file, do the following: Assign(DuplicateFile, FileName ); {$I-} ReSet(DuplicateFile,1); if IoResult<>0 { if file doesn't exit, create it } then ReWrite(DuplicateFile,1); Seek(DuplicateFile,FileSize(DuplicateFile)); {$I+} CopyOutputToFile := True; And remember at the end of your program to close DuplicateFile. ----- If you want to use an imbedded help-screen, use the following: program ImbedDemo(input,output); uses OutFilt; function ImbeddedText: Pointer; assembler; asm mov dx, cs mov ax, offset @Text jmp @Exit @Text: db 'Imbedded Text Message ... as much text as you want!',13,10 db '(well, about 64k of text,',13,10 db ' but that is A LOT for a help screen!)',13,10 db 0 { end of text marker } @Exit: end; procedure WriteImbeddedText; var p: ^Char; begin PauseBetweenScreens := True; p := ImbeddedText; repeat fWrite(p^); I