Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



SetLength

Изменяет размер строки или размер динамического массива

Описание:

    Процедура SetLength изменяет размер строки, одномерного динамического массива или многомерного динамического массива

     Вариант 1.

     При изменении размера строки StringToChange, новый размер NewLength может быть меньше, такой же или больше, чем у существующей строки. Во всех случаях размер задается в символах и в любом случае создается новая строка.

     Если строка короче, то она отсекается. Если она длиннее, то добавленные символы не будут проинициализированы. Это может дать странный эффект - смотрите первый пример.

     Вариант 2.

     Динамический массив объявляется без задания фиксированной длины. Такое объявление создает лишь указатель. Даже многомерный динамический массив создается в виде одного неинициализированного указателя.

     SetLength меняет длину измерений Dim1Length, Dim2Length … массива ArrayToChange. Это может быть сделано несколько раз - не только над неинициализированным указателем. Последующие вызовы сотрут данные или добавят дополнительное место. Это дополнительное место инициализируется только в том случае, если оно содержит строки, интерфейсы или переменные типа Variant.

     Dim1Length указывает на левое (внешнее) измерение массива.

Пример кода:

var
   myString : string;
   onPos : Integer;

begin
   // Set up my string to hold a well known phrase
   myString := 'The cat sat on the mat';

   // Display this string
   ShowMessage('"'+myString+'"');

   // Now make the string longer
   SetLength(myString, 25);

   // Display this string again
   // Note that the string is prematurely terminated
   // This is because the extra characters are not initialised
   ShowMessage('"'+myString+'"');

   // Now make the string shorter - chop from 'sat' onwards
   onPos := AnsiPos('sat', myString);
   SetLength(myString, onPos-1);

   // Display this string again
   // Now the string is fully initialised
   ShowMessage('"'+myString+'"');
end;

Результат выполнения:

"The cat sat on the mat"
"The cat sat on the mat
"The cat "

Описание:

var
   singleArray : array of string;
   multiArray : array of array of Word;
   i, j : Integer;

begin
   // Set the length of a single dimension array
   SetLength(singleArray, 4);

   // Now fill it up : note that dynamic arrays start at 0
   ShowMessage('Single dimensional array :');
   for i := 0 to 3 do
   begin
      singleArray[i] := 'String '+IntToStr(i);
      ShowMessage('Element '+IntToStr(i)+' = '+singleArray[i]);
   end;

   // Set the length of a multi dimensional array
   SetLength(multiArray, 2, 3);

   // Now fill it up
   ShowMessage('Multi-dimensional array :');
   for i := 0 to 1 do
      for j := 0 to 2 do
      begin
        multiArray[i,j] := i + j;
        ShowMessage('Element '+IntToStr(i)+','+IntToStr(j)+' = '+
      IntToStr(multiArray[i,j]));
      end;
end;

Пример кода:

Single dimensional array :
   Element 0 = 0
   Element 1 = 1
   Element 2 = 2
   Element 3 = 3
   Multi-dimensional array :
   Element 0,0 = 0
   Element 0,1 = 1
   Element 0,2 = 2
   Element 1,0 = 1
   Element 1,1 = 2
   Element 1,2 = 3