Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069

Определить, был ли файл уже обработан ранее

11.03.2018, 22:16. Показов 756. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добро всем
Задача не сложная но что-то не пойму какой вариант лучше.
У меня папка в которую каждый день добавляется новый файл тхт
Мне нужно считать данные из каждого нового файла и обработав файл удалять нельзя.

Проще говоря надо исключить повторную обработку файла

Первый вариант:
после обработки записывать в отдельный файл первую строку обработанного файла, в ней номер файла и всегда разный.

и каждый следующий раз:
получаю список файлов в папке
прохожусь циклом и считываю для сравнения первую строку.

Второй вариант:
заносить в файл с обработанными, название файла и далее сравнивать.

Какой Вариант будет правильным?

или оба варианта использовать последовательно? типа двойная проверка...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2018, 22:16
Ответы с готовыми решениями:

Как обойти выполнение запроса, если такой запрос уже был обработан?
Интересует такой момент. Как избежать повторение запроса mysql_query для insert, update и так далее. Получается, что сколько раз...

Не получается удалить файл, который ранее был загружен в PictureBox
Доброго времени суток. Помогите разрешить вот такой вопрос. Сначала я загружаю файл в PictureBox: public String PhotoPath; ...

Как проверить был ли создан файл более месяца ранее настоящей даты?
Как проверить был ли создан файл более месяца ранее настоящей даты?

9
...
 Аватар для ji2n
39 / 37 / 13
Регистрация: 08.10.2016
Сообщений: 173
11.03.2018, 22:26
если нужна проверка "на лету" можно функцию ReadDirectoryChangeW использовать.
1
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
11.03.2018, 23:15
Samrisbe,
можно проверять возраст файла.
в программе которая проверяет сохранено (в ини файле) последний возраст и если возраст файла моложе то прочитать(делать что нужно) и сохранить текущий возраст в ини файл.
1
4 / 3 / 1
Регистрация: 21.12.2017
Сообщений: 29
11.03.2018, 23:36
Используйте атрибут файла "Архивный".
По умолчанию он установлен. Когда выполнена обработка файла - атрибут снимается (файл "заархивирован")
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
12.03.2018, 00:13  [ТС]
Спасибо за советы
сделал обработку по названию:
получаю список файлов в папке sps
загружаю ранее обработанные Spisokreestr
пробегаю в цикле и сравниваю оба списка и если нахожу совпадение записываю в третий список
удаляю из списка spsстроки которые совпали и таким образом получаю список новых файлов
выглядит так:
C++
1
2
3
4
5
6
7
8
//сравниваем ранее разнесенные
  liss = sps->Text;
  newtext = "";
  for(int q = 0; q < Spisokreestr->Count; q++)
    {
    oldtext = Spisokreestr->Strings[q];
    liss = StringReplace(liss,oldtext,newtext,TReplaceFlags()<<rfReplaceAll);
    }
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
12.03.2018, 08:39
да , конечно можно и так.
эта проверка будет производиться только при старте программы?
или в таймере?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
12.03.2018, 12:42
Цитата Сообщение от Samrisbe Посмотреть сообщение
файл удалять нельзя
Изменить расширение, или переименовать, скажем, с file1.txt в file1.processed.txt. Логики это не изменит, файл по-прежнему можно будет открыть тем же редактором, но вот задача определения обработан ли файл - сведется к проверке наличия .processed в его имени. И никаких дополнительных файлов создавать не нужно, никаких циклов.
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
12.03.2018, 16:31  [ТС]
Цитата Сообщение от lifeforce Посмотреть сообщение
эта проверка будет производиться только при старте программы?
или в таймере?
При нажатии на кнопку "получить данные для обработки"

Цитата Сообщение от volvo Посмотреть сообщение
Изменить расширение, или переименовать, скажем, с file1.txt в file1.processed.txt.
файл генерирует стороннее приложении и оно само тоже его использует, поэтому нельзя менять название и расширение.



я пока потестирую свой вариант обработки, если не будет глюков запущу в работу
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
12.03.2018, 16:35
Версию Билдера можно озвучить?
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
12.03.2018, 16:47  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Версию Билдера можно озвучить?
билдер 6
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2018, 16:47
Помогаю со студенческими работами здесь

Определить, сколько шагов Робот К-79 сделает прежде, чем впервые вернется место, где уже был
Петя написал программу движения робота К-79. Программа состоит из следующих команд: S — сделать шаг вперед L — повернуться на 90...

Определить сегодня изменялся файл или ранее
filesInDirs = list(map(lambda x: os.path.join(ERR_PATH, x), os.listdir(ERR_PATH))) + list(map(lambda x: os.path.join(INPROGRESS_PATH, x),...

Как сделать так, что бы если файл excel уже был отрыт не создавался заново, а дополнялся новой информацией
С помощью vba создаю программу, которая считает площадь пересечения 2-х фигур. Данные расчеты должны попадать в файл excel. Создала для...

Запомнить, какой из RadioButton был выбран ранее
Привет! Есть несколько RadioButton в одном групбоксе. При клике на одном из них нужно вызвать свой метод, который должен знать...

как открыть уже созданную ранее прогу на Visual C++ 6.0
подскажите, пожалуйста как открыть уже созданную ранее программу на Visual C++ 6.0, если после компиляции и запуска на выполнение выдает...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru