Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
Владимир.Егоров
Интересует вопрос по работе со скриптом. Данный скрипт работает.
Код: Выделить всё
// ---------------------------------------
// Script created by admin (UIN )
// 05.03.2018 11:40:03
// ---------------------------------------

program NoticeGet;

var
  IntermediateVariable, sMsg, UserListStore, s: string;
  sArray: array of integer;
  wYear, wMonth, wDay, wHour, wMinute, wSecond, wMilliSecond: word;
  CountStore, SendMsg, Count, NumberUsers, i, iUIN, label : integer;
  time, dtNow: double;

const
  SetTimeHour = 11;

  Group1 = 'Group1';

function GetUserList(sUINList: string): string;
var
  sData, sUIN, sResult: string;
  UserListStore: string;
begin
  sData := sUINList;
  while length(sData) > 0 do begin
    sUIN := GetNextSt(sData, ',');
    sResult := sResult + sUIN + ',';
  end;
  result := sResult;
end;

begin

  UserListStore := GetUserList(mGetUsersListInGroupByName(Group1));
  IntermediateVariable := UserListStore;
  i := 0;
  dtNow := Now;
  DecodeDateTime(Now, wYear, wMonth, wDay, wHour, wMinute, wSecond,  wMilliSecond);
  NumberUsers := i;
  if (wHour = SetTimeHour) then begin
    while length(IntermediateVariable) > 0 do
    begin
      sMsg := GetNextSt(IntermediateVariable, ',');
      i := i + 1;
      SendMsg := mSendBroadcast('Доброе утро', sMsg, EndofTheDay(Now), 0);
    end;

    DecodeDateTime(Now, wYear, wMonth, wDay, wHour, wMinute, wSecond,
      wMilliSecond);
    NumberUsers := i;


    // mSendCustomMsgToClientConsoleByCID(0, 'WEB support session from UIN ' + '120', 'newmsg', false, true, 78);
    // SendMsg:=mSendBroadcast('----test---','120',EndofTheDay(Now),0);

  end;

end.



// Но почему если я использую ввод данных в массив. Например:
label:=1;
Count:=##;
while length(IntermediateVariable)>0 do
begin
for i:=1 to Count do
begin
for 1 to label do
begin
SetValue:GetNextSt(IntermediateVariable, ',');
Array[i]:=SetValue
label=label+1;
end;
i:=i+1;
end;
end;
// Пытаюсь получить данные из массива и использовать не получается.(mLogScript(Array[i], inttostr(i));) Буду очень признателен за помощь и ответ.
Аватара пользователя
Алексей Пикуров
Пожалуйста, используйте тег code и форматирование исходного текста, чтобы ваши исходники можно было читать. И пишите комментарии.

Я не понял вашего кода, который вы привели, как не работающий.
for 1 to label do

Что это такое?
SetValue:GetNextSt(IntermediateVariable, ',');
Array[i]:=SetValue

Что это?
label=label+1;

Опять. Я так понимаю, надо было labbel := label + 1
Аватара пользователя
Алексей Пикуров
Переношу тему в раздел со скриптами.
Аватара пользователя
Владимир.Егоров
последний фрагмент более нацелен на уточнение. Прошу прощения за неудобства с представлением кода
Аватара пользователя
Алексей Пикуров
Напишите рабочий по вашему мнению код и напишите конкретный вопрос по конкретным строкам, что у вас не получается.
Аватара пользователя
Владимир.Егоров
Код: Выделить всё
SetValue:=GetNextSt(IntermediateVariable, ',');
Array[i]:=SetValue
Последний раз редактировалось Владимир.Егоров Пн мар 05, 2018 6:57 pm, всего редактировалось 2 раз(а).
Аватара пользователя
Алексей Пикуров
"Array" — служебное слово, использовать в названиях идентификаторов нельзя.
Аватара пользователя
Алексей Пикуров
Владимир, я жду вашего вопроса :)