Работа с подключаемыми таблицами CSV (чтение и запись данных из/в CSV-файлы на диске и многое другое, макросы: [LOADCSV], [GETCSVDATA], [PUTCSVDATA], [GETCSVCOORD], [COPYCSVDATA], [CSVREPLACE])

Загрузка таблицы CSV с диска в память программы

Достаточно просто указать имя таблицы для хранения ее в памяти и путь к файлу на диске для ее загрузки:

1
2
3
4
[LOADCSV(имя таблицы)]путь к файлу CSV[/LOADCSV]
[LOADCSV(1)]C:\Content\article_all_91.csv[/LOADCSV]
[LOADCSV(2)]C:\Content\article.csv[/LOADCSV]
[LOADCSV(3)]C:\Content\article121415.csv[/LOADCSV]

Загрузка таблиц будет производиться только 1 раз для каждого файла при запуске парсинга контента! Так что можно смело оставлять макросы [LOADCSV] в любом месте шаблона вывода!


Чтение данных из загруженной таблицы CSV

Для взятия содержимого указанной ячейки используйте макрос [GETCSVDATA]

1
2
3
4
5
6
7
8
9
10
11
[GETCSVDATA(имя таблицы)]Y (номер ряда таблицы)|X (номер столбца таблицы)[/GETCSVDATA]
[GETCSVDATA(1)]1|1[/GETCSVDATA] -> возьмет содержимое ячейки с индексом 1/1 (первый ряд, первый столбец)
[GETCSVDATA(1)]1|2[/GETCSVDATA] -> возьмет содержимое ячейки с индексом 1/2 (первый ряд, второй столбец)
[GETCSVDATA(1)]3|{text}возраст[/GETCSVDATA] -> возьмет содержимое ячейки на пересечении третьего ряда и столбца с именем "возраст" (параметр {text} указывает на текстовый тип переменной)
[GETCSVDATA(1)]{text}cl164708|{text}возраст[/GETCSVDATA] -> возьмет содержимое ячейки на пересечении ряда с именем "cl164708" и столбца с именем "возраст" (параметр {text} указывает на текстовый тип переменной)
 
[GETCSVDATA(1)]1|0[/GETCSVDATA] -> возьмет весь первый ряд ячеек (при индексе столбца = 0)
[GETCSVDATA(1)]2|0[/GETCSVDATA] -> возьмет весь второй ряд ячеек (при индексе столбца = 0)
[GETCSVDATA(1)]0|5[/GETCSVDATA] -> возьмет весь пятый столбец (при индексе ряда = 0)
 
[GETCSVDATA(1)]1+1|1[/GETCSVDATA] -> возьмет содержимое ячейки с индексом 2/1 (в индексах Y и X поддерживаются операции: "+", "-", "*", "/")



Запись данных в ячейки CSV-файла

Добавление данных в загруженные таблицы CSV осуществляется с помощью макроса [PUTCSVDATA]. Сохранение изменений открытых CSV-файлов на диск производится при завершении процедуры парсинга контента.

1
2
3
4
5
6
7
8
[PUTCSVDATA(1)]10|{text}возраст|[TOPASTE]текст[/PUTCSVDATA] -> вставит "текст" в ячейку на пересечении 10 ряда и столбца с именем "возраст" (при этом произойдет перезапись существующего текста ячейки, параметр {text} указывает на текстовый тип переменной)
 
[PUTCSVDATA(1)]10|5|{notovervrite}[TOPASTE]текст[/PUTCSVDATA] -> вставит "текст" в ячейку на пересечении 10 ряда и 5 столбца (если в ячейке будет текст, то он не перезапишется, так как есть параметр {notovervrite})
 
[PUTCSVDATA(1)]10|5|{merge}{br}[TOPASTE]текст[/PUTCSVDATA] -> вставит "текст" в ячейку на пересечении 10 ряда и 5 столбца (так как есть параметр {merge}, "текст" будет ДОБАВЛЕН к текущему содержимому ячейки через указанный разделитель {br} (перенос строки))
 
Используйте в координатах оператор {lastcolumn_orig}, который выведет номер последнего столбца CSV файла:
[PUTCSVDATA(1)]10|{lastcolumn_orig}+1|[TOPASTE]текст[/PUTCSVDATA] -> вставит "текст" в ячейку на пересечении 10 ряда и последнего столбца + 1 (если индекс последнего столбца = 5, то "текст" вставится в шестой столбец (так как есть +1))



Получение координат нужных ячеек для использования их в макросах [GETCSVDATA] и [PUTCSVDATA]

Координаты нужных ячеек (которые содержат определенный текст) можно получать с помощью макроса [GETCSVCOORD] (его нужно использовать вместо Y или X координат в макросах [GETCSVDATA] и [PUTCSVDATA])

1
2
3
4
5
6
7
8
9
[GETCSVDATA(1)]     [GETCSVCOORD(1)]Y|5|[EXACT]серебро[/GETCSVCOORD]     |33[/GETCSVDATA] -> тут вместо Y используется [GETCSVCOORD], который найдет и выведет номер ряда ячейки с текстом "серебро" из пятого столбца
 
[GETCSVCOORD(1)]Y|10|[EXACT]серебро[/GETCSVCOORD] -> выведет координату Y (номер ряда) для ячейки из 10 столбца, которая содержит текст "серебро"
[GETCSVCOORD(1)]Y|{text}материал|[EXACT]серебро[/GETCSVCOORD] -> выведет координату Y  для ячейки из столбца с именем "материал", которая содержит текст "серебро" (параметр {text} указывает на текстовый тип переменной)
 
[GETCSVCOORD(1)]5|X|[EXACT]серебро[/GETCSVCOORD] -> выведет координату X (номер столбца) для ячейки из 5 ряда, которая содержит текст "серебро"
 
Уберите параметр [EXACT] для того, чтобы искать частичное совпадение текста ячейки:
[GETCSVCOORD(1)]5|X|серебро[/GETCSVCOORD] -> выведет координату X (номер столбца) для ячейки из 5 ряда, которая содержит в своем тексте подстроку "серебро"



Получение текущих размеров таблицы (получение текущего количества рядов и столбцов)

1
2
[GETCSVDATA(1)]{ROWCOUNT}[/GETCSVDATA] - выведет текущее количество рядов ячеек таблицы 1
[GETCSVDATA(1)]{COLCOUNT}[/GETCSVDATA] - выведет текущее количество столбцов таблицы 1



Использование первоначальных размеров таблицы (которые были на момент загрузки таблицы), в качестве координат макросов [PUTCSVDATA], [GETCSVDATA], [GETCSVCOORD]

1
2
3
[PUTCSVDATA(1)]{lastrow_orig}+1|{lastcolumn_orig}+1|{overwrite}[TOPASTE]текст[/PUTCSVDATA]
{lastrow_orig} - выведет номер последнего ряда ячеек таблицы (количество рядов ячеек таблицы на момент ее загрузки при запуске парсинга)
{lastcolumn_orig} - выведет номер последнего столбца таблицы (количество столбцов таблицы на момент ее загрузки при запуске парсинга)

Важное примечание: Чтобы значения {lastrow_orig} и {lastcolumn_orig} обновлялись при парсинге каждого последующего WEB-документа (при каждом вызове макроса [LOADCSV]), добавьте в макрос [LOADCSV] параметры {rrowc} и/или {rcolc} соответственно (в этом случае, при парсинге каждого последующего WEB-документа, у вас всегда будет доступ к актуальному последнему ряду и столбцу подключенной таблицы)

1
[LOADCSV(1)]{rrowc}{rcolc}C:\Content\12.csv[/LOADCSV]



Content Downloader


Копирование или перенос рядов ячеек таблицы (строк CSV) из одного файла в другой


Перенести строку из одного CSV-файла на диске в другой можно с помощью макроса [COPYCSVDATA]
1
2
3
4
5
6
7
8
[COPYCSVDATA(имя таблицы 1|имя таблицы 2)]Y1|X1||Y2|X2[/COPYCSVDATA] (где Y1 - номер строки первой CSV-таблицы (откуда брать строку), Y2 - номер строки второй таблицы (куда вставлять))
 
[COPYCSVDATA(1|2)]1|X||11|X[/COPYCSVDATA] - возьмет первую строку таблицы "1" и вставит ее на 11 строку таблицы "2"
[COPYCSVDATA(1|2)]1|X||Y|X[/COPYCSVDATA] - возьмет первую строку таблицы "1" и добавит ее в конец таблицы "2" (координата Y2 не задана, указана, как Y)
 
[COPYCSVDATA({move}1|2)]1|X||11|X[/COPYCSVDATA] - перенесет первую строку таблицы "1" на 11 строку таблицы "2"
[COPYCSVDATA({move}1|2)]4|X||11|X[/COPYCSVDATA] - перенесет четвертую строку таблицы "1" на 11 строку таблицы "2"
[COPYCSVDATA({move}1|2)]4|X||Y|X[/COPYCSVDATA] - перенесет четвертую строку таблицы "1" в конец таблицы "2"

Content Downloader


Применение функций поиск-замены к ячейкам, строкам или столбцам CSV

1
2
3
4
5
6
7
8
9
10
[CSVREPLACE(имя таблицы)]Y|X|HC||правила поиск-замены[/CSVREPLACE] (где HC - количество строк шапки CSV, при поиск-замене в указанных столбцах или в ячейках всей таблицы шапка CSV затронута не будет, можно установить значение 0)
 
[CSVREPLACE(1)]Y|X|1||что заменить|на что заменить[/CSVREPLACE] - заменит в каждой ячейке CSV (кроме первой строки таблицы) "что заменить" на "на что заменить"
[CSVREPLACE(1)]Y|X|0||что заменить|на что заменить[/CSVREPLACE] - заменит в каждой ячейке CSV (включая первую строки таблицы) "что заменить" на "на что заменить"
 
[CSVREPLACE(1)]4|X|1||что заменить|на что заменить[/CSVREPLACE] - применит поиск-замену к каждой ячейке четвертой строки CSV
[CSVREPLACE(1)]Y|4|1||что заменить|на что заменить[/CSVREPLACE] - применит поиск-замену к каждой ячейке (кроме первой) четвертого столбца CSV
[CSVREPLACE(1)]Y|4|0||что заменить|на что заменить[/CSVREPLACE] - применит поиск-замену к каждой ячейке (включая ячейку строки заголовка таблицы) четвертого столбца CSV
 
[CSVREPLACE(1)]2|4|1||что заменить|на что заменить[/CSVREPLACE] - применит поиск-замену к ячейке с координатами 2:4 (вторая строка, четвертый столбец таблицы CSV)



1 Star2 Stars3 Stars4 Stars5 Stars (Еще нет оценок)

Загрузка...
Автор: admin, 26 декабря 2016
Рубрики: Парсинг, Функции обработки
Метки: , , ,

Последние статьи

css.php