Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Classic Rexx */
- /* Перенумератор пачек с ИС, версия следующая (наверное вторая) ;) */
- /* По совету друзей, уменьшен размер и упрощён алгоритм. По просьбе */
- /* пользователей добавлена фича записи реального количества ИС в заголовок */
- call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
- call SysLoadFuncs
- InDir= '.\IN\*.*'
- OutDir='.\OUT\*.*'
- call SysFileTree InDir, 'File' , 'BO'
- DO j=1 TO File.0
- Say 'Обрабатывается файл: 'File.j
- Fi=Right(file.j,12)
- DO
- ISI='.\in\'||Fi
- ISO=Fi||'.tmp'
- ISO2='.\out\'||Fi
- fc=Stream(ISI,'C',Open Read)
- fc=Stream(ISO,'C',Open Write)
- /* ----- Заголовок оставляем как есть ----- */
- DO 4
- Str=LineIn(ISI)
- fc=LineOut(ISO,Str)
- END
- /* ----- Основной цикл - перенумерация ----- */
- i=1
- DO while Lines(ISI)
- Str=LineIn(ISI)
- len=Length(i)
- tar=Substr(Str,8,len)
- IF compare(tar,i) > 0 THEN
- DO
- Str=DelStr(Str,8,len)
- fc=Insert(i,Str,7)
- fc=LineOut(ISO,fc)
- END
- ELSE fc=LineOut(ISO,Str)
- i=i+1
- END
- fc=Stream(ISI,'C',Close)
- fc=Stream(ISO,'C',Close)
- /* ----- Вывов в правильный файл ----- */
- fc=Stream(ISO,'C',Open Read)
- fc=Stream(ISO2,'C' Open Write)
- /* ----- Заголовок оставляем как есть (почти) ----- */
- DO 3
- Str=LineIn(ISO)
- fc=LineOut(ISO2,Str)
- END
- /* ----- Корректное количество ИС в пачке (та самая фича) ----- */
- i=i-1
- Str=LineIn(ISO)
- Str=DelStr(Str,15)
- Str=Str||i
- fc=LineOut(ISO2,Str)
- /* ----- Обрезание хвостов ----- */
- i=1
- DO while Lines(ISO)
- Str=LineIn(ISO)
- pos=Length(i)+8
- tar=Substr(Str,pos,1)
- IF compare(tar,',') > 0 THEN
- DO
- Str=DelStr(Str,pos,1)
- fc=LineOut(ISO2,Str)
- END
- ELSE fc=LineOut(ISO2,Str)
- i=i+1
- END
- fc=Stream(ISO2,'C',Close)
- fc=Stream(ISO,'C',Close)
- '@Del ' ISO '> Nul'
- END
- END j
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement