codice:
Type RecordOutput
 Campo1    As String * 20
 Campo2    As String * 10
 Campo3    As String * 15
 ZdZa      As String * 2
End Type
Dim RO As RecordOutput
....

Sub ScriviOut
 Open NomeFileOutput For Random As #1 Len = Len(RO)
 RO.ZdZa = Chr(13) & Chr(10)
 ....
 For Indice = 1 To NumeroDiRecord
  ....
  RO.Campo1 = Space(Len(RO.Campo1))
  RO.Campo1 = ScriviCampo(RTrim(Cstr(CampoDB1)), Len(RO.Campo1))
  RO.Campo2 = Space(Len(RO.Campo2))
  RO.Campo2 = ScriviCampo(RTrim(Cstr(CampoDB2)), Len(RO.Campo2))
  RO.Campo3 = Space(Len(RO.Campo3))
  RO.Campo3 = ScriviCampo(RTrim(Cstr(CampoDB3)), Len(RO.Campo3))
  Put #1, , RO
 Next Indice
 ....
 Close #1
End Sub

Function ScriviCampo(CampoDaDB As String, MaxLen As Integer) As String
 If Len(CampoDaDB) > MaxLen Then
  ScriviCampo = Left(CampoDaDB, MaxLen)
 Else
  ScriviCampo = CampoDaDB
 End If
End Function
Se il campo è + corto rimangono gli spazi a destra, se è + lungo viene troncato