Книга знаний

1С:Предприятие / Приемы программирования / Внешние обработки

Преобразование csv в таблицу значений

А то достали уже с этим вопросом.Автор статьи:
Последняя редакция №1 от 14.10.08
URL: http://kb.mista.ru/article.php?id=711

Ключевые слова: csv, преобразовать, открыть


На выходе - в Список - список колонок, Таблица - таблица с данными.



Функция СтрокаВСписок(Стр,Разделитель = ";")

   Список = СоздатьОбъект("СписокЗначений");

   Б = СтрДлина(Разделитель)-1;

   Пока СтрДлина(Стр)>0 Цикл

       А = Найти(Стр,Разделитель);

       Если А>0 Тогда

           ВрСтр = СокрЛП(Лев(Стр,А-1));

           Стр = СокрЛП(Прав(Стр,СтрДлина(Стр)-А-Б));

       Иначе

           // последняя

           ВрСтр = СокрЛП(Стр);

           Стр = "";

       КонецЕсли;

       

       Если Лев(ВрСтр,1) = """" И Прав(ВрСтр,1) = """" Тогда

           ВрСтр = Сред(ВрСтр,2,СтрДлина(ВрСтр)-2);

       КонецЕсли;

       

       Список.ДобавитьЗначение(ВрСтр);

   КонецЦикла;



   Возврат(Список)

КонецФункции



Процедура Парсер(ИмяФайла, Список, Таблица);

   Текст = СоздатьОбъект("Текст");

   Сообщить(ИмяФайла);

   Текст.Открыть(ИмяФайла);

   Если Текст.КоличествоСтрок()=0 Тогда

       Возврат;

   КонецЕсли;

   Заголовки = СокрЛП(Текст.ПолучитьСтроку(1));

   Список = СоздатьОбъект("СписокЗначений");

   Список = СтрокаВСписок(Заголовки);

   

   Таблица = СоздатьОбъект("ТаблицаЗначений");

   Для Сч = 1 По Список.РазмерСписка() Цикл

       Таблица.НоваяКолонка(Список.ПолучитьЗначение(Сч));

   КонецЦикла;

   

   Для Сч = 2 По Текст.КоличествоСтрок() Цикл

       Список1 = СтрокаВСписок(Текст.ПолучитьСтроку(Сч));

       Если СокрЛП(Текст.ПолучитьСтроку(Сч))="" Тогда

           Продолжить;

       КонецЕсли;

       Таблица.НоваяСтрока();

       Для Сч1 = 1 По Список1.РазмерСписка() Цикл

           Таблица.УстановитьЗначение(Сч-1,Сч1,Список1.ПолучитьЗначение(Сч1));

       КонецЦикла;

   КонецЦикла;

КонецПроцедуры


Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика