
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
Доброго времени суток, уважаемые знатоки.
стоит задача, в текстовом файле 250 000 строк размер 120 мб в тексте встречаются химические вещества, они написаны в другом текстовом файле и в нём 10470 строк, надо заменить на случайные другие всего 20, весь процесс я примитивно вредставляю foreach(большой файл as строку_текста) { foreach(список хим веществ as строку_хим_вещества) { preg_peplace (строка_хим_вещества, строка_текста, переменная) } запись массива[] строка_текста } вроде всё просто, но это же дико, 250 000 строк проверить 10470 раз ещё и через preg_replace (потому что обязательная регулярка для хим_вещества [^\w]веществл ) Подскажите как такое оформить? |
![]() |
|||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 4155 Пользователь №: 38635 На форуме: Карма: 223 ![]() |
vestmar
не так уж и много, можно запихать в массив. Каждый элемент массива - одно химическое вещество.
далее, когда перебираешь строки своего 120мб файла, выдергиваешь рандомно элемент массива, и пишешь в строку. up: Хотя, кажется, я не понял задачу. ну, в общем смысл в том, чтобы сгенерировать масив (можно даже ассоциативный) и работать с ним без перебора Это сообщение отредактировал AllesKlar - 13.10.2014 - 23:15 -------------------- [продано копирайтерам]
|
||
![]() |
|||
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Не совсем ясна задача.
Разбираем:
file_1.txt содержит 250 000 строк текста, в котором встречаются химические вещества, размер файла 120Мб file_2.txt содержит 10 470 строк названий химических веществ, размер файла ?? надо заменить на случайные другие всего 20 - что заменить? где заменить? В файле_1 нужно рандомно из всего текста, заменить всего 20ть химических слов, взяв слова из 2го файла... или что?... Пример файла_1 и файла_2, что бы было понятно че куда... p.s. ну и свои наброски кода |
||
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
Извините за такое непонятное письмо!
В большом файле текстовом файле встречаются хим вещества, у меня есть полный список их, в отдельном файле 10470 химикатов (1), и есть список на которые нужно заменить 20 всего (2), Так вот из большого файла надо заменить всем хим вещества по списку (1) которые совпадут в тексте, на рандомные 20 (2), Я составлю пример завтра, Спасибо. |
![]() |
|
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Снова не совсем понятно...
Есть большой файл с текстом, текст содержит хим.вещества, которые нужно будет заменить, с этим все понятно. Для чего нужен отдельный файл со всеми химикатами?, если нужно заменить всего 20ть из "третьего" списка/файла... или там будет расшифровка?, типа Cu - Медь... |
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
список веществ которых нужно найти 10470 и заменить на случайные 20
представьте себе найти (хим вещество1|хим вещество2|хим вещество3|хим вещество4|и так до 10470) |
![]() |
|
![]() ![]() Чтобы все ! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2881 Пользователь №: 26852 На форуме: Карма: 162 ![]() |
Все, я в ауте... Жду примеры файлов (достаточно по 50 строк), а так же примеры:
имеем на входе файл 1 ( файл прикреплен ), в котором нужно будет произвести замены, файл БОЛЬШОЙ !!! и загонять его в массив - это не комильфо. имеем на входе файл 2 ( файл прикреплен ), который содержит ( ... ) ... имеем на входе файл N ( файл прикреплен ), который содержит ( ... ) нужно на выходе получить это - и тоже пример... потому как, до сих не понятно что нужно ![]() либо в аську стукай, аська в профиле. Это сообщение отредактировал walerus - 14.10.2014 - 20:29 |
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
walerus Спасибо Вам!) что уделили столько времени! Если не разберусь сам напишу в ICQ Вам)
|
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 4155 Пользователь №: 38635 На форуме: Карма: 223 ![]() |
walerus
Да все понятно. Есть файл и два списка. если в файле встречается элемент списка #1 , то заменить его рандомным элементом списка #2 Как я уже выше и сказал. Файлы с хим элементами читаем в массивы и работаем с ними.
Это как база. Дальше пороботать над оптимизацией. Но, то что 120 метров текста не надо обрабатывать регуляркой - это однозначно. -------------------- [продано копирайтерам]
|
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 4155 Пользователь №: 38635 На форуме: Карма: 223 ![]() |
В качестве оптимизации, сделать список слов, не подлежащих проверки(знаки препинания, более одного пробела и т.д.)
-------------------- [продано копирайтерам]
|
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
СПАСИБО! AllesKlar так гораздо быстрее! смысл понял дальше я сам)
|
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
Единственное что хотел бы узнать
вот к примеру строка- Вася пошёл в магазин, купить пива как получить Array ( [0] => Вася [1] => пошёл [2] => в [3] => магазин [4] => , [5] => купить [6] => пива ) что бы в массив попала и запятая? |
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 377 Пользователь №: 35724 На форуме: Карма: 6 ![]() |
explode (" ", str_replace (",", " ,",строка));
|
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 118 Пользователь №: 39885 На форуме: Карма: ![]() |
а потом я соберу обратно в строку? )
в такую какой была |
![]() |
|||||
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 4155 Пользователь №: 38635 На форуме: Карма: 223 ![]() |
vestmar Поэтому я и написал:
Ну, это уже типичная задачка из методички. Думай, пробуй.. Главное, что ты понимаешь:
-------------------- [продано копирайтерам]
|
||||
![]() |
![]() ![]() ![]() |