Проблема с получением самой последней строки списка

Регистрация
19.12.2015
Сообщения
288
Благодарностей
36
Баллы
28
В действии «Операции над списком» одно из свойств называется «Получить строку».

Если последняя строка файла не заканчивается символом переноса строки, это не дает право квалифицировать ее в качестве «не строки».

Я не прав?

Тогда пусть кто-нибудь поправит меня.

Все другие стандартные функции по обработке строк не бракуют такую строку в конце файла.

Что мы имеем сейчас в Зеннопостере. Свойство «Получить количество строк» считает самую последнюю строку файла, даже если после нее нет символа перевода строки.

Но когда мы указываем номер этой последней строки в свойстве «Получить строку», при выполнении этого действия возникает ошибка, и выполнение шаблона аварийно заканчивается, причем без указания причины.

При ближайшем рассмотрении выясняется, что по какой-то непонятной причине действие «Получить строку» не смогло взять последнюю строку файла.

Это нормально?
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 440
Благодарностей
503
Баллы
113
Нормально. Нумерация строк начинается с нуля. Количество строк, если они существуют - с единицы. Следовательно, если количество строк в тексте 10, то нужно взять девятую. Вы просто пытаетесь получить несуществующую строку.
 
Регистрация
19.12.2015
Сообщения
288
Благодарностей
36
Баллы
28
Я знаю о том, что нумерация строк начинается с нуля.

Вероятно, ошибка возникла из-за моей собственной оплошности.

Каким-то образом после нескольких тестовых прогонов моего шаблона в Проджектмейкере получилось так, что переменная, которая выступает в роли счетчика итераций цикла, увеличилась на одну лишнюю единицу.

Именно в результате этого свойство «Получить строку» пыталось взять строку с номером, который превышает уменьшенное на единицу число строк в файле.

При этом наличие или отсутствие символа перевода строки в конце самой последней строки файла оказалось ни при чем.

Вопрос пока закрыт.

Приношу свои извинения за то, что невольно ввел вас всех в заблуждение. :bt:
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 440
Благодарностей
503
Баллы
113
Если есть необходимость взять последнюю строку, то можно использовать парaметр end
Возьмётся последняя строка не взирая на их количество
http://zennolab.com/wiki/ru:ranges
 
Регистрация
19.12.2015
Сообщения
288
Благодарностей
36
Баллы
28
Спасибо, это любопытно.

Об этой функции я не знал.
 
Регистрация
19.12.2015
Сообщения
288
Благодарностей
36
Баллы
28
Скажите, пожалуйста, а эта самая псевдо-переменная (или константа) имеет числовой тип?

Можно ли в действии IF проверять равенство переменной счетчика цикла с цифровым значением параметра end?

Типа
Код:
n==end
Допустим ли подобный синтаксис?
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 440
Благодарностей
503
Баллы
113
Скажите, пожалуйста, а эта самая псевдо-переменная (или константа) имеет числовой тип?

Можно ли в действии IF проверять равенство переменной счетчика цикла с цифровым значением параметра end?

Типа
Код:
n==end
Допустим ли подобный синтаксис?
Нет
 
Регистрация
19.12.2015
Сообщения
288
Благодарностей
36
Баллы
28
Хорошо, я понял. Спасибо.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)