You mentioned variable length... Do you mean you will only be copying certain fields per record, or just that you want allt() of the fields... If you want allt() of the fields with a single blank space between them, try
set heading off
list off noconsole to mytext.txt fields;
allt( fld1 ) + " "+ allt( fld2 )+" "+ allt( fld3 )+" ", ... ... ..
This should do what you are looking for...