Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VBA|Цикл по временным файлам 
V
    Опции темы
Ethex
Дата 6.7.2018, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 8.6.2017

Репутация: нет
Всего: нет



Доброго времени суток
Имеется процедура, создающая внутри каталога с выбранным документом Word файлы, вида примерно следующего:
Имя документа_временный_1.docx
Имя документа_временный_2.docx
И так далее, до количества страниц выбранного документа. 
Сразу за ней вызывается процедура, содержащая цикл по файлам каталога. Внутри цикла процедура открывает временный файл, берёт данные из него, закрывает, убивает. Если файлов, скажем, 12, то цикл будет идти по порядку 1 - 10 - 11 - 12 и только потом уже - 2 - 3 -...
Код

...
For Each timeless In fold.Files
SysCmd acSysCmdUpdateMeter, cnter
     If InStr(timeless.Name, "_временный_" & CStr(tempCounter) & ".") > 0 Then
     Set wd = app.Documents.Open(timeless.path)
...
 wd.Close: Set wd = Nothing
     Kill timeless.path
     tempCounter = tempCounter + 1
     End If
  cnter = cnter + 1
  Next
...

Страждущие обратились ко мне с просьбой избавить их от последствий такого порядка открытия документов. Я попробовал объявить переменную tempCounter, с помощью которой дополнить условие. Но к тому моменту как она получает значение 10, нужные файлы уже пройдены циклом и, соответственно, нужных операций с ними не происходит. Прошу подсказки как верно организовать цикл
Да, внутри таблиц Access данные лежат неупорядоченно, в каком бы порядке они бы туда не заносились. Страждущие в силах это понять и даже признают решение проблемы желательным, а не принципиальным. Но мне самому интересно решение  

PM MAIL   Вверх
Ethex
Дата 6.7.2018, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 8.6.2017

Репутация: нет
Всего: нет



На ум пока лезет:
- изменить процедуру, создающую временные файлы, так, чтобы сохраняла их не в каталоге с исходным документом, а в отдельном. А дальше логический цикл на наличие в каталоге файлов;
- GoTo. А вот об этом знакомые программисты мне говорили и думать забыть
PM MAIL   Вверх
Akina
Дата 6.7.2018, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 453



Именовать файлы с ведущими нулями у чисел. Не Имя документа_временный_1.docx, а Имя документа_временный_01.docx...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ethex
Дата 9.7.2018, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 8.6.2017

Репутация: нет
Всего: нет



Цитата(Akina @  6.7.2018,  18:27 Найти цитируемый пост)
Именовать файлы с ведущими нулями у чисел. Не Имя документа_временный_1.docx, а Имя документа_временный_01.docx... 

Увы, файлы по прежнему открываются не в том порядке
PM MAIL   Вверх
Akina
Дата 9.7.2018, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 453



Цитата(Ethex @  9.7.2018,  16:10 Найти цитируемый пост)
файлы по прежнему открываются не в том порядке 

это странно, если всё происходит локально, и файловая система NTFS... впрочем, может сыграть свою роль нашлёпка на реквесторе, которая обрабатывает числообразность.
Тогда сначала получить список файлов, потом пересортировать в нужном порядке, и лишь затем открывать. Это должно работать в любых условиях.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ethex
Дата 9.7.2018, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 8.6.2017

Репутация: нет
Всего: нет



Цитата(Akina @  9.7.2018,  15:51 Найти цитируемый пост)
Тогда сначала получить список файлов

Имеется в виду массив?
Изначально для этих целей я использовал Список (элемент управления). Однако если количество файлов превышало 243 (кажется... Или где-то около этой цифры), решение не подходило, т.к. пути к оставшимся файлам не заносились. А попадаются документы, от которых может быть более тысячи временных. Честно говоря, особо не тестировал, а сразу перешёл на цикл по файлам
PM MAIL   Вверх
Akina
Дата 9.7.2018, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 453



Массив. Или коллекция - ее можно сортировать при вводе, просто добавляя ведущие нули текстовым ключам.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ethex
Дата 11.7.2018, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 8.6.2017

Репутация: нет
Всего: нет



Ну чтож
Не будет же откровением, если скажу что с помощью массива удалось добиться открытия в нужном порядке?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.1470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.