Hi.
I think its quite similar with a issue I had a time ago and I solved it using copying RESPECTING BLANKS using concatenate command.
It will copy your 18 character fields adjusted to right position and respect blanks in the left side, in TXT file, so respecting 30 characters positions to this field in the file.
e.g.:
If you are trying to concatenate various fields per line into TXT, use this example that worked to me:
LOOP it_table.
concatenate .....field1 field2 field3 ... fieldN into ls_file RESPECTING BLANCS.
append ls_file to IT_file.
ENDLOOP.
best regards.
Glauco