Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Приемы Вызова Программ    >>    exenocon
   
 
 Запуск программ с перенаправлением вывода в файл  Руслан Нурисламов 22.11.1994

Переадресация вывода в файл средствами DOS



1k 
 

From: "Ruslan R. Nurislamov" <hornet@civt.kazan.su> Organization: Computer Center of the Kazan State University Не знаю то ли нужно, но вот, шлю. Кстати - это я уже высылал - в TPU-шке A_DESIGN оная весч была ... --- My adresses : RELCOM : hornet@civt.kazan.su INTERNET : hornet@alpha.ksu.ras.ru {> Cut here. FileName= EXENOCON.PAS } { Вызов программы с перенаправлением вывода в файл } Procedure ExecNoCon(Prog,Param,ToOut : String); Var NDir : Array[1..80] of Byte; SSt : String; I : Integer; F : Text; Reg : Registers; Desc, OldDisc : Word; Begin Sst:=ToOut; Sst:=Sst+#0; For I:=1 To Length(Sst) Do Ndir[I]:=Ord(Sst[I]); Assign(F,ToOut); { сие для создания файла нулевой длины } Rewrite(F); Close(F); {Open File} Reg.AH:=$3D; { открытие файла средствами DOS, дальше все прозрачно } Reg.AL:=2; Reg.DS:=Seg(Ndir); Reg.DX:=Ofs(Ndir); MsDos(Reg); Desc:=Reg.AX; {Duplicate Discriptor} Reg.AH:=$45; Reg.BX:=1; MsDos(Reg); Olddisc:=Reg.AX; {ReDirect Discriptor} Reg.AH:=$46; Reg.BX:=Desc; Reg.CX:=1; MsDos(Reg); {Close File} Reg.AH:=$3E; Reg.BX:=Desc; MsDos(Reg); {Execute File} SwapVectors; Exec(Prog,Param); SwapVectors; {Stay Old Descriptor} Reg.AH:=$46; Reg.BX:=Olddisc; Reg.CX:=1; MsDos(Reg); {Close Olddisc} Reg.AH:=$3E; Reg.BX:=Olddisc; MsDos(Reg); End;