Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];
ВнизКак проверить изменялся ли файл Найти похожие ветки
← →
Nemeziz (2008-05-12 23:08) [0]Подскажите, как проверить изменялся ли файл. Задача следующая: имеется форма с компонентом TMemo. В него загружаю текст из некоего текстового файла - Memo.Lines.LoadFromFile(const_def_FilePath). Теперь открываю этот же файл из Блокнота и дописываю в него какой-нибудь текст. Теперь при возвращении в окно своего приложения (Delphi) необходимо проверить изменялся ли файла, и если данное имело место быть вывести сообщение. ShowMessage("File modified. Reload file ?").
← →
palva © (2008-05-12 23:13) [1]Сохранять и сравнивать дату последнего изменения файла API-функцией. Может быть, и в Delphi есть такая функция.
← →
Anatoly Podgoretsky © (2008-05-12 23:29) [2]> palva (12.05.2008 23:13:01) [1]
Не надо ничего подобного сравнивать, а сравнивать стоит CRC
← →
{RASkov} © (2008-05-12 23:48) [3]С отслеживанием изменения даты можно примерно так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
procedure LoadFile(const FirstLoad: Boolean=False);
procedure AppActivate(Sender: TObject);
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.LoadFile(const FirstLoad: Boolean=False);
const FL_NM ="name.txt";
var Dt: Integer;
begin
Dt:=FileAge(FL_NM);
if Dt<0 then Memo1.Text:="Не найден файл: "+FL_NM else
if Memo1.Tag<>Dt then begin
if FirstLoad or (MessageDlg("Файл изменился. Перезагрузить?", mtConfirmation, [mbYes, mbNo], 0)=mrYes) then
try
Memo1.Lines.LoadFromFile(FL_NM);
except
Memo1.Text:="Ошибка при загрузке файла: "+FL_NM;
end;
Memo1.Tag:=Dt;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
LoadFile(True);
Application.OnActivate:=AppActivate;
end;
procedure TForm1.AppActivate(Sender: TObject);
begin
LoadFile;
end;
end.
> [2] Anatoly Podgoretsky © (12.05.08 23:29)
Чем плох данный способ? :)
← →
Nemeziz (2008-05-12 23:56) [4]Большое спасибо
← →
Германн © (2008-05-13 00:37) [5]
> Nemeziz (12.05.08 23:08)
>
> Подскажите, как проверить изменялся ли файл. Задача следующая:
> имеется форма с компонентом TMemo. В него загружаю текст
> из некоего текстового файла - Memo.Lines.LoadFromFile(const_def_FilePath).
> Теперь открываю этот же файл из Блокнота и дописываю в
> него какой-нибудь текст. Теперь при возвращении в окно своего
> приложения (Delphi) необходимо проверить изменялся ли файла,
> и если данное имело место быть вывести сообщение. ShowMessage("File
> modified. Reload file ?").
>
А есть ли смысл в этой задаче? Тот же вышеназванный блокнот совершенно не следит за тем, изменялся ли кем-то ещё тот файл, который в нём открыт. Зачем это нужно твоей программе я не понял.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c