1 2 3 4 5 6 7 8 9 | [FILE(путь к файлу|номер строки для вставки|сколько строк вставлять)] [FILE(c:\file.txt|1|1)] - будет вставлена первая строка из файла c:\file.txt [FILE(c:\file.txt|1|2)] - будут вставлены первая и вторая строки из файла c:\file.txt [FILE(c:\file.txt|2|2)] - будут вставлены вторая и третья строки из файла c:\file.txt Вставка всего содержимого файла разом: [FILE(c:\file.txt|1|1000000)] - ВСТАВЯТСЯ ВСЕ СТРОКИ из файла c:\file.txt (обратите внимание, параметр номера вставляемой строки для этого должен быть равен 1 и параметр "сколько строк вставлять" должен быть заведомо больше реального количества строк в файле) |
Если параметр “номер строки для вставки”=0, то при первом вызове макроса из файла будет взята первая строка, при втором вызове макроса будет взята вторая строка и так далее:
1 2 3 | [FILE(c:\file.txt|0|1)] - будет вставлена первая строка из файла c:\file.txt [FILE(c:\file.txt|0|1)] - будет вставлена вторая строка из файла c:\file.txt [FILE(c:\file.txt|0|1)] - будет вставлена третья строка из файла c:\file.txt |
Если, например, брать 15 строку и затем вызывать макрос [FILE] с параметром “номер строки для вставки”=0, то будет взята 16 строка:
1 2 3 | [FILE(c:\file.txt|15|1)] - будет вставлена 15 строка из файла c:\file.txt [FILE(c:\file.txt|0|1)] - будет вставлена 16 строка из файла c:\file.txt [FILE(c:\file.txt|0|1)] - будет вставлена 17 строка из файла c:\file.txt |
Если вызывать несколько макросов [FILE], то для каждого файла будет назначена индивидуальная переменная с номером текущей строки:
1 2 3 4 5 6 7 | [FILE(c:\file.txt|15|1)] - будет вставлена 15 строка из файла c:\file.txt [FILE(c:\file.txt|0|1)] - будет вставлена 16 строка из файла c:\file.txt [FILE(c:\file_2.txt|0|1)] - будет вставлена 1 строка из файла c:\file_2.txt [FILE(c:\file.txt|0|1)] - будет вставлена 17 строка из файла c:\file.txt [FILE(c:\file_2.txt|0|1)] - будет вставлена 2 строка из файла c:\file_2.txt [FILE(c:\file.txt|0|1)] - будет вставлена 18 строка из файла c:\file.txt ... |
Для вставки рандомной (случайной) строки из файла, вместо номера строки используйте параметр {random}:
1 | [FILE(c:\file.txt|{random}|1)] |
Важно: Если вы берете из файла рандомную строку, то она удаляется из копии файла в памяти программы (чтобы два раза случайно не взять одну и ту же строку). Поэтому, помните, что не рекомендуется обращаться к одному и тому же файлу сначала с параметром {random}, потом без него (для таких случаев создайте копию файла на диске и обращайтесь к созданной копии вторым макросом [FILE] без параметра {random})!
Если необходимо удалять строку из файла при ее взятии, добавьте параметр {delete}:
1 | [FILE(c:\file.txt|15|1{delete})] |
Если загружаете файл в кодировке UTF-8, добавьте параметр {utf8}:
1 | [FILE(c:\file.txt|15|1{delete}{utf8})] |
Если вы желаете, чтобы текущий индекс строки не увеличивался при вызове макроса [FILE] или при вызове макроса с параметром {random} несколько раз подряд бралась одна и та же строка, то добавьте параметр {holdindex}:
1 | [FILE(c:\file.txt|0|1{holdindex})] |
Это полезно, например, когда вам нужно вставлять одну и ту же строку несколько раз подряд в разных местах шаблона вывода (в таком случае уберите параметр {holdindex} у крайнего макроса).
Примечание: Наличие {holdindex} отключает параметр {delete}!
Если вы желаете добавить к вставляемой строке какой-либо текст или код, используйте параметр {template}:
1 | [FILE(c:\file.txt|{random}|1{template} что добавить к началу {data1} что добавить в конец {/template})] |
Параметр {template}шаблон{/template} будет являться шаблоном данных на выходе, а оператор {data1} берет данные из строки в файле.
Примечание: Если в параметре {template} нужно использовать комбинацию символов )], вместо нее пропишите [FILEEND] (для экранирования закрывающей части макроса [FILE(path)])
Например, в файле на диске (c:\Content\file.txt) есть строка:
1 | подстрока 1[SEP]подстрока 2[SEP]подстрока 3[SEP] подстрока 4[SEP]подстрока 5[SEP]... |
И вам, при рандомной вставке строк из файла, нужно взять из нее некоторые подстроки и вывести их в определенном формате. Тогда для вывода подстрок с указанным индексом пользуйтесь оператором {dataN} (где N – номер подстроки из файла):
1 | [FILE(c:\file.txt|{random}|1{template}<CD_GRAN_1!>[CSVCS]{data1}[CSVCS]{data2}[CSVCS]{data3}{/template})] |
Примечание: Если в параметре {template} нужно использовать комбинацию символов )], вместо нее пропишите [FILEEND] (для экранирования закрывающей части макроса [FILE(path)])
Если указанный для взятия номер строки превышает количество строк в файле и вам нужно, чтобы строки из файла брались по второму и более кругу, вставьте перед путем к файлу оператор {loopindex}
1 | [FILE({loopindex}c:\file.txt|5|1)] |
Также макрос [FILE] поддерживает относительные пути. Базовая часть берется из пути сохранения контента.
1 | [FILE(file.txt|5|1)] |