![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| shamber |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
Uзверь, у меня все прекрасно работает.
а вообще начните с того что добавляйте в начало каждого скрипта
Это сообщение отредактировал(а) shamber - 30.9.2009, 11:34 |
||||
|
|||||
| Uзверь |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 28.9.2009 Репутация: нет Всего: нет |
А вот ребят еще вопрос ?Сейчас работаю с выводом на экран в виде мультистроки содержимого лог файла... Покачто неработает...
вот код : #!/usr/bin/perl use strict; open (LOG,"LOG.txt") while ( $L=<LOG>){ print "$L:\n"; } Пробую запускать через консоль. Посмотрите такой алгоритм сработает и чего мне еще следует учесть при его выполнении,ну там где должен логфайл храниться... Это сообщение отредактировал(а) Uзверь - 30.9.2009, 12:49 |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
Uзверь, 1 тема 1 вопрос.....
open (LOG,"LOG.txt") как вы хотите его открыть? на чтение запись? |
|||
|
||||
| Uзверь |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 28.9.2009 Репутация: нет Всего: нет |
Вобще пытаюсь считать из логфайла сточку или весь текст одной длинной строчкой .Для развития и записать в файл чтонибудь можно...
|
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
В приведенном коде две ошибки: нет ; в строке с open и переменная используется без my (с use strict; это ошибка). И для любых операций с файлами нужны проверки. И предупреждения включать.
|
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
В дополнение к сказанному , то при неверном коде, синтаксисе и т.п. он всегда выдаст сообщение об ошибке, а то и не одно. -------------------- менеджер по кодеврайтингу |
|||
|
||||
| b00 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.9.2009 Где: Петербург Репутация: нет Всего: нет |
Uзверь, с Вашего позволения посоветую скачать и постоянно иметь под рукой вот эту книгу:
http://www.proklondike.com/books/perl/matr...hitel_perl.html Ну и как уже было сказано - обязательно добавляйте в начало своих скриптов use strict и use warnings (или делайте #!/path/to/perl -w). 90 процентов ошибок в этом случае Вы легко отловите сами. |
|||
|
||||
| Uзверь |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 28.9.2009 Репутация: нет Всего: нет |
Балгодарю за ответы товарищи!Очень многое прояснилось!
|
|||
|
||||
| Uзверь |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 28.9.2009 Репутация: нет Всего: нет |
Укажитека мне еще на ошибку...файл не хочет открываться говорит Can't open: No such file or director Вот. Я читал в одной книге что после интерпретатор можно еще прописывть путь к файлу вроде /..../.../LOG.txt .Чего я мог неучесть интересно...
|
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
|
|||
|
||||
| Uзверь |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 28.9.2009 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) Uзверь - 1.10.2009, 09:20 |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Путь к файлу, если он не в текущей директории, конечно нужно прописывать.
open (LOG,'C:/.../.../LOG.txt') or die "Can't open: $!\n"; (Вместо точек, разумеется, названия директорий. Вместо прямого слеша для разделения путей можно использовать и обратный, но тогда будут неожиданности, если эта строка будет в двойных кавычках.
perl C:/.../.../script.pl И даже к перлу, если программа-установщик дистрибутива не позаботилась внести его в переменную окружения PATH (или как там она в виндах называется): C:/perl/perl.exe C:/.../.../script.pl Ну и, наконец, в параметрах к скрипту можно указать имя файла (с полным путем, если нужно). perl script.pl LOG.txt Тогда сам скрипт, печатающий этот файл, будет совсем коротким, только одна строка: print while <>; или даже print <>; |
|||
|
||||
| b00 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 27.9.2009 Где: Петербург Репутация: нет Всего: нет |
Именно поэтому и стоит использовать use strict даже в самом начале изучения. Потом неожиданно пригождаются какие-то старые функции, а при их использовании не возникает проблем с видимостью переменных. ИМХО, если уж учиться, то сразу на перспективу
Если Вы имеете в виду указание имени файла в параметрах запуска для своего скрипта, то Вам нужно его оттуда извлечь. Параметры, передаваемые при запуске, находятся в массиве @ARGV (наберите в гугле "системные переменные perl). Соответственно если Вы хотите делать так: $ ./my_script.pl logfile.log то в скрипте должно быть: my $input_file = shift; (можно добавить какое-то условие на случай, если файл не указан, например shift || die "укажите файл!"; ли так: my $input_file = $ARGV[0]; |
||||
|
|||||
| Uзверь |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 28.9.2009 Репутация: нет Всего: нет |
А как вы считаете сложно писать такию программу? Звучит так: Есть лог с атс а в нем номера телефонов,длительность разговоров ,и уникальный номер закрепленный за абонентом. Лог имеет такой вид
N 076 00 5104 T001 020 03/12 13:04:12 00:00:30 .0 A9710189175023971 & & 000 N 077 00 A001 034 5238 03/12 13:04:15 00:00:58 .0 & & 000 N 078 00 A001 006 5120 03/12 13:05:03 00:01:00 .0 & & 000 N 079 00 5119 T001 019 03/12 13:06:00 00:00:44 .0 A971015182784 & & 000 N 080 00 5701 T001 018 03/12 13:06:52 00:00:18 .0 A971014992389030 & & 000 Задача такая.Написать код который бы открывал лог и считывал из него номера с кодами сотовых телов учитывая наибольшее время разоговоров. Есть ли какие нибудь особенности у реализации такого алгоритма? |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Похоже, совсем несложно.
Но кое-что непонятно. Чем разделяются поля? Будет ли однозначным разделение строки по пробелам, когда несколько идущих подряд пробелов считыются одним? Где там номер телефона, а где ID абонента? |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |