![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Суть такая есть, каталог, в который производится выгрузка xls файлов с данными, эти файлы я через свою программку обрабатываю.
Количество файлов растёт, а постоянно через вызов "диалога" не натыкаешься ручками, надоело на это тратить время к тому же таких каталогов штук шесть. Захотелось автоматизировать и этот процесс. Короче суть такая: К работе на текущий день нужен актуальный файл, который выгрузился, вчера ночью, а сегодня утром нужно его обработать. Открываю программку, ищу файл, выбираю и жму обработать. Думаю, дайка напишу, что бы программа сама находила самый последний по дате выгруженный файл и брала его к обработке. Тут столкнулся с проблемой, как бы это реализовать?! Почитала, что люди пишу. И решил делать так. Есть у меня ранее подогнанный код под мои нужды, который ищет в заданном каталоге xls файлы и берет их к обработке. На сайте нашёл кусок кода, который находит файл с устаревшим времем от системного времени на 5 минут и выводит сообщение не много не то что я хотел. Данный код мне ничего не даёт.
А вот если я возьму, получу текущую системную дату, сравню с первым найденным файлом в каталоге и посмотрю разницу, затем цикл while найдет второй файл, получу интервал между системой датой и датой второго найденного файла и сравню с первым полученным результатом(интервалом), и так далее пока не получу самый маленький интервал между системной датой и датой создания файла, который и буду считать последним созданным файлом в каталоге. Вопрос будет ли это правильно или можно лучше сделать, а может, есть функции, которые умеют искать последний созданный файл в каталоге. А может сделать так: записать все обработанные на данный момент файлы в каталоге в текстовый файл, при обработке нового файла искать с помощью «pos» в текстовом файле совпадения, если найден в файле, значит файл обработан, если нет, то обработать? Это сообщение отредактировал(а) Snowy - 15.3.2012, 12:51 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Ну это понятно что там ошибка.
Я вопросы то другие задавал. Это сообщение отредактировал(а) ivanfr - 15.3.2012, 11:24 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
|
|||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Так как у меня в данную папку выгружается по 4 отчета, но названия разные, а мне нужен только под определенным именем. А код приведенный выше выводит только последний созданный файл в каталоги и он не подходит, привел небольшую модификацию. Добавил на проверку наличия в переменной имени файла определенного значения.
Посоветуйте, корректно ли так использовать код или могут быть проблемы?
|
|||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Помогите решить проблему?
Нужно пять раз прогнать выше приведенный код загоняю его в цикл for. с кодом почему-то при использовании цикла в переменную присваивает 5, в место 0 ни чего не понимаю.
Это сообщение отредактировал(а) ivanfr - 16.3.2012, 12:43 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
В переменную присваивается поочереди - 0, 1, 2, 3, 4, 5
По окончании цикла в ней останется 5. Всё логично. |
|||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
ну вот кусок кода когда подходи к dr у него в значении 5 хотя я его перед циклом обнуляю?
и вообще почему он пропускает строку dr := 0; Это сообщение отредактировал(а) ivanfr - 16.3.2012, 13:13 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Нет, в этом куске кода dr не может принимать значения 5. Никак.
|
|||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
||||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Сдается мне, что отладка идет по какому-то другому модулю.
|
|||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Мне ранее уже встречалась такая проблема. Когда писал дипломную работу, тоже косяк был вместо нулевого значения подставлялось другое на первом проходе цикла. Что делал не помню.
Вот почему, перед for пропускается присвоение переменной, странно как-то? Посидел, подумал сегодня и у меня есть подозрение, что это косяк происходит из-за конструкции try except end. Нужно попробовать в понедельник перенести try перед for i=.. Это сообщение отредактировал(а) ivanfr - 19.3.2012, 07:47 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Попробуй отключи оптимизацию в свойствах проекта
|
|||
|
||||
| ivanfr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Отключение оптимизации в свойствах проекта помогло, только не сразу, а через пару запусков.
Обнуление переменной dr - пропускать перестал. Это сообщение отредактировал(а) ivanfr - 19.3.2012, 08:13 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
После изменения настроек проекта, нужно выполнить перекомпиляцию.
Но для готовой программы лучше включать оптимизицию. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |