|   |   | 
| 
 | Чтение в 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 Ты думаешь я не найду строку которую ту со своим подходом не разберешь?
 Если бы все так было просто не нужны бы были Конечные автоматы, регулярные выражения. Но это твое право делать так как тебе хочется. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |