поиск в тестовом доке

  • Автор темы Автор темы maks_sim
  • Дата начала Дата начала

maks_sim

Client
Регистрация
26.03.2015
Сообщения
183
Реакции
12
Баллы
18
как осуществить поиск в доке определенных взятых с переменной слов-сочетаний и класть если нашел в переменную номер строки в которой нашел их
 
как осуществить поиск в доке определенных взятых с переменной слов-сочетаний и класть если нашел в переменную номер строки в которой нашел их
пример покажите, а то не понятно
 
Если стандартными кубиками, то перебором - устанавливаем счётчику значение 1, закидываем текст в список, берём построчно с удалением и через регулярку ищем нужное вхождение, нашли - заканчиваем проверку, не нашли - увеличиваем счётчик на 1 и снова берём строку.
 
пример (Идет дождь дети хотят на улицу) /(собака сорвалась и выбежала на улицу искупалась в луже который оставил после себя дождь ) надо чтобы слова дождь и слова улицу вытащить в переменную
 
в тексте может быть до 1000 слов кубиками нереально долго
 
а есле несколько слов в разных местах
 
Блин, объяснили бы нормально что нужно, давно бы уже помогли. На данный момент нихрена не понятно!
 
чтот у меня пропал шильдик для кода
 
всё нашёл)
вот так можно

Код:
Развернуть Свернуть Копировать
string str1 = "Идет дождь дети хотят на улицу";
            string str2 = "собака сорвалась и выбежала на улицу искупалась в луже который оставил после себя дождь";

            for (int d = 0; d < 1; d++) // кол - во строк для обработки
            {
                string[] str1Mass = str1.Replace(".", "").Split(' '); // загон строки в массив и обрезка точки в конце
                string[] str2Mass = str2.Replace(".", "").Split(' '); // тоже самое

                string str3 = null;

                for (int i = 0; i < str1Mass.Length; i++) // берём в обработку строку
                {

                    for (int s = 0; s < str2Mass.Length; s++) //

                    {
                        if (str1Mass[i] == str2Mass[s]) str3 += str2Mass[s] + " ";
                    }

                }

                if (str3 != null) File.AppendAllText("test.txt", (d + 1) + " " + str3 + Environment.NewLine, Encoding.UTF8); // сохраняем срвподение в файл в формате (№строки 1совподен 2совпод ....)
             }
 
в первый цикл необходимо подгружать строки из массива, я не знаю вашей логике, поэтому ничего не прописывал, а просто взял существующую строку
 
спс буду побывать
 
C#:
Развернуть Свернуть Копировать
string str1 = "Идет дождь дети хотят на улицу";
string str2 = "собака сорвалась и выбежала на улицу искупалась в луже который оставил после себя дождь";
string[] str1Mass = str1.Replace(".", "").Split(' '); // загон строки в массив и обрезка точки в конце
string[] str2Mass = str2.Replace(".", "").Split(' '); // тоже самое

var resultList = new List<string>();

resultList = str1Mass.Intersect(str2Mass).ToList();

foreach (var ans in resultList)
{
    // сохраняй куда надо, в файл или перемуную
    project.SendInfoToLog("", "Слово --> " + ans, true);
}
 
  • Спасибо
Реакции: patlat
краткость. сестра таланта)
 
в тексте может быть до 1000 слов кубиками нереально долго
1000 слов это смешные объемы. для кубиков это даже меньше секунды.
то что у вас в PM оно медленно отрабатывает, так это для ваших глаз демонстрация. Запустите в ЗП проэкт и увидите на сколько "медленно" все происходит)
 
  • Спасибо
Реакции: masterLomaster

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