Пользовательская функция

отредактировано 19:04 Раздел: FastScript
У пользователей получаются сильно большие скрипты.
С одинаковыми вызовами фукции.
Возникают ошибки обработки в этой фукции.
Сейчас они вынуждены ставить точки остановки на каждом таком вызове фукции.
И по шагам проходить весь скрипт. (в нем уже почти 7 тыс строк...)
Было бы проще им выводить в качестве ошибки номер строки где произошла данная ошибка(В передаваемых данных).
Как узнать с какой именно строки пришел вызов данной функции?

Комментарии

  • отредактировано 19:04
    Обьявляешь
    ListStack: TStringList;
    В блоках
    initialization
    ListStack := TStringList.Create;
    finalization
    ListStack.Free;

    procedure TfsScript.RunLine(const UnitName, Index: String);

    ListStack.Add(Index);
    ListStack.Add(UnitName);
    .. Это для уменьшения - чтобы сильно не рас расход памяти
    if ListStack.Count > 400 then
    begin
    ListStack.Delete(0);
    ListStack.Delete(0);
    end;


    Во всех функциях (3) где происходит вызов скрипта типа:
    procedure TfsScript.Execute;
    ListStack.Clear;
    try
    finally
    if ListStack.Count <> 0 then
    with CoDOMDocument.Create do
    begin
    i := 0;
    with appendChild(createElement('ROOT')) do
    repeat
    with appendChild(ownerDocument.createElement('ROW')) As IXMLDOMElement do
    begin
    setAttribute('SourcePos', ListStack.Strings);
    Inc(i);
    setAttribute('UnitName', ListStack.Strings);
    Inc(i);
    end;
    until i >= ListStack.Count;
    save(ExtractFilePath(ParamStr(0)) + 'ScriptStack.xml');
    end;

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.