suz191
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Очень нужна помощь!!! Пожалуйста помогите разобрать со скриптом чтения треками с источника: Чтение треками В zoc 5 он работает! Но в win8 x64 (zoc 5 постоянно вылетает + вылетают скорости). Вывод, zoc 5 и win8 x64 сплошные глюки... В zoc 6 какая-то битая библиотека которая не хочет сохранять фаил нормально... А расставляет точки гребешком Что-то надо переделать, а что не могу понять(((( Скрипт под 12 винты нашли где переделать работает и с 12 и с 11, а сделать чтоб полос не было не могу! Не получается Если переделывать огромные скрипты которые работают в zoc 6, то на это вообще больше года уйдёт Скрипт прилагаю.... Цитата: /* REXX */ ZocCls CALL ZocTimeout 60 ZocSuppressOutput 1 /* 1=запрет вывода на экран */ CALL ZocSend "^M" CALL ZocWait ">" CALL ZocSend "/2^M" CALL ZocWait "2>" ZocSend "R,1^M" /* Эта строка нужна если при нач. выводе N буфф. не выводится строка default Rd Buf */ ZocWait "2>" CALL ZocReceiveBuf 2048 CALL ZocSend "?" CALL ZocDelay 0.3 CALL ZocSend "^M" CALL ZocWait "2>" abst= ZocReceiveBuf(0) call SearchString 1,"Default" call ATOB substr(word(abst,K-8),1,6) RD_BUFF=reslt ZocSuppressOutput 0 ZocSend "A0^M" ZocWait "2>" ZocSuppressOutput 1 HEAD="00" LCYL=0 BULK=201 /* трэков=обработка пакетом */ NEXT: HEAD= ZocAsk("Please enter phys HEAD+LCYL(SA.OFFSET)", substr(HEAD,1,1)||","||d2x(LCYL,03)) IF HEAD= "##CANCEL##" THEN DO SIGNAL BYE END LCYL=substr(HEAD,3,3) HEAD=substr(HEAD,1,2) x1: CALL ZocReceiveBuf 2048 ZocSuppressOutput 0 CALL ZocSend "x1^M" CALL ZocWait "2>" ZocSuppressOutput 1 abst= ZocReceiveBuf(0) call SearchString 1,HEAD T=K call SearchString T, "Zn" T=K call SearchString T ,"00" CYL=word(abst,K+1) SecT=word(abst,K+2) call ATOB SecT SPT=reslt call ATOB LCYL LCYL=reslt call ATOB CYL dec_cyl=reslt+LCYL CYL= d2x(dec_cyl,8) FILE="D:\_dumps\0"||substr(HEAD,1,1)||"."||d2x(LCYL,03)||".BIN" IF STREAM(file, "C", "QUERY EXISTS")\="" THEN DO ADDRESS CMD DEL file END CALL STREAM file,"C","OPEN WRITE" ZocSend "s"||CYL||","||HEAD||"22^M" /* HEAD=0, или 1, ... */ ZocWait "2>" ZocSend "r,0,"||SecT||"^M" ZocWait "2>" Z=0 DO I=RD_BUFF TO RD_BUFF+SPT-1 BY 1 CALL ZocReceiveBuf 2048 w=D2X(I,04) ZocNotify "HD:"||"0"||substr(HEAD,1,1)||" CYL:"||CYL||" Sec:"||d2x(Z,04) ZocSend "B"||w||","||w||"^M" ZocWait "2>" abst= ZocReceiveBuf(0) BINSTRING="" DO K=29 TO words(abst)-1 BINSTRING=BINSTRING||substr(word(abst,K),1,2) END CALL CHAROUT file,X2C(BINSTRING) Z=Z+1 END CALL STREAM file,"C","CLOSE" LCYL=LCYL+1 BULK=BULK-1 IF BULK\=0 THEN DO LCYL=D2X(LCYL,03) SIGNAL x1 END LCYL=0 BULK=201 SIGNAL NEXT BYE: say "BYE!" EXIT ATOB: arg param p=0 reslt=0 param=reverse(PARAM) DO I=1 TO length(param) AI=x2d(substr(PARAM,I,1)) reslt=reslt+AI*(16**P) P=P+1 END RETURN SearchString: /* arg(1)= начало поиска. arg(2)=что искать */ DO K=arg(1) TO words(abst) IF word(abst,K)=arg(2) THEN DO leave END END RETURN | Спасибо!!! | Всего записей: 706 | Зарегистр. 17-11-2005 | Отправлено: 13:36 28-05-2013 | Исправлено: suz191, 01:07 29-05-2013 |
|