Не могу получить правильное кол-во строк списка

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18
Не могу узнать кол-во строк в нужном мне списке. Изначально, я объединил элементы из одного из списков, в котором находилось несколько строк, для того чтобы положить их в переменную. Далее из этих строк уже находящихся в переменной с помощью Regex я спарсил их часть до нужного мне значения (которое встречается в одной из строк) и снова ложу их в список. Затем, мне нужно узнать сколько в этом списке осталось строк. Но почему-то экшен обработки текста со значением "Получить количество строк" всегда мне сообщает, что строка в списке всего одна, когда их после парсинга сохранилось несколько. При объединение элементов списка не получается выставить разделитель "новая строка", он постоянно сбрасывается на "указанный в списке". Может в этом дело, я не знаю.

Подскажите что я делаю не так, или может как-то можно узнать кол-во строк прямо из переменной.
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Не могу узнать кол-во строк в нужном мне списке. Изначально, я объединил элементы из одного из списков, в котором находилось несколько строк, для того чтобы положить их в переменную. Далее из этих строк уже находящихся в переменной с помощью Regex я спарсил их часть до нужного мне значения (которое встречается в одной из строк) и снова ложу их в список. Затем, мне нужно узнать сколько в этом списке осталось строк. Но почему-то экшен обработки текста со значением "Получить количество строк" всегда мне сообщает, что строка в списке всего одна, когда их после парсинга сохранилось несколько. При объединение элементов списка не получается выставить разделитель "новая строка", он постоянно сбрасывается на "указанный в списке". Может в этом дело, я не знаю.

Подскажите что я делаю не так, или может как-то можно узнать кол-во строк прямо из переменной.
Так если переноса строки нет, то и разделения на строки тоже нет. (Сейчас проверю.)

Проверил, всё работает. Он у тебя сбрасывает к указанному в списке, потому что там и так используется новая строка.

Каким образом ты добавляешь спарсенное снова в список?

Количество строк считается экшеном операций над списком, при чём тут экшен обработки текста?

Вот так работает:



В списке делёжь по переносам:



Строк получается на 1 больше, потому что в конце тоже перенос есть, так что минусуй копейку.
 
Последнее редактирование:
  • Спасибо
Реакции: Belwin

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113
При объединение строк списка разделитель удаляется. Зачем нужно объединять строки и складывать их в переменную? В операциях со спискам есть Удалить строки не соответствующие рег. выражению, так вы сможете спарсить нужные строки без объединения.
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
При объединение строк списка разделитель удаляется. Зачем нужно объединять строки и складывать их в переменную? В операциях со спискам есть Удалить строки не соответствующие рег. выражению, так вы сможете спарсить нужные строки без объединения.
Это кто тебе сказал, что разделитель удаляется? А строки почему не в одну линию становятся, если свой разделитель не добавлять? А если свой разделитель добавить, то в одну линию, но он там явно присутствует и не в единственном числе.

Ты вот это читал?

Далее из этих строк уже находящихся в переменной с помощью Regex я спарсил их часть до нужного мне значения (которое встречается в одной из строк)
Какая должна быть регулярка, чтобы удалить все строки до той (или после), в которой есть какой-то необходимый элемент?
 
Последнее редактирование:

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18
Каким образом ты добавляешь спарсенное снова в список?
С помощью Regen, если выбрать из "Что брать?" - все, то получится сохранить только в список.
Количество строк считается экшеном операций над списком, при чём тут экшен обработки текста?
Ну тут я напутал, конечно же экшеном операций над списком.
 

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18
При объединение строк списка разделитель удаляется. Зачем нужно объединять строки и складывать их в переменную? В операциях со спискам есть Удалить строки не соответствующие рег. выражению, так вы сможете спарсить нужные строки без объединения.
Я так понимаю это появилось в новых версиях? У меня сейчас стоит v5.9.3.1
 

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18
Это кто тебе сказал, что разделитель удаляется? А строки почему не в одну линию становятся, если свой разделитель не добавлять? А если свой разделитель добавить, то в одну линию, но он там явно присутствует и не в единственном числе.
Мне вот тоже кажется, что не должен удалятся. Ведь они потом и выглядят разделено. Да и не спроста при объединение предлагается выбрать нужный разделитель. VladZ, вы уверены что он точно удаляется?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113
Это кто тебе сказал, что разделитель удаляется? А строки почему не в одну линию становятся, если свой разделитель не добавлять? А если свой разделитель добавить, то в одну линию, но он там явно присутствует и не в единственном числе.
Ты вот это читал?
Какая должна быть регулярка, чтобы удалить все строки до той (или после), в которой есть какой-то необходимый элемент?
Ну прямо загнобил... А можно не тыкать?) Мы с Вами не знакомы.
Хорошо, разделитель не удаляется, а не учитывается или не используется... так точнее? Факт в том, что если объединили, потом обратно в список строки не запихнешь, просто указав разделитель.
Регулярка... Чесно говоря, вникнуть в манипуляции со списком, которые проводит пользователь, довольно сложно даже не с первого раза. Есть стандартный функционал программы с использованием регулярок в списке о котором пользователь похоже не знает... лучше использовать его, чем проводить многошаговые и непонятные манипуляции.
 
  • Спасибо
