Задать вопрос
@xuxubla

Можно ли изменять в файле CSV конкретную строку?

Есть база товаров магазина в CSV файле. Необходимо проверять каждую строку на наличие обновлений. Прошел строку -> есть изменение -> перезаписал строку, не трогая остальную часть.
Как хранятся данные в CSV (с примером):
item_id; item_ean; item_name; item_price
1; 121hggh;Table; 2300

Парсер товаров со стороннего магазина записывает данные по каждому товару в массив (пример):
array {
$item_id = 1,
$item_ean = '121hggh',
$item_name = 'Table',
$item_price = 2 350,00}
При сравнении видно, что цена изменилась.
Как мне в CSV-файле только одну строку (в идеале одно значение), не перезаполняя при этом остальную часть?
  • Вопрос задан
  • 1287 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
AlexXYZ
@AlexXYZ
O Keep Clear O
Маловато данных для размышления. Даже если вариант стандартный База и импорт CSV, то не всё однозначно.
Если есть ключевое поле, то проблем нет. Если нет, то всё несколько сложнее, иногда даже и невозможно. Дайте немного больше информации о базе и CSV?
Ответ написан
valerium
@valerium
Изобретая велосипед
А что мешает поступить как белый человек, то есть распарсить CSV, пройтись по нему циклом и исправить нужные значения, а потом записать эти данные обратно в файл?

В конце концов, если файл огромен (сотни мегабайт), можно его построчно читать, править и записывать. Хотя для оптимизации работы с диском лучше не по одной строке, а по десятку (смотря, какой длины строки).

Да, на огромном файле скрипт работать будет долго, может, даже несколько минут. Но файлы — они такие. Нужна скорость — берите базу данных.

Исправить только одно значение теоретически можно, но геморроя не оберётесь. Например, представьте ситуацию, когда нужно не просто изменить пару байт, а добавить их в середину файла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы