FUNCTION bCAN_MAKE_WORD(zWord: STRING): BOOLEAN VAR sBlockCount: SHORT VAR sWordCount: SHORT VAR sWordLength: SHORT VAR zLetter: STRING VAR zBlock: STRING VAR zBlockList: STRING VAR zUsedBlocks: STRING VAR zWord: STRING // SET zWord = UPPER(zWord) SET zBlockList = "BO,XK,DQ,CP,NA,GT,RE,TG,QD,FS,JW,HU,VI,AN,OB,ER,FS,LY,PC,ZM" SET sWordLength = LENGTH(zWord) // DO sWordCount = 1 TO sWordLength DO sBlockCount = 1 TO OCCURS(zBlockList, ",") SET zLetter = SUBSTR(zWord, sWordCount, 1) SET zBlock = GET_TOKEN(zBlockList, ",", sBlockCount) IF INDEX(zBlock, zLetter, 1) > 0 AND INDEX(zUsedBlocks, zBlock + STR(sBlockCount), 1) = 0 SET zUsedBlocks = zUsedBlocks + zBlock + STR(sBlockCount) + "," BREAK ENDIF ENDDO ENDDO RETURN OCCURS(zUsedBlocks, ",") = sWordLength ENDFUNCTION