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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 584
Благодарностей
9 192
Баллы
113
Добрый день. Подскажите пожалуйста, как будет выглядеть код, для того, чтобы в списке найти пустую строчку. В других содержится пробел, поэтому пустую переменную не получается искать
Добрый день.
Если задача удалить пустые строки, то через действие "Операции над списком" вы можете удалить пустые строки и содержащие пробельные символы.

107765
 

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
Добрый день.
Если задача удалить пустые строки, то через действие "Операции над списком" вы можете удалить пустые строки и содержащие пробельные символы.

Посмотреть вложение 107765
Задача получить все номера строк из Google таблицы, содержащие пустые ячейки. Для обычной таблицы, код знаю, а для Google - Нет. Решил взять нужный столбец из Google Таблицы. И уже из списка получать нужные номера строк
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 584
Благодарностей
9 192
Баллы
113
Задача получить все номера строк из Google таблицы, содержащие пустые ячейки. Для обычной таблицы, код знаю, а для Google - Нет. Решил взять нужный столбец из Google Таблицы. И уже из списка получать нужные номера строк
Кто то может подтянется и предложит более изящный способ на чистом коде, а пока могу предложить немного костыльно-гибридный вариант с заменой пустых значений строк на конкретную строку, а по этим значениям строк уже находим номера "пустых" строк - приложил пример.
 

Вложения

Последнее редактирование:

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
Кто то может подтянется и предложит более изящный способ на чистом коде, а пока могу предложить немного костыльно-гибридный вариант с заменой пустых значений строк на конкретную строку, а по этим значениям строк уже находим номера "пустых" строк - приложил пример.
Список:

Защиту прошёл
Защиту прошёл
Защиту не прошёл

Защиту прошёл
Защиту прошёл

Защиту прошёл
Кнопка не активна

Кнопка не активна
Защиту прошёл


Конец списка

С таким списком не прокатывает замена...
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 584
Благодарностей
9 192
Баллы
113

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 584
Благодарностей
9 192
Баллы
113
Список:

Защиту прошёл
Защиту прошёл
Защиту не прошёл

Защиту прошёл
Защиту прошёл

Защиту прошёл
Кнопка не активна

Кнопка не активна
Защиту прошёл


Конец списка

С таким списком не прокатывает замена...
То есть, не обрабатываются - первые, последние и подряд идущие пустые строки?
Тогда вот такой вариант.
 

Вложения

  • Спасибо
Реакции: MaxLucky

K R

Client
Регистрация
14.01.2017
Сообщения
130
Благодарностей
133
Баллы
43
Список:

Защиту прошёл
Защиту прошёл
Защиту не прошёл

Защиту прошёл
Защиту прошёл

Защиту прошёл
Кнопка не активна

Кнопка не активна
Защиту прошёл


Конец списка

С таким списком не прокатывает замена...
1. Получаем столбец в список Strings.
2. Выполняем C# код:
C#:
var stringsList = project.Lists["Strings"];
var nullStringsNumbersList = project.Lists["Null Strings Numbers"];

for(int i=0; i < stringsList.Count; i++)
{
    if (stringsList[i] == "")
    {
        nullStringsNumbersList.Add(i+1);
    }
}
3. Получаем в списке Null Strings Numbers номера пустых строк.
Будут получены номера для варианта, когда нумерация списка начинается с 1. Если нужна нумерация с 0, то вместо
nullStringsNumbersList.Add(i+1);
нужно прописать
nullStringsNumbersList.Add(i);
 
  • Спасибо
Реакции: MaxLucky

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
1. Получаем столбец в список Strings.
2. Выполняем C# код:
C#:
var stringsList = project.Lists["Strings"];
var nullStringsNumbersList = project.Lists["Null Strings Numbers"];

for(int i=0; i < stringsList.Count; i++)
{
    if (stringsList[i] == "")
    {
        nullStringsNumbersList.Add(i+1);
    }
}
3. Получаем в списке Null Strings Numbers номера пустых строк.
Будут получены номера для варианта, когда нумерация списка начинается с 1. Если нужна нумерация с 0, то вместо
nullStringsNumbersList.Add(i+1);
нужно прописать
nullStringsNumbersList.Add(i);
Шикарно, благодарю!
 
  • Спасибо
Реакции: K R

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
  • Спасибо
Реакции: Sergodjan

sten30

Client
Регистрация
05.09.2017
Сообщения
261
Благодарностей
33
Баллы
28
Если же все же нужен именно номер строки.

Взять номера всех строк если есть вхождения:

C#:
var list = project.Lists["List"];
string str = project.Variables["Var"].Value;
string numStr = string.Empty;
for (int i = 0; i < list.Count; i++)
{
    if (list[i].Contains(str))
        numStr += i + "\r\n";
}
return numStr.Trim();
Взять номер строки первого вхождения:

C#:
var list = project.Lists["List"];
string str = project.Variables["Var"].Value;
string numStr = string.Empty;
for (int i = 0; i < list.Count; i++)
{
    if (list[i].Contains(str))
        return i;
}
return -1;

PS: Большая просьба, на будущее - называть тему более конкретно, чтобы отражалась краткая суть вопроса или проблемы, не общей фразой.
Почему получаем номер "вхождения"? Нужно получить номер точного совпадения.
 

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