Hola...
Tu problema viene desde el uso del
WriteLn cuando estás escribiendo en el archivo de texto, ya que este procedimiento inserta un Salto de Linea/Retorno de Carro al final de cada línea, así que al final, siempre obtienes una línea en blanco...
Si ya estás usando el
TStringList, para guardarlo en un archivo de texto solo tienes que hacer:
Código Delphi
[-]
StrinList.SaveToFile('NombreDeArchivo.txt')
Saludos...