An4eus
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Ulisss это обычный текстовый файл с разделителями ; обычно это файл csv мне не совсем ясен вопрос Цитата: как сделать отбор по, например, пятому элементу строки? | в принципе, нужно запихнуть всё в ТЗ, а дальше извращаться как можно =) кстати, я так же решил воспользоваться типовой функцией глРазложить() Код: Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт Список = СоздатьОбъект("СписокЗначений"); Длина = СтрДлина(Разделитель); Стр = СокрЛП(Стр); Поз = Найти(Стр, Разделитель); Пока 0 < Поз Цикл Список.ДобавитьЗначение(СокрП(Лев(Стр, Поз-1))); Стр = СокрЛ(Сред(Стр, Поз+Длина)); Поз = Найти(Стр, Разделитель); КонецЦикла; Список.ДобавитьЗначение(Стр); Возврат Список; КонецФункции Текст = СоздатьОбъект("Текст"); Текст.Открыть(ИмяФайла); КоличествоСтрокВФайле = Текст.КоличествоСтрок(); РезультирующаяТаблица = СоздатьОбъект("ТаблицаЗначений"); ПервыйПроход = 1; Для ТекущийНомерСтрокиВФайле = 1 по КоличествоСтрокВФайле Цикл ТекущаяСтрока = Текст.ПолучитьСтроку(ТекущийНомерСтрокиВФайле); СЗ_ТекСтроки = глРазложить(ТекущаяСтрока, ";"); ДлинаСЗ_ТекСтроки = СЗ_ТекСтроки.РазмерСписка(); Если ПервыйПроход = 1 Тогда //создаим колонки для ТаблицыЗначений Для н = 1 по ДлинаСЗ_ТекСтроки Цикл РезультирующаяТаблица.НоваяКолонка(,"Строка"); КонецЦикла; ПервыйПроход = 0; КонецЕсли; //добавим текущую строку в результирующую таблицу РезультирующаяТаблица.НоваяСтрока(); Для н = 1 по ДлинаСЗ_ТекСтроки Цикл РезультирующаяТаблица.УстановитьЗначение(ТекущийНомерСтрокиВФайле, н, СЗ_ТекСтроки.ПолучитьЗначение(н)); КонецЦикла; КонецЦикла |
---------- Век живи - век учись! |
|