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

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

11.03.2018, 22:16. Показов 727. Ответов 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
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,878
Записей в блоге: 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
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,878
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru