The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Perl подскажите плиз"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Perl подскажите плиз"  
Сообщение от redd on 24-Дек-08, 23:53 
Нужно в винде в цикле смотреть папку, как только в папке появится файл file нужно вызвать внешнюю программу, вывести на косоль файл обработан, удалить файл file, и снова ждать нового файла.

Подскажите хоть общих черах как это сделать

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Perl подскажите плиз"  
Сообщение от redd on 25-Дек-08, 00:24 
Почему не могу удалить файл ?????
system("c:/perl_prog/file");


то путь не тот то ошибка параметра какого-то, подскажите а кто нить

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Perl подскажите плиз"  
Сообщение от redd on 25-Дек-08, 00:26 

то есть вот так
system("del c:/perl_prog/file"); не работает и так уж пробовал и эдак

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Perl подскажите плиз"  
Сообщение от TyLLIKAH on 25-Дек-08, 02:41 
А слеши в другую сторону пробовал ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Perl подскажите плиз"  
Сообщение от angra (ok) on 25-Дек-08, 06:32 
Или файл кем-то открыт, например самим скриптом. В винде удаление открытых файлов невозможно, в отличие от никсов.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Perl подскажите плиз"  
Сообщение от Андрей (??) on 25-Дек-08, 10:46 
слеши пробовал в другую сторону, из консоли удаляет без проблем
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Perl подскажите плиз"  
Сообщение от angra (ok) on 25-Дек-08, 22:32 
На прочтение/перевод сообщения об ошибке вас не хватило? Кстати почему unlink не использовать вместо маразма с внешним вызовом, тем более что del это внутренняя  команда cmd, а не внешний бинарь как rm в никсах.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Perl подскажите плиз"  
Сообщение от andrey (??) on 26-Дек-08, 01:28 
Спасибо !!!
О чудо заработало, можь я правда криво сделал для поставленной задачи но работает )))
while(true)
{
sleep 60;
$file="c:/perl_prog/in" ;
open (ID,"$file")|| redo;
    while ($str=<ID>){
                      $nomer=$str
                  }
print "Номер=",$nomer;
close (ID);
unlink $file;
redo;
}

Вот что получилось, можь кому пригодится

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Perl подскажите плиз"  
Сообщение от angra (ok) on 28-Дек-08, 05:41 
>Вот что получилось, можь кому пригодится

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


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Perl подскажите плиз"  
Сообщение от andrey (??) on 28-Дек-08, 09:23 
Ну вообщето код код реально работает на предприятии, и имеет практическое применение.

Насчет ошибок не знаю но работает.

Не могли бы вы указать на мои ошибки ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Perl подскажите плиз"  
Сообщение от angra (ok) on 29-Дек-08, 03:52 
Первый урок бесплатно :)
>while(true)

В принципе нормально, но хватило бы 1 вместо true и нет явного условия выхода из цикла, прерывание программы по ctrl-c это дурной тон
>$file="c:/perl_prog/in" ;

Использование глобальной переменной. Многократное инициирование одним и тем же значением, должно быть вынесено за пределы цикла.
>open (ID,"$file")|| redo;

Вы проверяете на возможность открытия, а не на существование, правильно ли это зависит от ТЗ. Использование redo вместо next вызывает неправильное восприятие смысла проверки, что снижает читабельность
>    while ($str=<ID>){
>                      $nomer=$str
>                  }
>print "Номер=",$nomer;

Опять глобальные переменные причем одна лишняя. Также не понятен смысл всей конструкции, неужели в ТЗ было сказано вывести последнюю строку файла? А что будет если файл окажется пустым вы подумали?
>redo;

Опять redo причем абсолютно лишнее, ведь после нее идет и так завершение итерации.
Итого только три строки из 11 не вызывают нареканий. Чуть не забыл, у вас плывет стиль оформления, что тоже не добавляет коду читабельности.  

Неужели вам не стыдно такое показывать? Также добавлю что код написан без flock и скорее всего вы всегда пишете без него, как следствие ваши программы это мины замедленного действия. А вообще весь этот код пишется в одну строку и подобные по сложности однострочники могут писаться админами по несколько десятков за день, причем никто даже не подумает делится такой элементарщиной.

P.S. Все мы начинали с нуля, лет пятнадцать назад я тоже мог бы написать подобное. Не стыдно чего-то не уметь, но вот публично демонстрировать невежество, да еще и предлагать его как образец мягко говоря неумно. Чтобы вы подумали про человека, который первый раз в своей жизни забил гвоздь, причем коряво, и теперь спрашивает у окружающих не нужен ли кому-то его бесценный опыт?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Perl подскажите плиз"  
Сообщение от andrey (??) on 30-Дек-08, 22:47 
Да нет не стыдно, просто пришлось, от безвыходности, ......
Ну больше писать не буду тогда ,
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Perl подскажите плиз"  
Сообщение от andrey (??) on 30-Дек-08, 23:06 
Не могу не спросить тогда чем отличается синтаксис запроса в пхп 3 от пхп 5 в update, код в пхп 3 работает , а в пхп 5 нет........

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Perl подскажите плиз"  
Сообщение от angra (ok) on 31-Дек-08, 02:33 
Покажите проблемный кусок кода и выдаваемую ошибку. Если про запросы к БД, то синтаксис запросов в основном определяется самой БД, а не языком программирования.
Не стоит бросать программирование, если пока плохо получается, умение приходит с опытом. Я когда начинал тоже писал такую чушь(опять таки работающую), что было стыдно глянуть через пару лет.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру