-Поиск по дневнику

Поиск сообщений в lazydev

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 09.12.2010
Записей:
Комментариев:
Написано: 14


PTIME - Free Pascal

Среда, 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.


Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку