|
v7: поделитесь плиз скриптом перебора файлов в каталоге. | ☑ | ||
---|---|---|---|---|
0
Кокос
17.10.12
✎
15:37
|
собственно сабж. в каталог периодически заливаются файлы. их надо периодически поднимать в доки
|
|||
1
Heckfy
17.10.12
✎
15:40
|
Завтра апни. Дома где то была обработка обхода каталога с подкаталогами.
|
|||
2
GLazNik
17.10.12
✎
15:40
|
(0) а че там "скриптовать" то? фс.НайтиПервыйФайл(); фс.НайтиСледующийФайл
|
|||
3
Кокос
17.10.12
✎
15:40
|
(1) завтра поздно. сам уже напишу :))
|
|||
4
Кокос
17.10.12
✎
15:43
|
нашел глобальным поиском в 7рке. совсем 7рку забыл :))
|
|||
5
Кокос
17.10.12
✎
16:29
|
а как такой код
Connection = Новый ComОбъект("ADODB.Connection"); Command = Новый ComОбъект("ADODB.Command"); СтрокаПодключения = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="+Файл.Путь+";Extensions=csv;"; Connection.ConnectionString = СтрокаПодключения; Connection.Open(); Command.ActiveConnection = Connection; Команда = "SELECT * FROM ["+файл.Имя+"]"; Command.CommandText = Команда; Recordset = Command.Execute(); Сообщить("Выполнил"); ЧислоПолей = Recordset.Fields.Count; на 7рку переписать? и вообще он пойдет в лёт?:) |
|||
6
Heckfy
17.10.12
✎
16:32
|
Ну так искать мне обработку дома или не искать? Она, по моему, чисто на 1С написана, без внешних приблуд.
|
|||
7
Кокос
17.10.12
✎
16:33
|
(6) да перебор файлов я из ОбновлениеИБ вытащил. вот теперь как мне csv файл с OEM кодировкой поднять....
|
|||
8
GLazNik
17.10.12
✎
16:35
|
(5) Меняй
Connection = Новый ComОбъект("ADODB.Connection"); Command = Новый ComОбъект("ADODB.Command"); на Connection = СоздатьОбъект("ADODB.Connection"); Command = СоздатьОбъект("ADODB.Command"); Остальное вроде как без изменений |
|||
9
vladko
17.10.12
✎
16:52
|
для 7ки
файл.хххх не прокатит. Надо другим объектом воспользоваться. Обычной ТЗ наверное придётся. |
|||
10
Кокос
17.10.12
✎
16:54
|
(9) текстовиком не поднимается... там только две кодировки. вин и дос.. обе не подходят. оем нет...
|
|||
11
Кокос
17.10.12
✎
16:57
|
вот нашел, сейчас проверю
Процедура Сформировать() Перем Имя,Путь; Байт=255; Если ФС.ВыбратьФайл(0,Имя,Путь,"","Файлы|*","*")=0 Тогда Возврат; КонецЕсли; СтримВход=СоздатьОбъект("ADODB.Stream"); СтримВход.Type=2; СтримВход.charset="windows-1251"; СтримВход.Open(); СтримВход.LoadFromFile(Путь+Имя); СтримВыход=СоздатьОбъект("ADODB.Stream"); СтримВыход.Type=2; СтримВыход.charset="utf-8"; СтримВыход.LineSeparator=-1; СтримВыход.Open(); Всего=СтримВход.size; Пока СтримВход.EOS=0 Цикл СтримВыход.WriteText(СтримВход.ReadText(Байт),?(Байт=-2,1,0)); Состояние("" + Формат(100 * СтримВход.position/Всего,"Ч(0)5.2")+"%"); КонецЦикла; СтримВыход.SaveToFile(Путь+Имя+".utf8",2); КонецПроцедуры |
|||
12
GLazNik
17.10.12
✎
16:57
|
(9) а в чем проблема? Методы из (2) как раз и возвращают имена файлов. путь вроде тож известен должен быть.
|
|||
13
Кокос
18.10.12
✎
11:59
|
Код в принципе рабочий. Только не понятно где поменять запятую на точку с запятой. Ато делит не там где надо.
Connection = СоздатьОбъект("ADODB.Connection"); Command = СоздатьОбъект("ADODB.Command"); СтрокаПодключения = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27; DefaultDir="+Каталог+"; Extensions=csv; HDR=NO; IMEX=1;charset=utf8"; Connection.ConnectionString = СтрокаПодключения; Connection.Open(); Command.ActiveConnection = Connection; Команда = "SELECT * FROM ["+ИмяФайла+"]"; Command.CommandText = Команда; Rs = Command.Execute(); Сообщить("Выполнил"); ЧислоПолей = Rs.Fields.Count; Rs.MoveFirst(); Пока Rs.EOF() = 0 do Сообщить(Rs.Fields(0).Value); Сообщить(Rs.Fields(1).Value); Сообщить(Rs.Fields(2).Value); Сообщить(Rs.Fields(3).Value); Сообщить(Rs.Fields(4).Value); Rs.MoveNext(); КонецЦикла; |
|||
14
GLazNik
18.10.12
✎
12:14
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |