| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > inplace edit |
| Автор: Cyr 15.10.2015, 11:30 |
| Есть файл со строками из 2-х чисел в каждой строке разделёнными пробелом: значение1 и значение2. Надо сделать простую процедуру по записи/редактированию значений: 1. Если значение1 есть и значение2 совпадают с переданными в процедуру, то ничего не делать. 2. Если значение1 есть, а значение2 не совпадают с переданным в процедуру, то переписать значение2. 3. Если значение1 нет в файле, то записать новую строку со значением1 и значением2. |
| Автор: Cyr 15.10.2015, 11:45 | ||
Я попробовал такую процедуру:
Но она п.2. условия задачи не выполняет - пишет новую строку, а не редактирует существующую. |
| Автор: noize 16.10.2015, 00:15 | ||||
задача поставлена некорректно
Что значит "ничего не делать"? Вы не будете писать в тот же самый файл из которого читаете. Нужно сделать tmp-файл, в него записать обработанные данные и потом им подменить исходный файл. Под "ничего не делать" имеется ввиду, что строки должны остаться в файле неизменными?
Кто на ком стоял? Что такое значение1 и значение2? что передаётся в процедуру? кого с чем сравнивать и что куда в итоге записывать? Непонятно |
| Автор: arto 19.10.2015, 08:26 |
| у вас ошибка в open (perldoc perlopentut), и не передёргивается файловый указатель (perldoc -f seek) |