![]() |
Модераторы: stron |
![]() ![]() ![]() |
|
SubZero |
|
||||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
На диске в различных каталогах находятся файлы dbf с длиной имени порядка 12-14 символов. Если длина имени не превышает 8 символов- файлы открываются нормально, если же больше - программа вылетает с ошибкой "Перед выполнением операции нужно открыть базу!" на строчках
ДБФ.Первая(); и Пока ДБФ.ВКонце() = 0 Цикл Хотелось бы программно переименовывать длинные имена до 8 символов, обрабатывать данные, а затем возвращать исходное имя файлам. В противном случае остается только вручную переименовывать файлы, что весьма неудобно, ибо их несколько сотен и каждый день появляются новые. Первоначальная версия процедур:
Решил сделать возможной загрузку файлов и с длинными именами. Алгоритм следующий: 1) long = 0; 2) пытаемся открыть файл, если длина больше 8 символов Тогда а) усекаем имя до 8 символов; б) переименовываем файл на диске в короткое имя; в) присваиваем переменной long значение 1; Иначе ничего не делаем Далее создаем объект типа XBase, создаем новый документ, открываем наш файл DBF и начинаем заполнять документ значениями полей файла. Если у нас был длинный файл (long=1), то после окончания всех действий вновь переименовываем файл (возвращаем ему исходное имя).
Гуру подсказали, что необходимо использовать Excel.Application, так что думаю засесть за его изучение. Никто не сталкивался с подобным? |
||||
|
|||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 15 Всего: 24 |
Начни изучение отсюда: http://forum.vingrad.ru/articles/topic-141...y1065326/0.html Может быть, многие вопросы отпадут ![]() |
|||
|
||||
SubZero |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Zero, спасибо большое!
Мне все-таки удалось решить проблему загрузки файлов DBF с длинными именами, причем без использования Excel.Application!
Так что моя гипотеза была не такой уж безумной ![]() P.S. С помощью Excel.Application также удается делать загрузку, вот только я не понял как узнать количество строк в файле (чтобы правильно организовать цикл)? Хотелось бы сделать вариант и с использованием Экселя ![]() |
|||
|
||||
SaschaL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 880 Регистрация: 13.12.2006 Где: Челябинская обл г .Нязепетровcк Репутация: 8 Всего: 9 |
Я же и говорил что проблемы с загрузкой из *.dbf нет, надо просто гибко подойти к этому
|
|||
|
||||
korund2010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.2.2010 Репутация: нет Всего: нет |
По поводу определения числа строк
//Определяю размеры входного файла Функция ПрочитатьСписокПолейВходногоФайла() Если НачальнаяСтрока<=0 Тогда // не задано число строк НачальнаяСтрока = 1; КонецЕсли; Если КонечнаяСтрока<=0 Тогда // не задано число строк КонечнаяСтрока = 1; Для НомСтр=1 по ЧислоСтрокExcelФайла Цикл Если ПустаяСтрока(ВходExcel.Sheets(SheetOfBook).Cells(КонечнаяСтрока,1).Value)=0 Тогда КонечнаяСтрока = КонечнаяСтрока + 1; и т.д где ЧислоСтрокExcelФайла - предварительно задается числом заведомо большим. чем ожидается ВходExcel = СоздатьОбъект("Excel.Application"); SheetOfBook - номер страницы книги Excel |
|||
|
||||
Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 15 Всего: 24 |
|
||||
|
|||||
SubZero |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
SaschaL, спасибо огромное за решение моей проблемы стандартными средствами!
![]() korund2010, Zero, огромное спасибо за помощь в освоении Excel.Application ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "1C: Предприятие, SAP, ERP и учётные системы" | |
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |