0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
1 | |
Многопоточный поиск строки в файле31.08.2014, 02:39. Показов 5572. Ответов 17
Метки нет (Все метки)
как создать функцию?
необходимо в файле вида 5255 3333 5555 6565 2222 найти строку 2222? если строка найдена вернуть "ok" и остановить поиск в файле. обращаться к функции будут много потоков.
0
|
31.08.2014, 02:39 | |
Ответы с готовыми решениями:
17
Поиск в файле нужной строки и использование строки, находящейся рядом Поиск по заданному выражению строки в файле и удаление найденной строки и нескольких прилежащих к ней строк Многопоточный загрузчик файлов по ссылкам в txt файле Поиск строки в файле |
31.08.2014, 03:02 | 2 | |||||
divert, метод, только метод...
Если нет общих (разделяемых) ресурсов (проверяются разные файлы), то нет никакой разницы, сколько потоков будет использоваться. Добавлено через 9 минут
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
31.08.2014, 03:07 [ТС] | 3 |
у меня пишет постоянно
Дополнительные сведения: Процесс не может получить доступ к файлу "G:\id.txt", так как этот файл используется другим процессом.
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
||||||
31.08.2014, 03:14 [ТС] | 5 | |||||
я написал так
один Добавлено через 45 секунд ругаеться на это место Добавлено через 2 минуты я наверно не правильно lock ставлю (((((((((( Добавлено через 50 секунд ФАЙЛ ОДИН. я прошу прощения не увидел ваш вопрос
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
01.09.2014, 22:15 [ТС] | 7 |
расскажу принцип работы
мне нужно создать функцию которая будет работать в потоке 1. открывает файл ищет строку 2. если строка найдена возрощает 0 3. если нет 1 4. Другая функция записывает строки в файл (строки парсятся с сайта) пробовал но пишет файл занят другим процессом и вылетает (((
0
|
Заблокирован
|
|
01.09.2014, 22:57 | 8 |
divert, может вы решаете задачу не так, как нужно?Вы уверены, что многопоточность лучшее решение? Лучше опишите то, что вы решаете в общих чертах. Правильно ли я вас понял:
1 функция записывает спарсенную инфрмацию в файл, а 2-ая одновременно ищет в том-же файле определенную строку?
0
|
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
|
|
01.09.2014, 23:05 | 9 |
Многопоточность прироста к скорости не даст, все потоки упрутся в скорость чтения с жесткого диска.
Один из вариантов вышеописанной проблемы чтение файла в массив с последующим разделеним на блоки которые нужно будет распределить между потоками. В общем овчинка выделки не стоит, если только счет файлов не идет на сотни или тысячи
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
02.09.2014, 00:14 [ТС] | 10 |
наверно вы правы. надо все строки по таймеру раз в 1 сек загружать в масив а потом сравнивать на совпадение в потоке. а если строк будет более 100 000 ?
Добавлено через 47 минут да вы правильно поняли просто мне нужна функция которая не давала повторно зайти по ссылки которая в файле (ссылка уже парсилась)
0
|
8 / 8 / 6
Регистрация: 14.06.2013
Сообщений: 65
|
||||||
02.09.2014, 00:23 | 11 | |||||
эта ошибка вылетает когда файл во время выполнения открыт например блокнотом, рекомундую закрыть все программы которые могут испольовтаь данный файл, может проект перегрузить.
либо кароче сделай так
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|||||||||||
02.09.2014, 00:50 [ТС] | 12 | ||||||||||
спасибо я пробывал так
то есть так
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
02.09.2014, 00:59 [ТС] | 14 |
всмысле так ? List<string> ToWrite = new List<string>();
Добавлено через 52 секунды и работать с ним ? он будет в памяти сидеть ? много он строк может хранить ?
0
|
Заблокирован
|
|
02.09.2014, 01:02 | 15 |
divert, да
Добавлено через 2 минуты http://msdn.microsoft.com/ru-r... .110).aspx повторюсь: Чем больше предоставите информации, тем проще будет помочь.
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
02.09.2014, 10:06 [ТС] | 16 |
а как правильно написать функцию для поиска строки в List<string> ToWrite = new List<string>();
Добавлено через 9 часов 1 минуту я понимаю мне надо использовать FindAll есть List<string> ToWrite = new List<string>(); в ToWrite записаны поля вида http://ya.ru http://mail.ru ....... как написать условие что в ToWrite есть уже http://ya.ru
0
|
Life Builder
532 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,754
|
|||||||||||
02.09.2014, 13:35 | 17 | ||||||||||
divert, может вам это нужно
0
|
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 99
|
|
06.09.2014, 14:03 [ТС] | 18 |
спасибо всем!
0
|
06.09.2014, 14:03 | |
06.09.2014, 14:03 | |
Помогаю со студенческими работами здесь
18
Поиск строки в файле Поиск строки в файле Поиск строки в файле Поиск строки в файле Поиск строки в файле Поиск строки в файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |