Это старая версия документа!
Процедура ПрочитатьФайлCSV(ИмяФайла) Разделитель = ","; ТабЗн = новый ТаблицаЗначений; ЗагружаемыйФайл = Новый ТекстовыйДокумент; ЗагружаемыйФайл.Прочитать(ИмяФайла); Шапка = ЗагружаемыйФайл.ПолучитьСтроку(1); МассивКол = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Шапка, ","); Для Каждого ИмяСтолбца Из МассивКол Цикл ИмяБезПробелов = СокрЛП(СтрЗаменить(ИмяСтолбца," ","")); ИмяБезПробелов = СокрЛП(СтрЗаменить(ИмяБезПробелов,"""","")); ТабЗн.Колонки.Добавить(ИмяБезПробелов,,ИмяБезПробелов); КонецЦикла; Для НомерСтроки = 2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки); Строка = СокрЛП(СтрЗаменить(Строка,"""","")); МассивКол = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Строка,Разделитель); НоваяСтрочка= ТабЗн.Добавить(); Для НомерСтолбца = 1 по МассивКол.Количество() Цикл ТекущееЗначение = МассивКол[НомерСтолбца-1]; ИмяКолонки = ТабЗн.Колонки[НомерСтолбца-1].Имя; НоваяСтрочка[ИмяКолонки] = СокрЛП(ТекущееЗначение); КонецЦикла; КонецЦикла; КонецПроцедуры;
Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено, СокращатьНепечатаемыеСимволы = Ложь) Экспорт
Результат = Новый Массив;
// Для обеспечения обратной совместимости.
Если ПропускатьПустыеСтроки = Неопределено Тогда
ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
Если ПустаяСтрока(Строка) Тогда
Если Разделитель = " " Тогда
Результат.Добавить("");
КонецЕсли;
Возврат Результат;
КонецЕсли;
КонецЕсли;
//
Позиция = СтрНайти(Строка, Разделитель);
Пока Позиция > 0 Цикл
Подстрока = Лев(Строка, Позиция - 1);
Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
Если СокращатьНепечатаемыеСимволы Тогда
Результат.Добавить(СокрЛП(Подстрока));
Иначе
Результат.Добавить(Подстрока);
КонецЕсли;
КонецЕсли;
Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
Позиция = СтрНайти(Строка, Разделитель);
КонецЦикла;
Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
Если СокращатьНепечатаемыеСимволы Тогда
Результат.Добавить(СокрЛП(Строка));
Иначе
Результат.Добавить(Строка);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции