![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| SkyFlex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Как выделить под строковую переменную определенную длинну.
например $: = "$name $adress" необходимо чтобы переменная $name всегда занимала 20 символов в строке. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Ivan Kolesnikov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 9.3.2005 Где: г. Новокузнецк Репутация: 3 Всего: 6 |
Или
Если пробелы нужно добавлять справа, а не слева --------------------
|
|||
|
||||
| SkyFlex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
а равное количество пробелов справа и слева можно ставить с помощью sprintf?
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
А зачем тебе? -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| SkyFlex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
ну да...в принципе мне это не нужно...так для сведения )
подскажите мне лучше как действуют enable и disable. естьпроцедура sub a {...}, которая выполняет ряд действий. возможно ли сделать enable(a) или disable(a). А над блоком можно ли произвести подобные действия? И как можно задать приоритет на выполнение процедур? Это сообщение отредактировал(а) SkyFlex - 4.4.2006, 10:18 |
|||
|
||||
| SkyFlex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Обрабатываю строки:
'Иван Петров' 'ИВАН Петров' 'иван ПЕТРОВ' 'Петр иванов' и т.д. множество имен и фамилий. Необходимо если встретится имя иван вне зависимости от регистра обработать и вывести в файл фамилию. Подскажите регулярное выражение Это сообщение отредактировал(а) SkyFlex - 4.4.2006, 13:36 |
|||
|
||||
| sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
SkyFlex,
На некоторых машинах, придется установить локаль:
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
| BlackLFL |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
perldoc lock
|
||||
|
|||||
| SkyFlex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
$_='Дождь на улице'
@x=split(/ /,$_); #необходимо убрать из массива @x элементы длина которых меньше 3 #т.е. в данном примере 'на' Подскажите, пожалуйста, если ли функция исключения из массива элементов... Это сообщение отредактировал(а) SkyFlex - 4.5.2006, 16:59 |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Насчёт вывода фиксированной строки выровненной по центру, написал такую подпрограмму:
По поводу исключения елементов массива, длина которых меньше 3-х символов, то было бы не плохо создать отдельную тему для данного вопроса. Пожалуйста, соблюдайте правила форума. Исключить такие элементы можно пройдя в цикле по всему массиву и одбросить не нужные елементы. Например:
Это сообщение отредактировал(а) korob2001 - 5.5.2006, 23:25 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
обрабатываю строки:
'^(.*) (рубль|рублей|рубля)\.$'; нужно вывести $1 $2, $2 при этом должно быть в верхнем регистре. подскажите пожалуйста. Можно конечно использовать схему =~s///, мб есть проще способ? |
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Как именно?
что мешает? Смотрите функции uc, ucfirst, lc, lcfirst и sprintf. Куда уж проще -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
вывести надо в переменную $:
$:="$1 $2" и как тут использовать функцию uc? Это сообщение отредактировал(а) alyam - 22.8.2006, 04:15 |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Например:
$: = "$1 " . uc($2); (точка - оператор конкатенации (слияния) строк). Чтобы это работало с русскими буквами, нужно подключить локаль (см. выше). Это сообщение отредактировал(а) amg - 22.8.2006, 06:58 |
|||
|
||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
локаль пытаюсь установить, как выше указано - выдается ошибка:
#perl: Can't locate loadable object for module POSIX in @INC (@INC contains: . D:/MMC D:/MMC) at main.c line 50 BEGIN failed--compilation aborted at D:/MMC /mmc.ini line 9. даже если я posix.pm скопирую, и xsloader.pm в d:/mmc |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
С локалью лучше разобраться, жить будет проще. А уж если не получится, то в крайнем случае можно сделать свой uc.
|
|||
|
||||
| rschnz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 22.8.2006 Репутация: нет Всего: нет |
Вопрос по регулярным выражениям
Имеется некоторый сайт, в html которого есть несколько блоков (упрощенно) <aaa> text </bbb>, т.е. известны маркеры начала и конца блоков, текст которых необходимо выделить. Проблема в том, что text - это произвольный текст, в котором - единственное, что известно - не встречается маркер конца. Если бы это был, например, некоторый URL, то я сделал бы так:
В моем же случае вместо " надо поставить слово - маркер конца. Но [] ведь только для символов |
|||
|
||||
| amg |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
|
||||
|
|||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
подскажите как сделать:
в файле несколько строк. каждая строка обрабатывается и выводится на экран. нужно если строка содержит многоточие в начале, то ее необходимо добавить к предыдущей и вывести в одну строку. как это сделать? запоминать строку, затем проверять следующую строку на наличие многоточия и выводить в зависимости от этого ? помоему не рационально, потому что первая строка выводится вне зависимости от того какая за ней следует. можно ли перенести строку с многоточием на строчку выше? как проигнорировать символ перевода строки? )) |
|||
|
||||
| Nab |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Это элементарно, Ватсон, просто не выводить его.... А идея такова:
Я код не проверял, но идея должна быть понятна ... -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
||||
|
|||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
с файлом работает. а если это например чат, в котором аналигичным образом надо обработать строки, тогда получится что выводится строка сама по себе, потом я снова вывожу ее print $_ (притом без цвета !).
|
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
А поподробней можно?
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
объяснять долго и сложно. если интересно почитай тут http://haali.cs.msu.ru/mmc/sample.mmcrc
|
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
alyam, новую тему запости...
|
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Отвечать долго и сложно, если хочешь, купи себе книжку... А если нужен ответ, то будьте добры изложите свою проблему.... -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| alyam |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
хорошо попытаюсь объяснить.
Триггеры. Триггеру передаются запрошенные совпадения ($1-$9) и пришедшая от сервера строка, на которую этот триггер настроен. (На самом деле триггеру передаются 2 строки: $_ - это строка без цветов, и $; - строка с цветами во внутреннем формате mmc.) Триггер МОЖЕТ изменять эти строки, но: 1) это не рекомендуется 2) если триггер изменяет строки, он должен сам следить за соответствием строк $_ и $; Кроме того, существует специальная переменная, $:. Из нее нельзя читать, но ей можно присваивать, и если ей присвоить строку с цветами, то эта строка попадет и в $;, а в $_ будет записана эта же строка без цветов. пример: trig {CODE} '.*'; #триггер будет обрабатывать каждую строку приходящую от сервера если стока начинается с многоточия, как проигнорировать символ перевода строки? т.е. если написать trig {chomp} '.*'; или trig {chomp} $_, что одно и тоже то это не приведет ни к какому результату Это сообщение отредактировал(а) alyam - 26.8.2006, 19:51 |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
alyam - создайте новый топик.
Модератор: Читаем правила форума. Один топик - один вопрос. Тема закрыта. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |