![]() |
![]() |
![]() |
|
Выгрузка в csv файл | ☑ | ||
---|---|---|---|---|
0
Гектор
28.06.11
✎
21:36
|
csv- это текстовый файл с разделителем строк точка с запятой.Но при открытии этого файла в блокноте в файле показывается одна строка(есть пример правильного файла csv).
Такая постановка задачи: "Разделители строк должны иметь формат MS Windows/DOS - два последовательных символа 0x0D 0x0A. Одинарный разделитель формата Unix 0x0D не допускается." Как эти символы записать после каждой строки в файле? Например такая строка стр="1;2;3;"; Делаю из нее 3 строки для проверки стр=стр+Символы.ВК+стр+Символы.ВК+стр+Символы.ВК; Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.ЗаписатьСтроку(стр); Файл получаю почти такой как мне надо, но за исключением того что в конце всей строки символа возврата каретки нет, а после первой и второй строки есть |
|||
1
Fragster
гуру
28.06.11
✎
21:37
|
надо грузить через ADO
|
|||
2
Fragster
гуру
28.06.11
✎
21:38
|
а что такое символы.вк?
|
|||
3
Гектор
28.06.11
✎
21:38
|
Символы.ВК это как я понял "0x0D"
а "0x0A" это что? в паре как я понял это символ нажатия клавиши ENTER но как эти пару символов программно записать? |
|||
4
Гектор
28.06.11
✎
21:39
|
(2)возврата каретки
|
|||
5
Гектор
28.06.11
✎
21:39
|
нигде не могу найти примера кода формирования файла csv из 1С
|
|||
6
AlexNew
28.06.11
✎
21:44
|
Закрыть зоопарк, сколько можно издеваться над животными???
|
|||
7
Гектор
28.06.11
✎
21:50
|
кодировку поправил на DOS
Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.OEM); но это не помогло |
|||
8
Fragster
гуру
28.06.11
✎
21:51
|
(4) а ничего, что следующая строка - это все-таки перевод строки, а не возврат каретки?
|
|||
9
ДенисЧ
28.06.11
✎
21:52
|
(8) А ничо, что мы в винде? И следующая строка - это 0x13 0x10 ?
|
|||
10
Гектор
28.06.11
✎
21:56
|
мне надо два последовательных символа 0x0D 0x0A
это как сделать? визуально вроде это символ возврата каретки но в конце всего текста он почему то не добавляется |
|||
11
Гектор
28.06.11
✎
21:57
|
вот пример кода если кто хочет посмотреть файл
Процедура КнопкаВыполнитьНажатие(Кнопка) стр="10000;20000;30000;"; //Делаю из нее 3 строки для проверки стр=стр+Символы.ВК+стр+Символы.ВК+стр+Символы.ВК; Текст = Новый ЗаписьТекста("C:\1.csv",КодировкаТекста.OEM); Текст.ЗаписатьСтроку(стр); КонецПроцедуры |
|||
12
Гектор
28.06.11
✎
22:00
|
вот из вики
wiki:CSV "Строки разделяются парой символов CR LF (0x0D 0x0A) (в DOS и Windows эта пара генерируется нажатием клавиши Enter)." плин, как программно их в файл записать? |
|||
13
H A D G E H O G s
28.06.11
✎
22:03
|
Текст = Новый ЗаписьТекста("C:\1.csv",КодировкаТекста.OEM);
Текст.ЗаписатьСтроку(стр); Текст.Записать(Символы.ПС); |
|||
14
Гектор
28.06.11
✎
22:08
|
(13)нет, появляется лишняя пустая строка
|
|||
15
H A D G E H O G s
28.06.11
✎
22:14
|
Ты очень хреново читаешь мануал
|
|||
16
H A D G E H O G s
28.06.11
✎
22:14
|
стр="1;2;3";
а не стр="1;2;3;"; |
|||
17
H A D G E H O G s
28.06.11
✎
22:17
|
стр=стр+Символы.ВК+Символы.ПС+стр+Символы.ВК+Символы.ПС+стр;
Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.Записать(стр); |
|||
18
H A D G E H O G s
28.06.11
✎
22:18
|
Либо
|
|||
19
Гектор
28.06.11
✎
22:19
|
(15) у меня есть пример правильного файла.там в конце ";" надо ставить
|
|||
20
H A D G E H O G s
28.06.11
✎
22:19
|
стр=стр+Символы.ВК+Символы.ПС+стр+Символы.ВК+Символы.ПС+стр;
Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.Записать(стр); |
|||
21
H A D G E H O G s
28.06.11
✎
22:19
|
Вернее
Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.Записать(стр); |
|||
22
H A D G E H O G s
28.06.11
✎
22:20
|
||||
23
Гектор
28.06.11
✎
22:23
|
(21) нет. Символы.ПС
разбивает в файле содержимое на строки. мне не надо разбивать ну чтобы в блокноте файл csv при открытии показывало как одну строку. но эксель например отображает 3 строки (22) я в (12) обратить внимание на "Строки разделяются парой символов CR LF (0x0D 0x0A) (в DOS и Windows эта пара генерируется нажатием клавиши Enter)." плин, как программно их в файл записать? |
|||
24
H A D G E H O G s
28.06.11
✎
22:24
|
(23) Взаимоисключающие параграфы!
|
|||
25
H A D G E H O G s
28.06.11
✎
22:24
|
"Строки разделяются парой символов CR LF (0x0D 0x0A) (в DOS и Windows эта пара генерируется нажатием клавиши Enter)."
плин, как программно их в файл записать? Текст.Записать(Символы.ВК+Символы.ПС); |
|||
26
H A D G E H O G s
28.06.11
✎
22:25
|
p.s. Кстати, excel при сохранении в csv добавляет 1310 в конец файла
|
|||
27
H A D G E H O G s
28.06.11
✎
22:26
|
Так что
Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.Записать(стр); заменить на Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); Текст.ЗаписатьСтроку(стр,Символы.ВК+Символы.ПС); |
|||
28
H A D G E H O G s
28.06.11
✎
22:27
|
Но также excel не добавляет ; в конец строки, так что вики права.
И excel добавляет Символы.ВК+Символы.ПС в конец строки. |
|||
29
H A D G E H O G s
28.06.11
✎
22:27
|
Короче, автор не тупи, объясни свою гениальную задумку.
|
|||
30
Гектор
28.06.11
✎
22:29
|
вики может и права, но мне надо требования заказчика см(0).
у меня еть пример такого файла блокно открывает csv как одну строку эксель как несколько мне тоже нужно такой же файл сформировать из 1С. не получается, а вот как в вики проблем сформировать нет.т.е. блокнот открывает три строки |
|||
31
Гектор
28.06.11
✎
22:32
|
(27) твой пример формирует в блокноте открывает 3 строки:
10000;20000;30000; 10000;20000;30000; 10000;20000;30000; мне надо чтобы в одну и показывало символ возврата каретки после каждой из 3х строк |
|||
32
Гектор
28.06.11
✎
22:33
|
10000;20000;30000;
10000;20000;30000; 10000;20000;30000; |
|||
33
Гектор
28.06.11
✎
22:33
|
в хотел скопировать(32) не копируется символ возврата каретки
|
|||
34
AlexNew
28.06.11
✎
22:36
|
В блокноте? Закройте клетки.
|
|||
35
Гектор
28.06.11
✎
22:43
|
ап
|
|||
36
H A D G E H O G s
28.06.11
✎
22:47
|
стр=стр+Символы.ВК+стр+Символы.ВК+стр+Символы.ВК;
Текст = Новый ЗаписьТекста(ИмяФайлаCSV,КодировкаТекста.ANSI); Текст.Записать(стр); |
|||
37
vis_tmp
28.06.11
✎
22:48
|
Постобработка полученного файла не поможет?
|
|||
38
AlexNew
28.06.11
✎
23:50
|
(37) Чиво?
|
|||
39
Fragster
гуру
28.06.11
✎
23:57
|
ну автор, ты тугой. сделай разделителем Символы.ПС и не задавай больше никаких вопросов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |