Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 16:37   #1
Roman324
Пользователь
 
Регистрация: 09.01.2013
Сообщений: 21
По умолчанию Следить за изменениями в переменной integer

Всем привет. Голова что-то не варит уже.
Собственно, подскажите, пожалуйста, как это реализовать.

Получаю размер файла и записываю в переменную типа интеджер. В дальнейшем мне надо следить, если изменится значение интеджер, то выполнять некое действие. И так n-ое кол-во раз.

Спасибо.
Roman324 вне форума Ответить с цитированием
Старый 07.02.2013, 16:59   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

бросай в таймер функцию получения размера файла и сравнивания с предыдущим размером
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 07.02.2013, 17:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Зачем? Какую цель преследуешь мониторя переменку?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.02.2013, 17:06   #4
Roman324
Пользователь
 
Регистрация: 09.01.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
бросай в таймер функцию получения размера файла и сравнивания с предыдущим размером
Да так и делаю. Но что-то не работает

Код:
procedure TDataModule1.TimercheckrazmerTimer(Sender: TObject);
var
 size: integer;
begin
 size:=Trunc(GetFileSizeMB('C:\Users\1\Desktop\123.txt'));

 if size<>size then
 GeneralForm.Memo1.Lines.Add('Размер изменён')
end;
Roman324 вне форума Ответить с цитированием
Старый 07.02.2013, 17:07   #5
Roman324
Пользователь
 
Регистрация: 09.01.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Зачем? Какую цель преследуешь мониторя переменку?
Мне надо при изменении тхт файла выполнять некую функцию.
Roman324 вне форума Ответить с цитированием
Старый 07.02.2013, 17:29   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

1. а не смущает ли тебя одинаковые пременные size (даже если одна из них глобальная, а вторая нет) ?
2. я там предпологаю что в имени GetFileSizeMB последние 2 символа (MB) обозначают "мегабайты" ?
если да - то в таком случае у тебя размер должен измениться в "мегабайтах", а не "килобайтах\байтах\битах" для срабатывания реакции
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 07.02.2013, 17:34   #7
Roman324
Пользователь
 
Регистрация: 09.01.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
1. а не смущает ли тебя одинаковые пременные size (даже если одна из них глобальная, а вторая нет) ?
2. я там предпологаю что в имени GetFileSizeMB последние 2 символа (MB) обозначают "мегабайты" ?
если да - то в таком случае у тебя размер должен измениться в "мегабайтах", а не "килобайтах\байтах\битах" для срабатывания реакции
1. Пробовал разные переменные. Узнавал размер, записывал в size. Потом из size записывал в size2 и потом их сравнивал. Может не так что-то делал.
2. Размер в байтах узнаю.
Roman324 вне форума Ответить с цитированием
Старый 07.02.2013, 17:39   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо при изменении тхт файла
А с чего ты взял что при изменении обязательно размер изменится?
Цитата:
Roman324
Думаю что использование в таймере функции FindFirst или использование FindFirstChangeNotification тебе помогут.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.02.2013, 17:39   #9
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

ну тогда показывайте что в функции GetFileSizeMB
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 07.02.2013, 17:48   #10
Roman324
Пользователь
 
Регистрация: 09.01.2013
Сообщений: 21
По умолчанию

Код:
function GetFileSizeMB(AFileName : String) : Double;
var
  F : TSearchRec;
begin
  Try
    If FindFirst(AFileName,faAnyFile,F) <> 0 Then
  Raise Exception.Create('File not found.');
    Result := F.Size;
  Finally
    FindClose(F);
  End;
end;

Последний раз редактировалось Roman324; 07.02.2013 в 17:51.
Roman324 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Следить за изменениями в каталоге vbilash Win Api 9 19.05.2011 22:30
какое значение переменной integer по умолчанию? vitaliy1911 Общие вопросы Delphi 11 25.05.2010 14:36
к переменной типа integer присвоить переменную string Kigmatig Помощь студентам 7 29.01.2010 21:55
как следить за программой slavbase Свободное общение 4 21.03.2009 19:44
можно тип переменной word преобразовать в integer мандарин Общие вопросы Delphi 7 01.06.2007 20:04