- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть огромный xml файл (около 800мб) с данными о товарах. У товаров изменились категории. Есть файл в формате json с данными о старых и новых категориях. Категорий около 10к. Нужно сделать скрипт и программку который будет в xml файле заменять старые айди категорий на новые. На чем лучше делать PHP, C++, Delphi? Какой максимальный размер массивов в данных языках? Посоветуйте как правильно реализовать алгоритм поиска и замены, чтобы весь объем обрабатывался максимально быстро.
Если операция разовая - то лучше делайте на том, на чем умеете.
Для того же php есть XMLReader - класс для потоковой обработки больших xml-файлов. Т.е. он не будет пытаться запихнуть весь файл в память, а позволяет обрабатывать его поэлементно.
http://php.net/manual/ru/class.xmlreader.php
Я бы для начала попробовал на Bourne Shell.
cat, sed, awk.
Если для вас родная среда Windows, и нужно побыстрее, EmEditor может кушать очень большие файлы, при этом, работает с регулярками и поддерживает макросы.
Оказалось, что и в *nix под wine он так же замечательно работает.
На ru-board есть лекарство :) Это, конечно, опупеть для русского человека — за продвинутый блокнот платить 6,752.36 RUB.
Есть огромный xml файл (около 800мб) с данными о товарах. У товаров изменились категории. Есть файл в формате json с данными о старых и новых категориях. Категорий около 10к. Нужно сделать скрипт и программку который будет в xml файле заменять старые айди категорий на новые. На чем лучше делать PHP, C++, Delphi? Какой максимальный размер массивов в данных языках? Посоветуйте как правильно реализовать алгоритм поиска и замены, чтобы весь объем обрабатывался максимально быстро.
вы собираетесь делать массив 800 Мб? Я думаю можно обрабатывать построчно, не загружая сразу весь файл, тогда любой язык подойдет.
Я думаю можно обрабатывать построчно
хмл? :)
АПД. Хотя да, зависит от того где и как встречаются заменяемые данные.
Кстати, если будете пробовать php, думаю, что переработать большой файл проблемы не будет, если читать построчно и писать на выход в каждой итерации. Зажирать всё сразу в память совсем необязательно.
800 мб, можно и в память загрузить на любом языке. Ограничения лишь в объеме оперативки. Я бы на python сделал, там делов то вероятно не много. А для работы с файлами язык большого значения не играет, тут важнее доступные для языка библиотеки (работа с json, xml ). Парсить построчно и регулярками xml или json файл - это полнейший изврат (конечно если это не разовая операция), т.к. в следующий раз весь файл может придти в одну строку с другим порядком значений.
800 мб, можно и в память загрузить на любом языке. Ограничения лишь в объеме оперативки. Я бы на python сделал, там делов то вероятно не много. А для работы с файлами язык большого значения не играет, тут важнее доступные для языка библиотеки (работа с json, xml ). Парсить построчно и регулярками xml или json файл - это полнейший изврат (конечно если это не разовая операция), т.к. в следующий раз весь файл может придти в одну строку с другим порядком значений.
будет в одну строку - можно считывать по 32 байта:)
будет в одну строку - можно считывать по 32 байта
а значение ключа будет в 64 :)) или на границе блоков (часть в одном, часть в другом) и т.п. изврат же, проверено.
а значение ключа будет в 64 :)) или на границе блоков (часть в одном, часть в другом) и т.п. изврат же, проверено.
может быть, но если файл будет 500 Гб, будете считывать все равно блоками хоть по 800 мб, но блоками🍿
да любой язык, кому что ближе. однажды самому доводилось хмл через data load infile в sql пихать и уже там обрабатывать.