|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Ilya Anfimov 2:5020/400 21 Jul 2006 01:01:31 To : Rouslan Ibraguimov Subject : Re: запись в файл -------------------------------------------------------------------------------- 2006-07-20, Rouslan Ibraguimov <Rouslan.Ibraguimov@p666.f41.n5093.z2.fidonet.org> пишет: > it's really nice to talk to you > > Уважаемые гуpу и пpосто хоpошие люди -пpиведите пожалуйста пpимеp кода (на > пеpле, на шелле, на gcc) пpогpаммульки, котоpая вписывает в сеpедину > указанного конфига одну-две пpоизвольные стpочки. #!/usr/bin/perl -wpi use strict; use vars qw/$section $key $value/; BEGIN { $section = ''; }; if (m/^\s*\[([^]]*)\]\s*$/) { $section = $1; if ($section eq "testsection") { $_ .= "inserting=insert value\n"; }; } elsif (m/^\s*(\S+?)\s*=(.*)$/) { $key = $1; $value = $2; if (($section eq "testsection") && ( ($key eq "deleting") || ($key eq "inserting") ) ) { $_ = ""; } elsif (($section eq "testsection") && ($key eq "changing")) { $_ = "changing=changed value\n"; }; }; ========================= Воздействие на следующий файл очевидно: во всех секцыях примерно-виндового .ini-файла с именем testsection допишэтся строчка с ключом inserting, изменятся строки с ключом changing и удалятся -- с ключом deleting. [section1] none key=value key= =value =newvalue deleting=value in section1 changing = value changing 1 inserting =inserting in section 1 [testsection] deleting =value changing = new value inserting= inserted value keytest=value [section1] none key=value key= =value =newvalue deleting=value in section1 changing = value changing 1 inserting =inserting in section 1 [testsection] deleting =value changing = new value inserting= inserted value keytest=value > --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/191700db54046.html, оценка из 5, голосов 10
|