Слить любое число последовательно поименованных файлов, по 50 файлов за итерацию
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | * Макрос обеспечивает слияние любого количества последовательно * поименованных файлов, по 50 файлов за итерацию. *////////////. DEFINE !merge4 (path=!TOKENS(1) /stem=!TOKENS(1) /n1=!TOKENS(1) /n2=!TOKENS(1)) GET FILE = !QUOTE(!CONCAT(!UNQUOTE(!path),!UNQUOTE(!stem),!n1,'.sav')). !LET !inifile='*' !DO !cnt=!n1 !TO !n2 !BY 49 !IF (!cnt=!n1) !THEN !LET !cnt1=!LENGTH(!CONCAT(!BLANK(!cnt),!BLANK(1))) !ELSE !LET !cnt1=!cnt !IFEND !LET !cnt2=!LENGTH(!CONCAT(!BLANK(!cnt),!BLANK(48))) !IF (!BLANK(!cnt2) !GT !BLANK(!n2)) !THEN !LET !cnt2=!n2 !IFEND ADD FILES FILE=!inifile !DO !fn=!cnt1 !TO !cnt2 /FILE=!QUOTE(!CONCAT(!UNQUOTE(!path),!UNQUOTE(!stem),!fn,'.sav')) !DOEND. !DOEND SAVE OUTFILE=!path + 'master.sav'. !ENDDEFINE. *////////////. SET MPRINT=yes. * Сливаем файлы (добавляем наблюдения) из файлов с file2 по file60. !merge4 path="c:\\temp\\" stem=file n1=2 n2=60. |