Перезапись и дозапись в CSV с помощью макроса [SAVETOFILE]

Тема в разделе "Работа с подключенными CSV файлами", создана пользователем PeterPen, 22 окт 2019.

  1. PeterPen

    PeterPen Member Пользователи

    Регистрация:
    15 окт 2014
    Сообщения:
    61
    Город:
    Сочи
    Добрый день, подскажите есть такая конструкция
    [LOADCSV(new)]C:\MGGROUP\12.csv[/LOADCSV][DOCSOURCE]
    [SAVETOFILE:import1.csv]
    [GETCSVDATA(new)][INT_ID]|2[/GETCSVDATA][/SAVETOFILE]

    требуется чтобы при парсинге файл перезаписывался, при добавленном {add} файл парсится без проблем с дозаписью в файл, но когда убираешь данный параметр в результат парсинга выводит одну ячейку и даже не первую а 23 ю из 24 х
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Первый вызов [SAVETOFILE:import1.csv] должен быть без параметра {add} (что перезапишет файл).

    Остальные вызовы должны быть с параметром {add} (что дозапишет в файл).
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    [OUTPUTONCE]
    [SAVETOFILE:...][/SAVETOFILE]
    [OTHER]
    [SAVETOFILE:...{add}][/SAVETOFILE]
    [/OUTPUTONCE]
     
  4. PeterPen

    PeterPen Member Пользователи

    Регистрация:
    15 окт 2014
    Сообщения:
    61
    Город:
    Сочи
    Добрый день! Вот конструкция. И загружаемый файл. Без {add} загружается только последняя строка файла.
     

    Вложения:

    • Проект1.cdp
      Размер файла:
      40,8 КБ
      Просмотров:
      3
    • 12.csv
      Размер файла:
      3,7 КБ
      Просмотров:
      2
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Смотрите, первый макрос [SAVETOFILE] в вашем проекте без параметра {add}. То есть, при парсинге каждой ссылки файл будет перезаписываться.
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вам нужно макрос [SAVETOFILE] (без параметра {add}) взять в [DOITATFIRSTDOC]...[/DOITATFIRSTDOC]. Чтобы он перезаписал файл только при первом вызове.
     
    PeterPen нравится это.
  7. PeterPen

    PeterPen Member Пользователи

    Регистрация:
    15 окт 2014
    Сообщения:
    61
    Город:
    Сочи
    Теперь записывается парсинг только Первой ссылки!
     
    Последнее редактирование: 23 ноя 2019
  8. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вы неправильно поняли принцип работы [OUTPUTONCE].

    Проект с рекомендованным мною выше макросом приложил.
     

    Вложения:

Поделиться этой страницей