Среда, 16 Июля 2014 г. 04:58
+ в цитатник
Wolverrum все записи автора
Rus: Реализация программы ptime средствами FPC
Eng: PTime tool equivalent in Free Pascal
code:
{$Mode ObjFPC}
{$AppType Console}
{$H+}
USES
Classes,
SysUtils,
DateUtils,
Process,
CmdLine;
CONST
szBuffer = 256;
VAR
p: TProcess;
s: String;
b: ARRAY [0 .. szBuffer] OF Byte;
r, j: Cardinal;
a: Boolean;
timeStart, timeEnd: TDateTime;
BEGIN
a := False;
p := TProcess.Create(NIL);
WITH p DO
BEGIN
CommandLine := CLCompose();
Options := [poUsePipes];
timeStart := Now();
Execute()
END;
REPEAT
IF p.Output.NumBytesAvailable > 0
THEN BEGIN
s := '';
r := p.Output.Read( b, szBuffer );
IF r > 0
THEN
FOR j := 0 TO r-1
DO s := s + Chr(b[j]);
Write(StdOut, s)
END;
IF p.StdErr.NumBytesAvailable > 0
THEN BEGIN
s := '';
r := p.StdErr.Read( b, szBuffer );
IF r > 0
THEN
FOR j := 0 TO r-1
DO s := s + Chr(b[j]);
Write(StdErr, s)
END;
IF a
THEN
a := False
ELSE
IF NOT p.Running THEN a := True
UNTIL NOT (p.Running OR a);
timeEnd := Now();
p.Free;
WriteLn(Format('time(ms)=%d', [ MilliSecondsBetween(timeStart, timeEnd) ]));
END.
Метки:
freepascal
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-