Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Перестал работать скрипт подсчета времени

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
qnx
Отправлено: 26 Августа, 2010 - 09:32:58
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




не могу разобраться в следствии чего, ибо были проделаны минимальные модификации, перестал работать простенький скрипт, который сигнализирует о обеде и работе.
вот код
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. while (1)
  3. {
  4.         sleep(55);
  5.         ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
  6.         print "$min ";
  7.         if ($min == 0)
  8.         {
  9.                 print "$hour:$min\n";
  10.                 if ($hour == 13)
  11.                 {
  12.                         print "OBED!!!\n";
  13.                        
  14.                         qx/ eject\\EJECT.EXE E: /;
  15.                         #qx/ eject\\EJECT.EXE E: /l /;
  16.                 }
  17.                 if ($hour == 18)
  18.                 {
  19.                         print "END WORK!!!\n";
  20.                        
  21.                         qx/ eject\\EJECT.EXE E: /;
  22.                 }
  23.                 sleep(10);
  24.         }
  25.         if (($min == 10) || ($min == 20) || ($min == 30) || ($min == 40) || ($min == 50))
  26.         {
  27.                 print "$hour:$min\n";
  28.                 sleep(10);
  29.         }
  30. }
  31.  

п.с. код для win потому открытие сд так и реализовано.
 
 Top
garvey
Отправлено: 26 Августа, 2010 - 09:37:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




Как именно не работает? Выдает ошибки? Меня смущает следующая строка:
PHP:
скопировать код в буфер обмена
  1. ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

Может, так:
PHP:
скопировать код в буфер обмена
  1. list($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
 
 Top
qnx
Отправлено: 26 Августа, 2010 - 09:41:28
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




там все работает корректно.
CODE (htmlphp):
скопировать код в буфер обмена
  1. ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
  2. print "$sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst";

вот вывод:
CODE (htmlphp):
скопировать код в буфер обмена
  1. C:\Perl\bin>perl test1_de.pl
  2. 14,39,9,26,7,110,4,237,1
  3. C:\Perl\bin>

запускаю скрипт и он висит. вообще ничего не выводится. даже если перед циклом какой-то вывод добавляю ничего не выводит, хотя если добавить после того вывода exit;, тем самым не выполнять цикл все выводит.
(Добавление)
оказывается оно работает... только не понятно почему изначально не выводи в течении минуты первый print
CODE (htmlphp):
скопировать код в буфер обмена
  1. for (;;sleep(55))
  2. {
  3.         ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
  4.         print "$min ";
  5. ................
  6. ................
  7.  


как оказалось скрипт работает, но оооочень тормозит. время печатает с ооочень большим запазданием и на сколько я понял построчно, хотя может и ошибаюсь, еще не до конца выяснил это.. пока еще не дошел до выдвижения сидюка, надеюсь вовремя его выдвинет)

(Отредактировано автором: 26 Августа, 2010 - 10:27:55)

 
 Top
JustUserR Модератор
Отправлено: 26 Августа, 2010 - 10:41:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




garvey пишет:
Может, так
В языке Perl списки в круглях скобках являются конструкциях языка для агрегирующих выражений - соответственно их можно использовать для множественного присвоения и создания срезов массивов - то есть при достаточном приближении можно сказать что список это константная конструкция для формирования переменной массива - равно как строковая константа в кавычках может использоваться для заполнения строковой переменной При детальном рассмотрении разница имеется и она существенна - вы можете посмотреть об этом здесь http://dklab[dot]ru/chicken/nablas/20[dot]html и здесь и в последующих статьях
qnx пишет:
Оказывается оно работает... только не понятно почему изначально не выводи в течении минуты первый print
В приведенном вами Perl-скрипте в основном цикле программы выполняется задержка которая должна приостанавлививать его работу на 55 секунд - однако реализующая ее функция установлена в самом начале цикла и соответственно пауза происходит до первой итерации а не после нее как вероятно задумывалось - таким образом необходимо просто перенести вызов функции sleep в самый конец блока цикла


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
qnx
Отправлено: 26 Августа, 2010 - 10:47:21
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




задержка для цикла while это было временное решение, чтоб проверить вообще работоспособность цикла.. и я учитывая это ждал более минуты.....

в реале оно так...
на скрине видно, что время уже должно было бы напечататься, но его нет, а напечатается оно когда будет сделан "\n" перевод строки)))... вот такая магия)
(Добавление)
такое еще момент.
чем можно помигать светодиодами на клавиатуре??. думаю в форк (если такое в win поддерживается) запустить индикацию на клавиатуру)
 
 Top
JustUserR Модератор
Отправлено: 27 Августа, 2010 - 18:44:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




qnx пишет:
На скрине видно, что время уже должно было бы напечататься, но его нет, а напечатается оно когда будет сделан "\n" перевод строки)))... вот такая магия)
Приведенная вами ситуация является следствием внутреннего кеширования выводимой в поток информации - и для ее решения используется конструкция $|=1; которую необходимо установить в самое начало Perl-скрипта и таким образом включить autoflush
qnx пишет:
Чем можно помигать светодиодами на клавиатуре
Для реализации изменения состоянй светодиодов на клавиатуре можно эмулировать нажатие соответствующиъ им клавиш - это легко реализуется с помощью JScript-приложения
qnx пишет:
Думаю в форк (если такое в win поддерживается)
В оперционной системе windows ветвление процессов поддерживается в необхоимой мере


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
qnx
Отправлено: 30 Августа, 2010 - 09:16:53
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




спасибо большое. теперь правильно выводит)
на счет направления соискания информации спасибо.. буду искать)
 
 Top
JustUserR Модератор
Отправлено: 01 Сентября, 2010 - 17:29:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




qnx пишет:
Спасибо большое. теперь правильно выводит)
на счет направления соискания информации спасибо.. буду искать)
Пожалуйста! Если вам потребуется взаимодействие с операционной системой windows посредством Perl-скрипта то для этой цели имеются различные модули - в частности ActivePerl поддерживает механихм bootstrap для загрузки оригинальных системных динамических библиотек - что при описании подклчаемого интерфейса позволяет подключать требуемую функциональности в виде Perl-функций


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
qnx
Отправлено: 01 Сентября, 2010 - 17:56:54
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




в виду того, что перл устанавливался копированием файлов с другого компа, то модули доставить мало реально).. работаю пока с имеющимися чтоб не посыпалась трехдневная настройка для работы с бд sybase. а некоторые нужные мелкие штучки пока через qx/ * * * / делаю)
 
 Top
JustUserR Модератор
Отправлено: 02 Сентября, 2010 - 17:55:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




qnx пишет:
В виду того, что перл устанавливался копированием файлов с другого компа, то модули доставить мало реально)..
В случае если установленная версия интерпретатора Perl была получена путем копирования одного из полных Activestate-дистрибутивов - то в ее комплекте должна находиться специальная утилиты ppm которая позволяет устанвливать модули в графическом режиме Кроме того благодаря использованию конструкции AUTOLOAD и специальной переменной @ISA при наличия bootstap-функциональнсти - можно огранизовывать собсвенную динамическую загрузку любых модулей с созданием требуемого окружения для них


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
qnx
Отправлено: 02 Сентября, 2010 - 18:01:59
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




не получилось через прокси грузить модули... не говоря уже о кривом запуске той графической утилитки)
 
 Top
JustUserR Модератор
Отправлено: 03 Сентября, 2010 - 14:23:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




qnx пишет:
Не получилось через прокси грузить модули... не говоря уже о кривом запуске той графической утилитки)
Для загрузки и установки необходимых Perl-модудей вы можете использовать ручное компирование - с применением конфигурации по определенной схеме Для начала необходимо определить установлен ли у вас bootstap-механизм в виде модулей Auto/Dyna/XSloader что дает возможность использовать системные динамические библиотеки - в случае если они существуют то для установки модуля достаточно скопировать его в папку с расширениями - а также разместить dll и xs- файлы в соответствующую имени модуля директорию внутри папки auto


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
qnx
Отправлено: 06 Сентября, 2010 - 17:29:54
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




спасибо большое за направление куда копать).
в нынешнем скрипте не работает beep

CODE (htmlphp):
скопировать код в буфер обмена
  1. $| = 1;
  2. for (;;sleep(55))
  3. {
  4.         ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
  5.         print "$min ";
  6.         if ($min == 0)
  7.         {
  8.                 print "$hour:$min\n";
  9.                 if ($hour == 13)
  10.                 {
  11.                         print "LUNCH!!!\n";
  12.                        
  13.                         qx/ eject\\EJECT.EXE E: /;
  14.                         #qx/ eject\\EJECT.EXE E: /l /;
  15.                 }
  16.                 if ($hour == 18)
  17.                 {
  18.                         print "END WORK!!!\n";
  19.                        
  20.                         qx/ eject\\EJECT.EXE E: /;
  21.                 }
  22.                 if ($hour == 9)
  23.                 {
  24.                         print "WTF WORK!!!\n";
  25.                        
  26.                         qx/ eject\\EJECT.EXE E: /;
  27.                 }
  28.                 sleep(10);
  29.         }
  30.         if (($min == 10) || ($min == 20) || ($min == 30) || ($min == 40) || ($min == 50))
  31.         {
  32.                 print "$hour:$min\n";
  33.                 if (($min == 50) && ($hour != 17) && ($hour != 13) && ($hour != 12))
  34.                 {
  35.                         print "small pause!!!!!!!!!!!!!!!!!!!!!(10 min)\n";
  36.                         print "\a"; ######     NO WORK!
  37.                 }
  38.                 sleep(10);
  39.         }
  40. }
  41. exit;

с чего бы это может быть??
 
 Top
JustUserR Модератор
Отправлено: 06 Сентября, 2010 - 18:02:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




qnx пишет:
Спасибо большое за направление куда копать).
в нынешнем скрипте не работает beep
Пожалуйста! Некоторые специальные ASCII-последовательности которые предоставляют функциональность для управления терминалом могут не работь при их использовании в замещающей форме записи - как правило для решения такого вопроса применяется шестнадцатиричная форма записи которая в вашем случае будет выглядеть как print "\x07\n";


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
qnx
Отправлено: 07 Сентября, 2010 - 17:31:48
Post Id



Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Авг. 2010  
Откуда: город-герой Киев


Помог: 0 раз(а)




в очередной раз спасибо огромное за ответ. поставил как Вы посоветовали, но вроде и по-моему работает... не туда вставил изначально для отладки просто ... и соответственно не дождался)
п.с. теперь стараюсь не засиживаться за компом на работе а порой делать маленькие перерывы, как по охране труда требуется)))

п.п.с. JustUserR респект Вам и уважуха.. спасибо большое за помощь....
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы по Perl/Python/.NET »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB