Оператор CLDFile


Оператор <CldFile> предназначен для доступа к данным файлов CLData из постпроцессора. Он предоставляет информацию только для чтения, т.е. может находиться только справа от оператора присвоения. Синтаксис:

<CldFile.FileCount> – возвращает количество загруженных файлов CLData;

<CldFile.CurrentFile> – возвращает индекс текущего файла CLData (индексация начинается с 0);

<CldFile.CurrentCmd> – возвращает индекс текущей команды в текущем файле CLData (индексация начинается с 1);

<CldFile[<FileIndex>].Enabled> – возвращает 1, если файл с индексом <FileIndex> включен, 0 – файл выключен;

<CldFile[<FileIndex>].IsNCSub> – возвращает 1, если файл является файлом подпрограммы, 0 – не является;

<CldFile[<FileIndex>].CmdCount> – возвращает количество команд CLData в файле с индексом <FileIndex>;

<CldFile[<FileIndex>].Cmd[<CmdIndex>]> – возвращает ссылку на команду CLData под номером <CmdIndex> в файле с индексом <FileIndex>. После этой команды через точку допустимо указывать любую из инструкций, описанных для оператора Cmd. Например:
<CldFile[<FileIndex>].Cmd[<CmdIndex>].Code> – код команды CLData под номером <CmdIndex>;
<CldFile[<FileIndex>].Cmd[<CmdIndex>].Data> – возвращает строковые данные команды CLData под номером <CmdIndex> (например, строку комментария). Если команда не содержит строковых данных, то выводится строковое представление команды.
<CldFile[<FileIndex>].Cmd[<CmdIndex>].Data[<CldIndex>]> – значение элемента массива CLD с номером <CldIndex>;
<CldFile[<FileIndex>].Cmd[<CmdIndex>].Name> - имя команды либо параметра команды CLData;
<CldFile[<FileIndex>].Cmd[<CmdIndex>].Str | .Int | .Flt | .Ptr> - значение параметра команды соответствующего типа;
<CldFile[<FileIndex>].Cmd[<CmdIndex>].Item[Index]>- дочерний параметр по индексу;
<CldFile[<FileIndex>].Cmd[<CmdIndex>].ItemCount> - возвращает количество дочерних параметров.

 

Приведенный ниже пример выводит в окно отладочной информации номера и комментарии для всех используемых инструментов:

 

sub PrintAllTools

  i: Integer

  j: Integer

  for i = 0 to CLDFile.FileCount-1 do begin

    if (CldFile[i].Enabled>0) and (CldFile[i].IsNCSub=0) then begin

      for j = 1 to CldFile[i].CmdCount do begin

        ! Если это команда загрузки инструмента

        if CldFile[i].Cmd[j].Code = CodeOfCmd("LoadTl") then begin

          ! Выводим идентификатор револьверной головки

          Print "RevolverID = " + CldFile[i].Cmd[j].Str["RevolverID"]

          ! Выводим номер инструмента

          Print "Tool number = ", CldFile[i].Cmd[j].Data[1]

          ! Выводим комментарий инструмента

          if CldFile[i].Cmd[j+1].Code = CodeOfCmd("Comment") then

            Print "Tool comment: " + CldFile[i].Cmd[j+1].Data

        end

      end

    end

  end

subend

 

 

 

Сопутствующие ссылки:

Функции и операторы работы с CLData