You need to re-think that considerably. Why would ( 1 : 1 ) of anything be equal to ( 1 : 1 ) of anything else? If you delimit by SIZE, you'll get trailing blanks. You'd also need to set all those fields to space first, else you'll get values "left over" from the previous UNSTRING if there are more pipes on the previous than on the current.