Bueno segun entendi, tu archivo se escribe como un archivo de acceso directo es decir tiene reservados x numero de bytes para cada elemento en una linea. Si es asi puedes hacer algo como esto.
Código PHP:
<?php
$lineas = file( $archivo );
function separar( $elem )
{
$arr = array( 'uno' => substr( $elem, 0, 10 ),
'dos' => substr( $elem,11,10 ),
'tres' => substr( $elem, 22,10 ) );
return implode(",",$arr);
}
$nlineas = array_map( "separar", $lineas );
?>
Lo que hace es leer y guardar cada linea del archivo en un arreglo usando file ese arreglo lo reacomodamos usando array_map y una funcion definida por mi que separa cada elemento del arreglo en los tamaños que requier que este caso es de 10 bytes y los almacena en otro arreglo, al final hace un implode del arreglo separando por comas. y el resultado es un nuevo arreglo que ya esta separado como tu querias ya lo demas es volver a escribir el archivo.
Espero que sea eso lo que necesitabas.