![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.11.2007
Сообщений: 49
|
![]()
Подскажите, как проверить изменялся ли файл. Задача следующая: имеется форма с компонентом TMemo. В него загружаю текст из некоего текстового файла - Memo.Lines.LoadFromFile(const_def_F ilePath). Теперь открываю этот же файл из Блокнота и дописываю в него какой-нибудь текст. Теперь при возвращении в окно своего приложения (Delphi) необходимо проверить изменялся ли файла, и если данное имело место быть вывести сообщение. ShowMessage('File modified. Reload file ?').
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
как ты узнаешь что файл был изменен скажем последние пять минут? Tак и программа перед сохранением может проверить что файл был изменен с момента загрузки.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]()
Создай еще одну memo маленькую и невидимую и добавь в form1.oncreate
Код:
Код:
И дело в шляре)))
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
![]() |
![]() |
![]() |
#4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Я так понял программа в это время запущена пока в открытом файле Блокнотом правят? Если нужно это предотвратить, открывай файл с запрещением повторного открытия, если просто определить изменения то иметь копию Memo в памяти и определять изменения по OnActivate, загрузив этот Мемо из файла. Можно также для сравнения свойство Text у Мемо заюзать.
Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 13.05.2008 в 13:07. |
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Вообще то (автору) пока в блокноте не нажмеш ^S файл не изменится.
В принципе можно откопать хендл окна блокнота, и просто получить по нему содержимое окна.
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
![]()
Используй мониторинг файлов, поищи в нете я где-то видел исходник.
|
![]() |
![]() |
![]() |
#7 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]()
попутал....
![]()
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я полностью согласен с Hollander.
Пути два - либо, более грамотный подход через WinAPI - ReadDirectoryChangesW (будет работать только под WinNT/2000/XP/Vista) мониторинг папки либо банально вешаться на таймер (например, раз в 30 сек., чтобы не грузить систему) и проверять изменился ли файл (дата последней модификации/размер) первый способ лучше, но сложнее ;-) Последний раз редактировалось Serge_Bliznykov; 14.05.2008 в 11:09. |
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Виталий, ну Вы же прекрасно понимаете, что пока файл не сохранили - он НЕ ИЗМЕНИЛСЯ! мы же с Вами говорим именно про ФАЙЛ (а не про текст, который находится в какой-то программе редактирования, кстати, которую получить так просто может и не удастся - у меня, например, штатный редактор Windows заменён на AkelPad (на порядок удобнее и лучше).
Автор вопроса хочет сделать то, что умеет, например, та же Дельфи - откройте проект, потом перейдите в редактор и измените любой файл из открытого в IDE Delphi проекта - получите сообщение: Модуль 'ваш_файл.ляля's time/date change. Reload? но произойдёт в момент СОХРАНЕНИЯ ваших изменений, а не тогда, когда Вы в редакторе FAR (к примеру ;-) будете эти изменения вносить! |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверить тип переменной | satana | Общие вопросы Delphi | 10 | 20.11.2010 21:43 |
Как проверить строку? | nikleb | PHP | 6 | 07.07.2008 22:04 |
Проверить кратность трем | Anita_i | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 11.05.2008 10:14 |
Как проверить, есть ли файл? | Dux | Общие вопросы Delphi | 3 | 02.04.2008 23:18 |