|
Кто как борется с лишними "разделителями" при загрузке из csv-файла? | ☑ | ||
---|---|---|---|---|
0
palpetrovich
24.10.13
✎
16:12
|
натыкают ТочекСЗапятой в назначении платежа - а ты тут выкручивайся как хочешь... :)
|
|||
1
Voronve
24.10.13
✎
16:13
|
Файло для выгрузки формируешь ты или кто то другой ?
|
|||
2
palpetrovich
24.10.13
✎
16:17
|
(1) Кто то другой, вернее другие. Из клинт-банков
|
|||
3
Voronve
24.10.13
✎
16:19
|
Строку в список значений, парсить с конца списка
|
|||
4
ДенисЧ
24.10.13
✎
16:21
|
По стандарту csv такие строки должны быть в кавычках...
|
|||
5
palpetrovich
24.10.13
✎
16:26
|
(3) да ну, зачем? проще из полученной строки выкусывать последние 2 (16 и 17), остаток - в многострочную...
конец структуры: 15. Кредит 16. Призначення платежу 17. Гривневе покриття (4) не особенно-то его чтут, стандарт этот |
|||
6
Voronve
24.10.13
✎
16:37
|
(5) Т.е. зуб даешь что ручонками более никуда не впихнут ; ?
|
|||
7
Serginio1
24.10.13
✎
16:48
|
||||
8
palpetrovich
24.10.13
✎
16:51
|
(6) не дам, но во все остальные поля - это уже вредительство :)
(7) почитаю, спасибо |
|||
9
smaharbA
24.10.13
✎
16:53
|
шапка есть у него ?
|
|||
10
1dvd
24.10.13
✎
16:53
|
тут даже человек не сможет разобрать где заканчивается колонка, и где начининается новая
|
|||
11
Serginio1
24.10.13
✎
16:55
|
||||
12
palpetrovich
24.10.13
✎
17:27
|
в общем - соорудил костыльчик, пока формат файла не поменятся - будет работать, воможность наличия ";" в других полях - даже не рассматриваю :)
ТЗ = НОВЫЙ ТаблицаЗначений; ЗаголовокТаблицы = СтрЗаменить(Текст.ПолучитьСтроку(1),";",Символы.ПС); Для Инд = 1 По СтрЧислоСтрок(ЗаголовокТаблицы) Цикл ТЗ.Колонки.Добавить("Инд"+Инд ,,СтрПолучитьСтроку(ЗаголовокТаблицы, Инд)); КонецЦикла; // формат файла: //... //14. Дебет //15. Кредит //16. Призначення платежу //17. Гривневе покриття Для ТекущаяСтрока = 2 По Текст.КоличествоСтрок() Цикл НоваяСтрока = ТЗ.Добавить(); ПолученнаяСтрока = СтрЗаменить(Текст.ПолучитьСтроку(ТекущаяСтрока),";",Символы.ПС); ЧислоСтрок = СтрЧислоСтрок(ПолученнаяСтрока); НазначениеПлатежа = ""; Для Инд = 1 По ЧислоСтрок Цикл ТекСтрока = СтрПолучитьСтроку(ПолученнаяСтрока, Инд); Если (Инд < 16) ИЛИ (ЧислоСтрок = 17) Тогда НоваяСтрока[Инд-1] = ТекСтрока; ИначеЕсли (Инд < ЧислоСтрок) И (ЧислоСтрок > 17) Тогда НазначениеПлатежа = НазначениеПлатежа + ТекСтрока; ИначеЕсли Инд = ЧислоСтрок Тогда НоваяСтрока[15] = НазначениеПлатежа; НоваяСтрока[16] = ТекСтрока; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
13
smaharbA
24.10.13
✎
17:33
|
т.е. заголовок присутствует ?
|
|||
14
Rebelx
24.10.13
✎
17:43
|
(0) типа строка в которой есть разделители не в кавычках?
|
|||
15
palpetrovich
24.10.13
✎
21:12
|
(13) т.е. заголовок присутствует!
(14) может быть в кавычках, может быть не в кавычках ...люди :) |
|||
16
Serginio1
25.10.13
✎
10:16
|
(15) Разберись с форматом CSV wiki:CSV
|
|||
17
Serginio1
25.10.13
✎
10:17
|
||||
18
palpetrovich
25.10.13
✎
12:46
|
(16) хва удже продвигать свое мегагениальное решение, мне совершенно не нужна унивесальность! Проблемку, охвученную в (0), код из (12) прекрасно решает и так
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |