OPTIONS SOURCE SOURCE2; DATA _NULL_; LENGTH FILENAME $50. GIF GIFLC $4.; INFILE HTMLIN FILENAME=FILENAME; FILENAME=TRIM(FILENAME); /* REMOVE TRAILING BLANKS */ MEMPOS=INDEX(FILENAME,'('); /* FIND START OF MEMBER NAMES */ MEMPOS=MEMPOS+1; GIF=SUBSTR(FILENAME,MEMPOS,4); /* PULL OUT MEMBER NAME */ CALL SYMPUT('GIF',GIF); /* AND MAKE IT A VARIABLE */ GIFLC = LOWCASE(GIF); /* MAKE IT LOWER CASE */ CALL SYMPUT('GIFLC',GIFLC); /* AND A VARIABLE */ RUN; DATA _NULL_; LENGTH GIFPTR $23.; INFILE HTMLIN LENGTH=VBLEN COLUMN=COLUMN MISSOVER; FILE HTMLOUT; /* SCAN FOR GIF POINTER - INDICATED BY ".GIF(&GIF)'" */ /* IF NOT FOUND OUTPUT LINE AND RETURN */ INPUT @".GIF(&GIF)'" X $1. @; /* PUTS COL AFTER CHARACTER STRING */ IF MISSING(X) THEN DO; PUT _INFILE_; INPUT; RETURN; END; COLPTR = COLUMN - 7; /* BACK UP COLUMN PTR COLPTR-->CPUA)cpa.gif */ COLREST = COLUMN; /* COLREST --> REST OF RECORD */ RESTLEN = VBLEN-COLREST+1; /* RESTLEN = LENGTH REST OF RECORD */ INPUT @1 BEGIN $VARYING512. VBLEN @COLPTR GIFPTR $18. @COLREST REST $VARYING472. RESTLEN; GIFPTR = TRANWRD(GIFPTR,")'&GIFLC",'#'); /* STRIP OUT )'dskb */ GIFPTR = TRANWRD(GIFPTR,"&GIF#","&GIF"); /* STRIP OUT # */ GIFPTR = TRANWRD(GIFPTR,".gif""",")'"""); /* REPLACE .gif" with )'" */ QUOTE=INDEXC(GIFPTR,'"'); /* FIND ENDING QUOTE */ GIFPTR=SUBSTR(GIFPTR,1,QUOTE+1); /* STRIP AWAY AFTER QUOTE */ GIFPTR = TRIM(GIFPTR); /* REMOVE ANY TRAILING BLANKS */ BEGIN=SUBSTR(BEGIN,1,COLPTR-1); /* TRUNCATE BEGIN TO GIFPTR */ SPACEPOS=INDEX(REST,' '); REST=SUBSTR(REST,SPACEPOS); NEWLINE=TRIM(BEGIN)||TRIM(GIFPTR)||' '||TRIM(REST); PUT @1 NEWLINE; /* WRITE OUT EDITED RECORD */ RETURN; RUN;