![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
Помогите решить проблем..Нужно считать инфу из текстового файла, модифицировать её и записать в другой текстовый файл..Модифицировать-поменять регистр с нижнего на верхний+провести замену некоторых символов на другие, добавить поле вычисления длины и так далее в том же духе...Пока добился того, что во второй файл пишет инфу в верхнем регистре, но..упорно не хочет заменять.И ещё подскажите, зачем в цикле while-к примеру- указывать явное соответсвие дескриптора-файлу, когда во всех книгах пишут, что они итак взаимно однозначны? пробовал без этого-не заработало, пока не поменял.Подскажите , плиз, ибо книги подробной инфы не дают.
Спасибо.Ниже код: #! usr/bin/perl -w $file_in="in.txt" unless defined $file_in; $file_out="out.txt" unless defined $file_out; printf "Opening file for conversion...\n"; open(INFILE,'<',$file_in) or die ("Cannot open file: $!"); open(OUTFILE, '+>',$file_out) or die ("Can't open output file: $!"); register_change($file_in,$file_out); # Change every symbol's register to UP sub register_change{ while ($file_in=<INFILE>) { print OUTFILE $file_out=uc($file_in); $file_out=~ tr/S/T/; } } close INFILE or die ("Cannot close file: $!"); close OUTFILE or die ("Cannot close file: $!"); print "Successful conversion.\n"; |
|||
|
||||
BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
Это сообщение отредактировал(а) BlackLFL - 1.11.2007, 17:18 |
|||
|
||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
После долгих мучений справился сам вот таким образом:
|
|||
|
||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
Возник правда ещё один вопрос.Каким образом можно в строку с определённой точки в тсроке вставить набор символов и каким образом их потом подвигать по надобности?
|
|||
|
||||
BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
|
|||
|
||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
Не знаю пока как substr поможет..нужно найти в файле все числа: 1 3 F0 34 0 1 итд. и к тем, который записываются только 1 символом, добавить нули, то есть так, чтобы стало: 01 03 F0 34 00 01...
|
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
-------------------- Died at Life.pl line 21 |
|||
|
||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
добавляет в данном случае нули везде, даже там , где они не нужны.. |
|||
|
||||
BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
тогда может опишете более подробно, что Вам нужно?
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Может, так?
|
|||
|
||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
amg, спасибо,Вы предложили то, что нужно, только вот ещё и шестнадцатиричные символы нужно учесть..то есть может быть строка:
1 3 А F0 34 0 1..тогда в результате она заменится на строку 01 03 0A F0 34 00 01. BlackLFL, вот более менее подробно, что требуется: нужно найти в файле все числа: 1 3 A F0 34 0 1 итд. и к тем, которые записываются только 1 символом, добавить нули, то есть так, чтобы стало: 01 03 0A F0 34 00 01... Это сообщение отредактировал(а) ma_lover - 5.11.2007, 12:20 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
||||
|
||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
amg, заменил-но не сработало, никаких изменений со строкой не произошло.=-(
Это сообщение отредактировал(а) ma_lover - 5.11.2007, 13:42 |
|||
|
||||
amg |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Должно работать!
Добавлено через 10 минут и 55 секунд Эти три регулярки можно объединить:
|
||||
|
|||||
ma_lover |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
amg, прошу прощения, всё действительно работает.Это я , по неопытности, []- опустил, с ними всё ок.Спасибо!
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |