Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Perl Замена символов, Замена символов в Perl
Nikson77
Вставить ник
сообщение 15:04:2008, 12:44
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 2
Регистрация: 15:04:2008
Пользователь №: 16 650
Специализация: IT



Репутация: - 0 +


Люди добрые подскажите как правильно сделать замену символов в Perl. Задача такая, есть текстовый файл с огромным количеством строк:
"1111";"ИВАНОВ ИВАН ИВАНЫЧ";"П.СВЕТЛЫЙ, Д.22, КВ.11"
"2222";"ПЕТРОВ ПЕТР ПЕТРОВИЧ";"П.ТЕМНЫЙ, Д.33, КВ.22"
и т.д.
нужно заменить (, Д.) на (";)

Пытался тут чего то, но безуспешно.
_____________________________________________________
open F1, $ARGV[0] or die "Error opening file $ARGV[0]\n";
open F2, ">result.txt";
while(<F1>) {
# subst ($_,"\, Д\.","\"\;");
$str =~ s/\, Д\./\"\;/g;
print F2;}
close F2;
close F1;
_____________________________________________________

Подсобите пожалуйста. Народ советует замены в файлах большого размера делать именно на Perl, говорят так проще и быстрей, только помочь никто не может.
Спасибо.
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 2)
Vovochka
Вставить ник
сообщение 15:04:2008, 22:02
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 198
Регистрация: 4:08:2006
Из: Vladivostok.pm
Пользователь №: 5 749
Специализация: Perl, Web



Репутация: - 4 +


А чего вы хотели?
Считываете вы в переменную $_ и пишете из нее.
А обрабатываете переменную $str;
Замените:
Код
$str =~ s/\, Д\./\"\;/g;

На:
Код
s/\, Д\./\"\;/g;

И надейтесь, что у вас не возникнет проблем с кодировками.

Сообщение отредактировал Vovochka - 15:04:2008, 22:10
Подняться вверх 
 
Сообщение #2
Nikson77
Вставить ник
сообщение 16:04:2008, 03:11
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 2
Регистрация: 15:04:2008
Пользователь №: 16 650
Специализация: IT



Репутация: - 0 +


Спасибо большое. Все работает.
Дай Вам Бог здоровья!
Подняться вверх 
 
Сообщение #3


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 05:08
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net