RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Еще один этюдик на рексе?


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : ed
To : shiz0rat
Subj : Еще один этюдик на рексе?

> Как бы мне такую задачку написать, побыстрее да попроще: замена одной
===
/**/
parse arg file str1 str2
'@echo off'
e=0
if(stream(file||'.bak','c','query exists')\='') then do
'copy '||file||' '||file||'.tmp>nul'
'copy '||file||'.bak '||file||'>nul'
'copy '||file||'.tmp '||file||'.bak>nul'
'delete '||file||.'.bak>nul'
end
else do
if(str2\='') then do
'copy '||file||' '||file||'.bak>nul'
'del '||file||'>nul'
l1=length(str1)
l2=length(str2)
do until(lines(file||'.bak')=0)
s=linein(file||'.bak')
i1=pos(str1,s)
if(i1>0) then do
s=delstr(s,i1,l1)
s=insert(str2,s,i1-1)
e=bitor(e,,'1'x)
end
else do
i2=pos(str2,s)
if(i2>0) then do
s=delstr(s,i2,l2)
s=insert(str1,s,i2-1)
e=bitor(e,,'2'x)
end
end
call lineout file,s
end
call stream file||'.bak','c','close'
if(e=0)then do
'delete '||file||.'.bak>nul'
end
call stream file,'c','close'
end
end
exit e
===

Fri 10 Dec 2004 18:51 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.0.0) Gecko/20020




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.