Реакции: Ribas

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
В будущем билде можно будет выделять подсписок по условиям. Это решит все вопросы в рамках этой темы.
 
  • Спасибо
Реакции: zennomoves и Belwin

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18
Я сейчас попробовал, но не получилось. Поясните, пожалуйста, на моем примере как это сделать.
Допустим у меня есть список со следующими строками:

GGy3
Z6t2
G7oe
v2R2
7CSk
t7B2
F9h8
1N5b
83wI
x1mS

Мне нужно, чтобы остались все строки, которые идут до строки с символами F9h8 (включая и ее тоже). То есть эти 7 строк:

GGy3
Z6t2
G7oe
v2R2
7CSk
t7B2
F9h8

А потом их посчитать. В тестере регулярных выражения я составил такую регулярку [\w\W]*F9h8 Но в экшене "Операции над списками" со значением "Удалить элементы, не удовлетворяющие регулярному выражению" она не работает. Как это реализовать?
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Ну прямо загнобил... А можно не тыкать?) Мы с Вами не знакомы.
Хорошо, разделитель не удаляется, а не учитывается или не используется... так точнее? Факт в том, что если объединили, потом обратно в список строки не запихнешь, просто указав разделитель.
Регулярка... Чесно говоря, вникнуть в манипуляции со списком, которые проводит пользователь, довольно сложно даже не с первого раза. Есть стандартный функционал программы с использованием регулярок в списке о котором пользователь похоже не знает... лучше использовать его, чем проводить многошаговые и непонятные манипуляции.
Можно и не тыкать, если так удобнее. Я без задней мысли. Но Выканье тоже надоедает, получаются вместо конструктивных разговоров беседы по этикету какие-то. Но тем не менее. Гнобить даже и в мыслях нет. Здесь есть спецы, по сравнению с которыми я очень многого не знаю, и я об этом не забываю, но если я сейчас резко не влезу, то у совсем неопытных будет в голове полная каша, а так хоть какой-то порядок будет в мыслях.

Разделители учитываются и используются. Их даже свои для удобства можно добавлять, и в дальнейшем, используя их, взаимодействовать с вновь полученной переменной. Вот пример: http://zennolab.com/discussion/threads/sparsit-url-esli-rjadom-est-tekst.25134/#post-174258 Разница между списком и объединённым списком как раз и есть в разделителях. Список - это одномерный массив, т.е. набор отдельных переменных (его так можно рассматривать), а объединённый список - запись всё тех же переменных в одну переменную с применением разделителей, благодаря которым мы сможем сопоставлять данные в полученной переменной со строками в изначальном списке.

Факт в том, что если объединили, потом обратно в список строки не запихнешь, просто указав разделитель.
С чего Вы взяли? Вот здесь вставляем свой разделитель, и переменная с разделителями станет списком:



Зачем Вы его путаете?

Регулярка... Чесно говоря, вникнуть в манипуляции со списком, которые проводит пользователь, довольно сложно даже не с первого раза. Есть стандартный функционал программы с использованием регулярок в списке о котором пользователь похоже не знает... лучше использовать его, чем проводить многошаговые и непонятные манипуляции.
Честно говоря, я имел в виду, что Вам будет трудно придумать такую регулярку, если вообще сможете. И не только Вы. Вы хоть смотрели в те места, о которых пишите, или просто решили игрой слов заняться?
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Я сейчас попробовал, но не получилось. Поясните, пожалуйста, на моем примере как это сделать.
Допустим у меня есть список со следующими строками:

GGy3
Z6t2
G7oe
v2R2
7CSk
t7B2
F9h8
1N5b
83wI
x1mS

Мне нужно, чтобы остались все строки, которые идут до строки с символами F9h8 (включая и ее тоже). То есть эти 7 строк:

GGy3
Z6t2
G7oe
v2R2
7CSk
t7B2
F9h8

А потом их посчитать. В тестере регулярных выражения я составил такую регулярку [\w\W]*F9h8 Но в экшене "Операции над списками" со значением "Удалить элементы, не удовлетворяющие регулярному выражению" она не работает. Как это реализовать?
Ты хоть понимаешь, что ты пытаешься использовать на массиве регулярку, которую создавал для текста?
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
С помощью Regen, если выбрать из "Что брать?" - все, то получится сохранить только в список.

Ну тут я напутал, конечно же экшеном операций над списком.
Сделай как я тут написал, и всё получится: http://zennolab.com/discussion/threads/ne-mogu-poluchit-pravilnoe-kol-vo-strok-spiska.25365/#post-175832
 
  • Спасибо
Реакции: Belwin

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113
Разделители учитываются и используются. Их даже свои для удобства можно добавлять, и в дальнейшем, используя их, взаимодействовать с вновь полученной переменной. Вот пример: http://zennolab.com/discussion/threads/sparsit-url-esli-rjadom-est-tekst.25134/#post-174258 Разница между списком и объединённым списком как раз и есть в разделителях. Список - это одномерный массив, т.е. набор отдельных переменных (его так можно рассматривать), а объединённый список - запись всё тех же переменных в одну переменную с применением разделителей, благодаря которым мы сможем сопоставлять данные в полученной переменной со строками в изначальном списке.

С чего Вы взяли? Вот здесь вставляем свой разделитель, и переменная с разделителями станет списком:


Зачем Вы его путаете?
Посмотрите пожалуйста шаблон. Разделитель Enter везде.
 

Вложения

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Благодарностей
13
Баллы
18

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Посмотрите пожалуйста шаблон. Разделитель Enter везде.
Ну да, всё правильно. А к чему Вы это? К тому, что я Enter подчеркнул? Так это просто я по новой скринить не стал. Это изображение, которое я выше приводил в пример. Здесь оно нужно, чтобы просто показать место, где разделитель при необходимости добавляется.

У Вас не получается, потому что Вы в список пытаетесь добавить строку и при этом ждёте, что она разложится в список. Строка всегда будет строкой в списке. И без разницы, из чего она состоит. Мы этим даём команду поместить в одну из ячеек массива необходимые данные, которые могут включать всё, что угодно.

Чтобы произошло разложение по разделителям на строки списка, необходимо добавлять не строку а текст, в котором будет то же самое содержание. Вот кусок одного из верхних изображений:



Проскочили?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113
Ну да, всё правильно. А к чему Вы это? К тому, что я Enter подчеркнул? Так это просто я по новой скринить не стал. Это изображение, которое я выше приводил в пример. Здесь оно нужно, чтобы просто показать место, где разделитель при необходимости добавляется.

У Вас не получается, потому что Вы в список пытаетесь добавить строку и при этом ждёте, что она разложится в список. Строка всегда будет строкой в списке. И без разницы, из чего она состоит. Мы этим даём команду поместить в одну из ячеек массива необходимые данные, которые могут включать всё, что угодно.

Чтобы произошло разложение по разделителям на строки списка, необходимо добавлять не строку а текст, в котором будет то же самое содержание. Вот кусок одного из верхних изображений:

Проскочили?
Признаю, ошибся.
Согласись не очевидный вариант - вставлять данные в список как текст, а не строки. Если чесно даже такой операции и не видел раньше)
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Сейчас попробую.

А Enter в настройках всех списков у меня стоит как разделитель.
Всё правильно, он у всех там стоит по умолчанию. Я просто поленился скрин новый делать и сам у себя спёр картинку, чтобы ... вот здесь сверху написано: http://zennolab.com/discussion/threads/ne-mogu-poluchit-pravilnoe-kol-vo-strok-spiska.25365/#post-175927
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Признаю, ошибся.
Согласись не очевидный вариант - вставлять данные в список как текст, а не строки. Если чесно даже такой операции и не видел раньше)
Ну когда-то да, был неочевидным.
 

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