tenaglia@mis.mcw.edu (Chris Tenaglia - 257-8765) (03/15/90)
Dear Icon Group : I am including a handy procedure that can reformat strings. It's fairly intuitive as far as usage is concerned. My implementaion is pretty plain. Perhaps someone has a more elegant expression that makes use of string scanning or co-expressions? Enjoy! ######################################################################## # # # THIS PROCEDURE IS A HANDY STRING REMAPPER/FORMATTER AND IT'S # # VERY HANDY FOR REPORT GENERATION. USAGE PATCH(VARIABLE,MASK) # # WHERE VARIABLE IS A STRING AND MASK IS A STRING. MASK CONTAINS # # A SEQUENCE THAT TRANSFORMS VARIABLE. THE # CHARACTER MEANS TO # # COPY THE CHARACTER AT THAT POSITION. THE $ CHARACTER MEANS TO # # DELETE THE CURRENT CHARACTER AT THAT POSITION. ANY OTHER BYTES # # GET INSERTED INTO THE VARIABLE AT THEIR RESPECTIVE POSITIONS. # # EXAMPLES : patch("12/03/89","##$##$##") returns 120389 # # patch("120389","##/##/19##") returns 12/03/1989 # # patch("12/03/1989","##$") returns 12 # # # ######################################################################## procedure patch(var,mask) text := "" i := 0 every mark := !mask do { case mark of { "#" : { text ||:= var[(i+:=1)] next } "$" : { i +:= 1 next } default : text ||:= mark } } return text end ############################################################# Chris Tenaglia (System Manager) Medical College of Wisconsin 8701 W. Watertown Plank Rd. Milwaukee, WI 53226 (414)257-8765 tenaglia@mis.mcw.edu