Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 21.11.2018
Сообщений: 2

Поиск файла по дате меньшей, чем дата создания

21.11.2018, 14:45. Показов 3531. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите новичку!

Задача: есть папка, в которую ежедневно падает один файл. С помощью кода необходимо данные из файла с последней датой создания/изменения переносить в рабочий файл, произведя с этими данным некоторые действия. Но есть дни нерабочие, поэтому в понедельник нужно, чтобы код искал сначала файл с датой 2-мя днями ранее и 1 днем ранее, а затем уже последний. Как это прописать?

Visual Basic
1
2
3
4
5
6
7
8
Do While rsFile <> ""
        If FileDateTime(rsFolder & rsFile) > maxFileDate Then
            maxFileDate = FileDateTime(rsFolder & rsFile) ' дата свежего файла
            maxFileName = rsFolder & rsFile ' полный путь к свежему файлу
            rsFileEnd = rsFile
        End If
        rsFile = Dir
    Loop
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2018, 14:45
Ответы с готовыми решениями:

Поиск файла по дате создания
Добрый день, подскажите как при помощи vb искать фаилы в определенной директории (имена фаилов отличаются) по дате создания..

Поиск файла по дате создания + открытие его блокнотом
Подскажите что делаю неправильно. Есть программа, в которой клавишей F5 я копирую в буфер обмена данные в виде AAAA2064 24.05.2011, где...

Дата изменении и дата создания файла
Здравствуйте господа , есть такой код - SYSTEMTIME lf; FILETIME ft; OFSTRUCT of; HANDLE hFile=(HANDLE)OpenFile(name,...

7
 Аватар для Loya
70 / 57 / 24
Регистрация: 06.12.2015
Сообщений: 306
21.11.2018, 14:55
Можно проверять, является ли день понедельником.
Visual Basic
1
2
3
If Weekday(Now(), vbUseSystemDayOfWeek) = 1 Then
'Искать на два дня раньше
End If
Но бывает, что выходные дни попадают на рабочие и наоборот. На мой взгляд лучше в этой же папке держать .txt-файл, в который записывать последнюю обработанную дату, и исходить из записи в этом файле.
0
0 / 0 / 0
Регистрация: 21.11.2018
Сообщений: 2
21.11.2018, 18:00  [ТС]
а как прописать именно то, чтобы находился файл по дате создания минус 1 день и минус 2 дня?
0
 Аватар для Loya
70 / 57 / 24
Регистрация: 06.12.2015
Сообщений: 306
22.11.2018, 11:17
Марине2018, примерно так:
Visual Basic
1
2
3
4
5
Sub main()
Dim myDate As Date
myDate = DateAdd("d", -1, Now())
MsgBox myDate
End Sub
Функция DateAdd прибавляет заданный интервал к указанной дате. Если задать отрицательный интервал, то получится вычитание. В данном примере "d" - означает день (прибавлять/вычитать нужно именно день), -1 это интервал (сколько дней нужно прибавить/вычесть), Now() возвращает текущую дату.
0
Заблокирован
22.11.2018, 11:32
del
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
22.11.2018, 18:06
Цитата Сообщение от Марине2018 Посмотреть сообщение
а как прописать именно то, чтобы находился файл по дате создания минус 1 день и минус 2 дня?
Так и пишите - 1 и -2

Visual Basic
1
2
3
MsgBox Date
MsgBox Date - 1
MsgBox Date - 2
MsgBox здесь только для наглядности
1
 Аватар для Loya
70 / 57 / 24
Регистрация: 06.12.2015
Сообщений: 306
22.11.2018, 23:38
Точняк, так, оказывается, тоже можно!
0
 Аватар для Святой НякаЛайк
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 526
14.12.2018, 02:19
Как вариант, можно при обращении к файлу с данными записывать в реестр его дату.
При последующем запуске макроса, первым делом проверяете значение в реестре, после чего принимаете в работу все файлы с более поздней датой, чем сохраненная в реестре.
Синтаксис записи в реестр таков:
Visual Basic
1
SaveSetting(AppName, Section, Key, Setting
Синтаксис чтения из реестра следующий:
Visual Basic
1
GetSetting(AppName, Section, Key [,Default])
Здесь AppName - имя вашей программы (Можно писать любое, главное потом к нему же всегда и обращаться
Section, Key - названия подраздела реестра и название параметра соответственно.
[Default] - необязательное. Сюда можно вписать то значение, которое будет принято в том случае, если в реестре не найден искомый параметр.



Вот пример записи даты в реестр, с последующим чтением из реестра и выводом на экран:
Visual Basic
1
2
3
4
5
6
Sub Марине2018()
    Dim k, maxFileDate
    maxFileDate = CDate("04/07/1776")
    Call SaveSetting("Отчёт", "Параметры", "Последняя_Дата", maxFileDate)
    MsgBox GetSetting("Отчёт", "Параметры", "Последняя_Дата")
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2018, 02:19
Помогаю со студенческими работами здесь

Поиск файлов по дате создания
Здравствуйте. Есть вот такое задание Вывод на экран списка файлов, хранящихся в указанном первым параметром каталоге и созданных в первом...

Поиск файлов по дате создания
Добрый вечер всем, уже 3 часа лажу по всевозможным ресурсам, а ответа так и не нашел... Проблема вот в чем, есть директория path нужно...

Поиск по дате, поле типа дата время полный формат
не получается сделать поиск только по дате. в БД хранится полная дата (дата время) В access поле типа ДАТА ВРЕМЯ (полный формат). ...

FTSearch поиск по дате создания документа
Такая проблемка, хочу найти из &quot;базы1&quot; в &quot;базе2&quot; документы по диапазону дат создания документа. В документах в базе, по которой ищу - нет...

Поиск и Сравнение файлов по дате создания
Доброго времени суток, прошу совет. Задача такова, нужно найти файлы с расширением txt и узнать дату их создания... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru