Имя: Пароль:
1C
1С v8
? по загрузке из СSV в ТЗ посредством ADODB.Recordset и GameWithFire
0 Длинный Клиент
 
28.11.12
18:41
Есть прикольная функция, быстро грузит CSV в таблицу значений. Требует установки GameWithFire из EnterpriseIntegrator.

Но она называет столбцы TЗ значениями из первой cтроки CSV. А в моем CSV заголовков нет, там с первой строки идут данные.

Что бы поменять в коде, дабы не терялась первая строка при загрузке в ТЗ ?

Функция ПрочитатьCSV_2(Папка, ИмяФайла, КолПолей)
   // Параметры:
   // "Папка" - путь к файлу без имени файла с завершающим слешем,
   // "ИмяФайла" - имя файла,
   // "КолПолей" - количество колонок (число).
   // Функция возвращает ТаблицуЗначений с данными файла.
   
   Текст = "[" + ИмяФайла + "]
   |ColNameHeader=False
   |Format=Delimited(;)
   |TextDelimiter=none
   |CharacterSet=ANSI
   |";
   Для ы = 1 По КолПолей Цикл
       Текст = Текст + "Col" + ы + "=Field" + ы + " Text" + Символы.ПС;
   КонецЦикла;
   ТекстДок = Новый ТекстовыйДокумент;
   ТекстДок.УстановитьТекст(Текст);
   ТекстДок.Записать(Папка + "Schema.ini");
   
   objRec = Новый COMОбъект("ADODB.Recordset");
   strQuery = "SELECT * FROM [" + ИмяФайла + "]";
   strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Папка + ";Extended Properties=""text;""";
   adOpenStatic = 3;
   adLockOptimistic = 3;
   adCmdText = 1;
   objRec.Open(strQuery, strConn, adOpenStatic, adLockOptimistic, adCmdText);
   
   ПодключитьВнешнююКомпоненту("GameWithFire.ADOUtils");
   ADOUtils = Новый("AddIn.ADOUtils");
   Возврат ADOUtils.ADORecordsetToValueTable(objRec);
КонецФункции
1 МихаилМ
 
28.11.12
18:51
2 Длинный Клиент
 
28.11.12
18:54
Надо дописать

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Папка + ";Extended Properties=""text;HDR=NO;""";

вопрос решен

(1) даже не смотрел