In Focus since 1993. WebFOCUS 7.7.03 Win 2003 |
DEFINE FILE CAR ADDRESS/A25='123 MAIN ST APT 12'; APTLOC/I2=POSIT(ADDRESS,25,'APT',3,'I2'); ADDR1/A25=SUBSTR(25,ADDRESS,1,APTLOC-1,APTLOC,'A25'); APTNO/A5=SUBSTR(25,ADDRESS,APTLOC+3,25,25-APTLOC-3,'A5'); END TABLE FILE CAR PRINT COUNTRY ADDRESS APTLOC ADDR1 APTNO IF RECORDLIMIT EQ 1 END
In Focus since 1993. WebFOCUS 7.7.03 Win 2003 |
DEFINE FILE CAR STREET_ADDR_1/A100 = IF COUNTRY EQ 'ENGLAND' THEN '123 MAIN ST UNIT 169' ELSE IF COUNTRY EQ 'ITALY' THEN '3478 VIA APPIA FL 10' ELSE IF COUNTRY EQ 'FRANCE' THEN '789 RUE ST. PAUL APT 1783' ELSE '392 HURON STREET'; NBR_LOC/I2 = IF STREET_ADDR_1 CONTAINS 'APT' THEN POSIT(STREET_ADDR_1, 100, 'APT' , 3, 'I2') ELSE IF STREET_ADDR_1 CONTAINS 'UNIT' THEN POSIT(STREET_ADDR_1, 100, 'UNIT', 4, 'I2') ELSE IF STREET_ADDR_1 CONTAINS 'FL' THEN POSIT(STREET_ADDR_1, 100, 'FL' , 2, 'I2') ELSE 0; STR_LEN/I2 = IF STREET_ADDR_1 CONTAINS 'APT' THEN 3 ELSE IF STREET_ADDR_1 CONTAINS 'UNIT' THEN 5 ELSE IF STREET_ADDR_1 CONTAINS 'FL' THEN 2 ELSE 0; APT_NBR/A6 = IF NBR_LOC GT 0 THEN SUBSTR(100, STREET_ADDR_1, NBR_LOC+STR_LEN, NBR_LOC+STR_LEN+6, 6, 'A6') ELSE ''; END TABLE FILE CAR PRINT STREET_ADDR_1 NBR_LOC APT_NBR COUNTRY END
APP FI ADDRESS DISK ADDRESS.MAS (LRECL 80 -RUN -WRITE ADDRESS -WRITE ADDRESS FILE=ADDRESS,SUFFIX=FOC -WRITE ADDRESS SEGNAME=SEG1 -WRITE ADDRESS FIELD=ADDRESS_DATA, ,A100 ,A100 , $ -RUN CREATE FILE ADDRESS MODIFY FILE ADDRESS FREEFORM ADDRESS_DATA DATA 123 MAIN ST APT 12,$ 345 HIGH ST FL 123,$ 678 EAST ST UNIT 19,$ 1924 FLAPTUNIT SECTION 21,$ END -RUN DEFINE FILE ADDRESS NEW_ADDR/A100 = IF ADDRESS CONTAINS ' APT ' THEN STRREP(100, ADDRESS, 5, ' APT ', 1, '~', 100, NEW_ADDR) ELSE IF ADDRESS CONTAINS ' FL ' THEN STRREP(100, ADDRESS, 4, ' FL ', 1, '~', 100, NEW_ADDR) ELSE IF ADDRESS CONTAINS ' UNIT' THEN STRREP(100, ADDRESS, 6, ' UNIT ', 1, '~', 100, NEW_ADDR) ELSE ADDRESS ; ADDR_PT1/A100 = GETTOK(NEW_ADDR, 100, 1, '~', 100, ADDR_PT1); ADDR_PT2/A100 = GETTOK(NEW_ADDR, 100, -1, '~', 100, ADDR_PT2); END TABLE FILE ADDRESS PRINT ADDR_PT1 ADDR_PT2 END
In FOCUS since 1986 | WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2 | ||
WebFOCUS App Studio 8.2.06 standalone on Windows 10 |
DEFINE FILE CAR ADDRESS/A25='123 MAIN ST APT 12'; -* find in the string the place where the substring starts APTLOC/I2=POSIT(ADDRESS,25,'APT',3,'I2'); -*select the substring that holds the first part. ADDR1/A25=SUBSTR(25,ADDRESS,1,APTLOC-1,APTLOC,'A25'); -*select the substring that holds the second part. APTNO/A5=SUBSTR(25,ADDRESS,APTLOC+3,25,25-APTLOC-3,'A5'); END TABLE FILE CAR PRINT COUNTRY ADDRESS APTLOC ADDR1 APTNO IF RECORDLIMIT EQ 1 END
Frank | |
prod: WF 7.6.10 platform Windows, databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7 test: WF 7.6.10 on the same platform and databases,IE7 |
In FOCUS since 1986 | WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2 | ||
WebFOCUS App Studio 8.2.06 standalone on Windows 10 |