MyChat Scripts: функция SetArrayLength, задать размер динамического массива

MyChat Scripts: функция SetArrayLength, задать размер динамического массива

"Для разработчиков", "Серверные скрипты", "Описание функций", "Разное", "SetArrayLength".

 

Указать размер динамического одномерного массива.

 

Синтаксис

procedure SetArrayLength(var Arr: <dynamic array>; iNewLength: integer);

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

Arr

array of...

одномерный массив любого типа;

iNewLength

integer

количество элементов массива.

 

Пример

Нумерация элементов массива будет от 0 до iNewLength - 1. Программа подсчитывает количество уникальных слов в тексте и выводит их в консоль:

const
  ORIGINAL_TEXT = 'Take me, I''m alive, never was a girl with a wicked mind'#13#10 +
                  'But everything looks better, when the sun goes down'#13#10 +
                  'I had everything, opportunities for eternity and I'#13#10 +
                  'could belong to the night'#13#10 +
                  'Your eyes, your eyes, I can see in your eyes, your eyes';
var
  sData, s: string;
  iCount, i: integer;
  Arr: array of string;
  bAddFlag: boolean;
begin
  mLogScript(ORIGINAL_TEXT, '');

  sData := ReplaceString(LowerCase(ORIGINAL_TEXT), CRLF, ' ', true, false);
  sData := ReplaceString(sData, ',', '', true, false);
  
  iCount := 0;
  SetArrayLength(Arr, 0);
  
    while length(sData) > 0 do begin
      s := Fetch(sData, ' ');
      bAddFlag := true;

        if iCount > 0 then 
          for i := 0 to iCount - 1 do
            if Arr[i] = s then begin
              bAddFlag := false;
              break;
            end;
            
        if bAddFlag then begin
          inc(iCount);
          SetArrayLength(Arr, iCount);
          Arr[iCount - 1] := s;
        end;
    end;
    
  mLogScript('Unical words list:', '');  
  s := '';
  
    for i := 0 to iCount - 1 do begin
      s := s + Arr[i] + ' ';
      
        if (i + 1) mod 10 = 0 then s := s + CRLF;
    end;  
      
  mLogScript(s, 'Total ' + IntToStr(iCount) + ' words');      
end.

Результат работы скрипта

[23:57:00] (Log "SetArrrayLength"): Take me, I'm alive, never was a girl with a wicked mind

But everything looks better, when the sun goes down

I had everything, opportunities for eternity and I

could belong to the night

Your eyes, your eyes, I can see in your eyes, your eyes

[23:57:00] (Log "SetArrrayLength"): Unical words list:

[23:57:00] (Log "SetArrrayLength"): [Total 35 words] take me i'm alive never was a girl with wicked

mind but everything looks better when the sun goes down

i had opportunities for eternity and could belong to night

your eyes can see in

[23:57:00] (Run "SetArrrayLength"): Время выполнения скрипта: 4 мс

[23:57:00] (Run "SetArrrayLength"): Скрипт выполнен успешно.
 

Ещё посмотреть

CRLF

Fetch

Inc

IntToStr

Length

LowerCase

mLogScript

ReplaceString