|
Чтение в 1С из txt файла | ☑ | ||
---|---|---|---|---|
0
Su60ta_SunRise
12.12.13
✎
16:52
|
Вот строка:
"2003150052","0000000001","845","845","01.11.13","10:00:00","2000207766","Администратор","4","1","2000001760","Кухня","2","0","2000211168","Хлеб","p","1000","килограмм","48,962962962963","13,5","661","48,962962962963","13,5","661","0","0","0" разделитель "," ну тогда можно сделать так: Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл СтрПрих = Текст.ПолучитьСтроку(НомерСтроки); ПерваяСтрока = СтрЗаменить(СтрПрих, ",",Символы.ПС); Для Счетчик = 1 По СтрЧислоСтрок(ПерваяСтрока) Цикл Показали нужный разделитель и пошли читать, но беда в доме, в одной из ячеек строки Есть число, у которого дробная и целая часть разделяется запятой, и получаю я трилион сосисок и миллиард колбас. подскажи способ обойти это, вроде как можно сказать 1С-ке не трогать разделитель в кавычках...м? |
|||
1
Fragster
модератор
12.12.13
✎
16:53
|
нужно юзать ADO и его текстовый драйвер
|
|||
2
Fragster
модератор
12.12.13
✎
16:53
|
потому что походу это .csv
|
|||
3
kvikster
12.12.13
✎
16:55
|
преобразовать строку вставить другой символ, сделать условие если слева от запятой число это число тогда это число а не следующее поле
|
|||
4
oleg_km
12.12.13
✎
16:55
|
Так он и не должен трогать разделитель в кавычках. Наверное просто Число() не переваривает строку с запятой.
|
|||
5
rbcvg
12.12.13
✎
16:55
|
может наоборот сказать 1С-ке чтоб разделитель в кавычках брала?
|
|||
6
Su60ta_SunRise
12.12.13
✎
16:56
|
(5) пробнем вариант (3)
Наоборот будет еще муторней |
|||
7
Ёпрст
12.12.13
✎
17:01
|
СтрПрих = СтрЗаменить(СтрПрих,"","",""#"")
ПерваяСтрока = СтрЗаменить(СтрПрих, "#",Символы.ПС); |
|||
8
kvikster
12.12.13
✎
17:02
|
" - Убери вначале
и " - убери в конце Кавычки = Символ(34); Строка= СтрЗаменить(Строка,Кавычки+","+Кавычки,"_"); Строка= СтрЗаменить(Строка,Кавычки,""); Строка= СтрЗаменить(Строка,",","."); Замени "," на другой разделитель |
|||
9
Serginio1
12.12.13
✎
17:10
|
||||
10
Su60ta_SunRise
12.12.13
✎
17:16
|
(8) Пошла родная, низкий поклон
|
|||
11
Fragster
модератор
12.12.13
✎
17:19
|
(8) а это правильно обработает это?
""",""",""",""",""",""" |
|||
12
Serginio1
12.12.13
✎
17:20
|
(8) Интересно что получится пропустив такие строки
Масс.Добавить("п"); Масс.Добавить("прив, "" про ""нк"); Масс.Добавить("прив, """" про ""нк,"); Масс.Добавить("прив, """","" про ""нк"""); |
|||
13
Serginio1
12.12.13
✎
17:22
|
Разбор CSV это автомат. С кандачка его не возьмешь.
|
|||
14
Fragster
модератор
12.12.13
✎
17:26
|
(13) я ж говорю, заюзать ADO
|
|||
15
Serginio1
12.12.13
✎
17:29
|
Необязательно. Я вполне себе использую такой вариант
v8: Преобразование csv в таблицу значений, продолжение Это переписанный вариант v8: v8:ИзСтрокиСРазделителями |
|||
16
kvikster
12.12.13
✎
17:32
|
(12) Вот строка:
"2003150052","0000000001","845","845","01.11.13","10:00:00","2000207766","Администратор","4","1","2000001760","Кухня","2","0","2000211168","Хлеб","p","1000","килограмм","48,962962962963","13,5","661","48,962962962963","13,5","661","0","0","0" |
|||
17
Serginio1
12.12.13
✎
17:33
|
Правда я на больших файлах и нетовским вариантом могу воспользоваться http://www.rsdn.ru/forum/dotnet/3303143.1
но и 1С варианта хватает. |
|||
18
Serginio1
12.12.13
✎
17:36
|
(16) У тебя одна строка может быть такой
""",""__"",""_"""",""" что в итоге должно дать ","__","_""," |
|||
19
kvikster
12.12.13
✎
17:38
|
(16) хорошо)
Кавычки = Символ(34); Строка= СтрЗаменить(Строка,Кавычки+","+Кавычки,"#######"); Строка= СтрЗаменить(Строка,Кавычки,""); Строка= СтрЗаменить(Строка,",","."); |
|||
20
Serginio1
12.12.13
✎
17:42
|
19 Ты думаешь я не найду строку которую ту со своим подходом не разберешь?
Если бы все так было просто не нужны бы были Конечные автоматы, регулярные выражения. Но это твое право делать так как тебе хочется. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |