So I'm going the DCL table route. I know open and object dcl could probably handle it better but I've never used them and don't want to get into them right now.
I can't figure out how to truncate a string when it gets too long for its "column". The main reason is, I can't figure out how to measure character widths. Surely it's possible.
See below for Lee Mac's way of doing it. I've looked at his code and can't follow where he handles this.