*(Вопрос) Теперь мне надо найти часть строки, которая относится к имени, * и часть, которая относится к адресу. Например: "Bloggs J 10 Smith St" должна быть разбита по 2 переменным, "Bloggs J" и "10 Smith St". *(Ответ) Размещён в SPSSX-L 25.7.2002. Автор: Raynald Levesque. ******************. * Вот первый способ. ******************. DATA LIST FIXED /str1 1-25 (A). BEGIN DATA Bloggs J 10 Smith St Bloggs John 12 Smith St END DATA. LIST. VECTOR nb(25F2). LOOP cnt=1 TO 25. COMPUTE nb(cnt)=cnt*(1-NMISS(NUMBER(SUBSTR(str1,cnt,1),F1))). END LOOP. LOOP cnt=1 TO 25. IF nb(cnt)=0 nb(cnt)=$SYSMIS. END LOOP. COMPUTE pos=MIN(nb1 TO nb25). STRING addr(A25). COMPUTE addr=SUBSTR(str1,pos). *Убираем лишнее. ADD FILES FILE=* /DROP=pos nb1 TO nb25 cnt. **************. *А вот более эффективный способ. **************. DATA LIST FIXED /str1 1-25 (A). BEGIN DATA Bloggs J 10 Smith St Bloggs John 12 Smith St END DATA. LIST. LOOP #cnt=1 TO 25. END LOOP IF #cnt*(1-NMISS(NUMBER(SUBSTR(str1,#cnt),F1)))>0. STRING addr(A25). COMPUTE addr=SUBSTR(str1,#cnt). EXECUTE.