|
Читаем csv-файл при помощи ADODB. Кодировка | ☑ | ||
---|---|---|---|---|
0
oly123456
28.02.12
✎
12:49
|
Требуется читать огромные csv-файлы, поэтому и выбрал этот способ, строку разбирать на значения не могу, т.к. разделитель может попадаться в текстовом поле.
Читаем csv-файл при помощи ADODB, если текст русскими буквами, тогда выводит "абракадабру". 1. Как исправить кодировку? 2. В ОС Windows 7 (RecordSet.Fields(0).value) в запрос входит только поле с индексом 0, остальные в запрос не попадают почему? Пример абракадабры: Р’РёРґ операции Продажа, РєРѕРјРёСЃСЃРёСЏ ///////////////////////////////////////////////////////////// Файл = Новый Файл(ИмяВременногоФайла); Connection = Новый COMОбъект("ADODB.Connection"); Connection.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27; DefaultDir="+Файл.Путь+"; Extensions=csv; HDR=NO; IMEX=1"; Попытка Connection.Open(); Исключение Сообщить ("Не возможно подключится к Microsoft Excel Driver!!! |Возможно файл ["+Файл.ПолноеИмя+"] открыт другим пользователем!!!"); Возврат; КонецПопытки; Попытка Стр_SQL = "SELECT * FROM "+ Файл.Имя+""; RecordSet=Connection.Execute(Стр_SQL); Исключение Сообщить ("Не возможно получить данные из файла ["+ ОписаниеОшибки()+"!!!"); Возврат; КонецПопытки; Пока Не RecordSet.EOF Цикл Наим = СокрЛП(RecordSet.Fields(1).value); сообщить(Наим); RecordSet.MoveNext(); КонецЦикла; RecordSet.Close(); Connection.Close(); ///////////////////////////////////////////////////////////// |
|||
1
oly123456
28.02.12
✎
12:50
|
Подскажите пожалуйста, очень нады!
|
|||
2
Kashemir
28.02.12
✎
12:53
|
Connection.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27; DefaultDir="+Файл.Путь+"; Extensions=csv; HDR=NO; IMEX=1;charset=cp1251";
|
|||
3
Kashemir
28.02.12
✎
12:55
|
А вообще гугл в помощь, даже далеко ходить не надо "ADODB.Connection" проблема с кодировкой
|
|||
4
oly123456
28.02.12
✎
12:56
|
Не помогло:-(, говорят там что-то в реестре Windows надо ковырнуть.
|
|||
5
andrewks
28.02.12
✎
12:56
|
utf-8
|
|||
6
oly123456
28.02.12
✎
13:02
|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1252"="c_1251.nls" не помогло |
|||
7
andrewks
28.02.12
✎
13:03
|
(6) и не поможет
|
|||
8
oly123456
28.02.12
✎
13:03
|
utf-8 - это куда?
|
|||
9
andrewks
28.02.12
✎
13:04
|
попробуй сюда: charset=
|
|||
10
oly123456
28.02.12
✎
13:07
|
Connection.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27; charset=utf-8; DefaultDir="+Файл.Путь+"; Extensions=csv; HDR=NO; IMEX=1;";
Не помогло |
|||
11
dk
28.02.12
✎
13:14
|
выложи кусок абракадабры на файлообменник
|
|||
12
oly123456
28.02.12
✎
13:27
|
||||
13
oly123456
28.02.12
✎
13:35
|
выложил поможите, очень надо!
|
|||
14
andrewks
28.02.12
✎
14:03
|
(12) бугага. ну ты знатно подколол
|
|||
15
andrewks
28.02.12
✎
14:04
|
*** Текст.Записать(ИмяВременногоФайла,"windows-1251");
*** Connection.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27; charset=windows-1251; DefaultDir="+Файл.Путь+"; Extensions=csv; HDR=NO; IMEX=1;"; |
|||
16
andrewks
28.02.12
✎
14:04
|
и верни (6) на место
|
|||
17
oly123456
28.02.12
✎
15:02
|
Все сделал (15,16)
и кодировка ОК Всем спасибо, отдельное andrewks. andrewks - рулит!!! Осталось проверить: В ОС Windows 7 (RecordSet.Fields(0).value) в запрос входит только поле с индексом 0, остальные в запрос не попадают почему? |
|||
18
Serginio1
28.02.12
✎
17:14
|
Посмотри v8: Обработка csv файла около 300 000 строк.
сообщение 26 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |