Al parecer Tecnic2 se resiste a poner el código, así que me aventuraré a contestar:
El problema no es de del tipo string, acabo de escribir tu cadena en un edit, pasarlo a una variable string y despues mostrarlo por pantalla y todo va bien.
Lo unico que intuyo, es que al enviar la cadena por el puerto, el último caracter lo tome como caracter nulo y sea interpretado, en lugar de tormarlo literalmente, y por tanto, la secuencia de apertura no es la correcta. ¿Divagaciones mias?
![Confused](http://www.clubdelphi.com/foros/images/smilies/confused.gif)
Intenta: WriteLn(F, cajon+#0) a ver que pasa
Otra cosa es que la cadena
deba ser interpretada antes de enviarla. Sin usar la variable, estas escribiendo codigos de control no??
Saludos