Date Редакция Категория comp Теги pascal

Безразмерные строки

Строки типа AnsiString могут иметь произвольную длину. В отличие от обычных строк, последний байт в AnsiString не является показателем длины, а играет роль ограничителя (как \0 в С). Все, что находится в строке после ограничителя Pascal'ем игнорируется.

Ясно, что в качестве символа-ограничителя должен выступать символ, который обычно в строках не используется. Такой символ в кодовой таблице всего один и имеет код равный 0.

Тип AnsiString определен в диалекте Free Pascal для совместимости с коммерческим Delphi. Но если в программе использовать директиву компилятора {$H+}, то стандартный тип String становится полностью идентичным AnsiString, так что последний можно не использовать.

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

Выполняется с помощью функции MilliSecondsBetween модуля DateUtils:

program example;
  {$APPTYPE CONSOLE}
  uses SysUtils,DateUtils;

  var
    FromTime, ToTime: TDateTime;

  begin
    FromTime := Now; // запуск счетчика времени

    // Тестируемый фрагмент кода
    ReadLn;

    ToTime := Now;   // остановка счетчика

    WriteLn( 'time = ', MilliSecondsBetween(ToTime,FromTime)/1000., ' s' );
    ReadLn;

end.

В DateUtils есть еще несколько подобных функций, но они рассчитаны на более длительные промежутки времени. Переменная Now, равная текущему моменту времени содержится в модуле SysUtils.



Комментарии

comments powered by Disqus