Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.46 MB
Время: 0.066 c
2-1210593259
Int23
2008-05-12 15:54
2008.06.01
Форма ввода одной строки


15-1208062484
anton773
2008-04-13 08:54
2008.06.01
борьба с пиратством


3-1198498114
Wlad
2007-12-24 15:08
2008.06.01
Связка BDEDatasource и IBDataset


2-1210240201
dolmat
2008-05-08 13:50
2008.06.01
Есть ли стандартные функции n! и x в степени y


2-1210664893
Сергей
2008-05-13 11:48
2008.06.01
Как сравнить две строки по маске с помощью функций Delphi?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский