Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Perl
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.08.2009, 18:49   #1
newbies
 
Регистрация: 02.08.2009
Сообщений: 3
Репутация: 10
По умолчанию нужен скрипт на PERL для обработки текстовой информации (1251 кириллица, десетки тысяч строк) PERL

Здравствуйте уважаемый ALL!

Очень нужен скрипт на PERL для обработки текстовой информации (1251 кириллица, десетки тысяч строк). Примеры текстов, что есть и что надо получить:

Есть: ADR=ЛЕНИНА УЛИЦА 31/2

Надо: ADR=ЛЕНИНА УЛИЦА, Д.31/2

или

Есть: ADR=ЛЕНИНА УЛ. 31к2

Надо: ADR=ЛЕНИНА УЛ., Д.31к2

Название улицы - набор символов произвольной длинны и кол-ва слов (может и латынь, но внутри цифр быть не может), номер дома в конце - просто десятичная цифра или набор символов, начинающийся с цифр типа 31/1 или 31к2.

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


В номере дома пробелов быть не может.
Есть и другие строки, без ADR вначале.

Получается, в строке, начинающейся с ADR первый справа пробел - и вставить ", Д."

На PERL потому, что я там могу сам условия первого атрибута в строке (типа ADR) поменять. Тк их там несколько. Ну чтобы более-менее упростить работу Вам.
В принципе, можно на чем угодно написать главное - на выходе текстовый файл с указанными параметрами и возможность изменить первый атрибут.

Спасибо.

Последний раз редактировалось newbies; 03.08.2009 в 16:14.
newbies вне форума   Ответить с цитированием
Старый 03.08.2009, 11:26   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,842
Репутация: 6832
По умолчанию

Предположительно тебе нужно чето-то в этом роде (Регулярные выражения - http://ru.wikipedia.org/wiki/Perl_(я...аммирования)):

Код:

 $x =~ s/УЛИЦА/УЛИЦА, Д./g;

И
Код:

 $x =~ s/УЛ. /УЛ., Д./g;

Читай про них на ссылке.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 03.08.2009, 12:00   #3
wall66
Профессионал
 
Аватар для wall66
 
Регистрация: 04.10.2008
Адрес: Екатеринбург
Сообщений: 1,485
Репутация: 516

icq: 425890489
По умолчанию

да, это делается регулярными выражениями, но в общих словах задача сводится к замене последнего пробела в строке на пробел + Д.
__________________
свободен...
wall66 вне форума   Ответить с цитированием
Старый 03.08.2009, 14:35   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,499
Репутация: 5308
По умолчанию простая программка, решающая задачу с простеньким интерфейсом

вот.
набросал простую программку. на Delphi.
кое-какой интерфейс присутствует.
(EXE + исходники внутри архива)
Вложения
Тип файла: rar rpl_txt.rar (149.9 Кб, 5 просмотров)
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 03.08.2009, 16:32   #5
newbies
 
Регистрация: 02.08.2009
Сообщений: 3
Репутация: 10
По умолчанию

Спасибо всем за реакцию, но поверьте, просто совсем нет времени читать про регулярные выражения. Обязательно прочту, как отчет сдам. Казалось задачка простенькая, ан нет...

to Serge_Bliznykov

Спасибо, примерно то что надо. Но:

- В файле есть другие строчки, не начинающиеся с ADR и их необходимо оставить без изменения

- почему-то она берет не только цифры справа, но и буквы и другие символы

- в строке с ADR в начале, первый символ справа (те последний в строке) может быть только цифра (ни скобка, ни точка, ни буква рус/лат. ни какой другой символ)

Вроде чуток осталось

Спасибо!

Последний раз редактировалось newbies; 03.08.2009 в 16:41.
newbies вне форума   Ответить с цитированием
Старый 03.08.2009, 19:13   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,499
Репутация: 5308
По умолчанию

Цитата:
- В файле есть другие строчки, не начинающиеся с ADR и их необходимо оставить без изменения
это просто.
в новой версии сделано. (см. приложение)

Цитата:
- почему-то она берет не только цифры справа, но и буквы и другие символы
??? ну, так и должно быть. все символы ДО ПЕРВОГО СПРАВА пробела считаем как номер дома,
пример Ваш же: 31к2
Или Вы что-то другое имеет в виду?!

Цитата:
- в строке с ADR в начале, первый символ справа (те последний в строке) может быть только цифра (ни скобка, ни точка, ни буква рус/лат. ни какой другой символ)
вроде бы это неважно?...

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

p.s. Исходник на Дельфи можете изменять самостоятельно. скачать любую версию Дельфи (можно даже портабле) и компилировать исходник...
Вложения
Тип файла: rar rpl_txt_v2.rar (144.6 Кб, 2 просмотров)
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 03.08.2009, 19:59   #7
newbies
 
Регистрация: 02.08.2009
Сообщений: 3
Репутация: 10
По умолчанию

то Serge_Bliznykov

Работает!!!!!
Всё как надо

Мегареспект! Спасибо!!!!
newbies вне форума   Ответить с цитированием
Старый 03.08.2009, 22:25   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,499
Репутация: 5308
По умолчанию

Рад.
Да не за что
Обращайтесь, если что...
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вакансии REG.RU: программист Perl и ведущий разработчик (Perl) REG.RU Работа на постоянной основе - Вакансии 0 20.12.2011 19:57
Python vs Perl, Я выбрал Perl! Причина: а черт ее знает но наверное дело в философии и синтаксисе(TMTOWTDI ) Sna1L Perl 0 13.12.2011 14:10
Требуется web-программист (perl или php, готовый переучиться на perl). офис в Казани uCoz Работа на постоянной основе - Вакансии 0 20.01.2011 19:03
Требуется: Разработчик Perl / Программист–аналитик Perl verait Работа на постоянной основе - Вакансии 0 07.05.2009 12:51


15:58.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru