Как создать атрибут DXL с помощью файла #included

У меня есть файл, содержащий атрибут dxl. Я создал шаблон, который создает модуль именно так, как я хочу, с новыми атрибутами, представлениями и прочим. Один из атрибутов должен быть атрибутом dxl, но я не могу найти хороший способ создать новый атрибут dxl из сценария dxl, используя код, содержащийся в отдельном файле. Я подумал, что могу попробовать что-то вроде этого:

Строка s = #include "путь к файлу"

Но это явно не работает. Есть ли способ получить содержимое отдельного файла в строку?

Спасибо


person cmusicfan2000    schedule 09.07.2015    source источник


Ответы (1)


Вы можете сделать это с помощью Stream.

Stream inFile = read "filepath"
String s, sContent = ""

while(true) {
  inFile >> s
  sContent = sContent "\n" s
  if(end of inFile) break
}
close inFile

Это заполнит строку sContent содержимым файла DXL. Затем вы можете использовать его для создания атрибута.


Обновлен код на основе отзывов.

person Steve Valliere    schedule 10.07.2015
comment
Большое спасибо! Я попробую! - person cmusicfan2000; 10.07.2015
comment
Однако я хотел бы отметить, что при настройке цикла while вы каждый раз обрезаете последнюю строку своего кода. - person cmusicfan2000; 10.07.2015
comment
На самом деле последняя строка — это end файла, поэтому вы не будете использовать ее как строку данных. Вот как это устроено в примере в Справочном руководстве DXL. - person Steve Valliere; 12.07.2015
comment
Это может быть то, как было написано руководство по DXL, но это не то, как на самом деле работает код, который вы разместили. Я использовал точный код, который вы разместили, и он обрезал последнюю строку, пока я не переместил строку 7 в конец цикла. - person cmusicfan2000; 13.07.2015