Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Если изменился размер файла, как это узнать? Сравнить размер файла при другом запуске 
:(
    Опции темы
Uran34
Дата 10.12.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Такой вопрос. Есть некий файл, открывающийся при начале работы программы. Допустим он имеет определненный размер. Этот размер имеет влияние на работу программы при следующем ее, повторном запуске. Т. е. если изменится размер файла - исказятся данные, формирующиеся последующими вычислениями программы на сервере при запуске другим пользователем. Мысль такая: зафиксировать размер файла при первом сеансе работы, используя -s $name_file, а потом, при втором запуске сравнить измеренное значение с изменившимся. Если значения не равны, принимаются соответсвующие корректирующие меры. Вот как это сделать, голову сломал, не знаю. Есть ли функция, подобная операциям -s, -z, чтобы узнать, произошло ли изменение размера? 
PM MAIL   Вверх
arto
Дата 10.12.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



# touch aa 
# perl -le 'print -s "aa"'
0
# cat >|aa
aa
^D
# perl -le 'print -s "aa"'
3

не оно?
PM MAIL ICQ   Вверх
Uran34
Дата 11.12.2010, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Признаться, ничего не понял. А можно как-нибудь поподробнее, с разъяснениями? (Я же только учусь smile )

Это сообщение отредактировал(а) Uran34 - 11.12.2010, 21:14
PM MAIL   Вверх
arto
Дата 11.12.2010, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



тестовая функция -s file возвращает раз мер файла в байтах (perldoc -f -s)
размер файла возвращает так же функция stat (perldoc -f stat)
PM MAIL ICQ   Вверх
Uran34
Дата 12.12.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 9.11.2010

Репутация: нет
Всего: нет



Цитата(arto @  11.12.2010,  22:43 Найти цитируемый пост)
тестовая функция -s file возвращает раз мер файла в байтах (perldoc -f -s)
размер файла возвращает так же функция stat (perldoc -f stat) 


Да, это мне известно. Но вот в чем проблема-то. Я могу измерить размер файла, что называется,здесь и сечас, в данный момент времени
согласно действию кода программы. Это значение будет мне известно. А с чем его сравнить? Как запомнить размер файла, который был
до этого контрольного измерения? При выходе из программы значение переменной теряется, увы. Вот я и хочу узнать, есть ли такая функция, чтобы измерить текущий размер файла и сравнить его с предыдущим, где-то зафиксированным программой? Ну, вот, например, есть файл базы данных, в который заносится какая-то информация (размер в байтах, соответсвенно меняется). Программа должна между запусками помнить последнее измеренное значение. Кто-то, после очередного изменения, вызывает программу и она должна, прежде чем выдать необходимый результат, произвести измерения файла в данный момент и сравнить с размером предыдущим. Если есть разница, тогда выполняется корректировка данных.   

PM MAIL   Вверх
gcc
Дата 12.12.2010, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



еще есть:
Event::Notify 
http://search.cpan.org/~dmaki/Event-Notify...Event/Notify.pm
File::ChangeNotify
http://search.cpan.org/~drolsky/File-Chang...ChangeNotify.pm
с библиотеки EV как-то можно, наверное

MVC Catalyst когда работает и когда изменились файлы, то веб-сервер(HTTP::DEAMON) может перегрузить себя, чтобы внеслись изменения в работающее приложение

Это сообщение отредактировал(а) gcc - 12.12.2010, 11:32
PM WWW ICQ Skype GTalk Jabber   Вверх
shamber
Дата 12.12.2010, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Цитата(Uran34 @  12.12.2010,  09:21 Найти цитируемый пост)
Кто-то, после очередного изменения, вызывает программу и она должна, прежде чем выдать необходимый результат, произвести измерения файла в данный момент и сравнить с размером предыдущим.

какие проблемы, пишите результат измерения куда хотите(файл, база еще какие варианты), при запуске читайте их в хеш и сравнивайте.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0858 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.