Ver Mensaje Individual
  #10  
Antiguo 08-06-2006
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Reputación: 21
rafita Va por buen camino
Hola Jonmendi,
No sé si me he perdido un poco con el tema, pero creo que lo estais complicando demasiado.

Lo que tu necesitas es un fichero de texto, no de un tipo concreto, de esa forma te pondrá los datos que necesitas uno tras otro, sin separadores de campo. Únicamente tendrá el caracter de fin de registro, lo cual no te dará ningún tipo de problema con la otra aplicación que debe leer ese fichero.

Con lo que sí tienes que tener cuidado es con completar el tamaño de los campos, ya que al no ir separados por nada tienen que tener su longitud exacta. Me explico con un ejemplo hecho de cabeza:
Código:
var MiNombre, MiApellido, MiTelefono, LoQueGrabo, Espacios : String;
     FDisco :  Text; 
begin
   // Inicializa la variable Espacios con 50 de caracteres en blanco
   Espacios:=StringOfChar(' ', 50);
   // en Pascal estándar sería algo así:
   // Espacios:='';
   // for i:=1 to 50 do Espacios:=Espacios+' ';
  
   // asignar el fichero de texto y crearlo nuevo
  AssignFile(FDisco,'TuFichero.txt'); // no olvides ponerle la ruta
  {$I-} Rewrite(FDisco); {$I+}       //  lo abro borrando todo lo que tiene
  if IOResult<>0 then                   // esto controlaba si había algún error
    begin 
       ShowMessage('No encuentro el fichero');
       Exit;
    end;
  // haz el bucle para ir encontrando los datos, y dentro de él grabas el fichero de texto
    // MiNombre:=......
    // MiApellido:=......
    // MiTelefono:=.....

   // completo la línea de texto a grabar uniendo los campos
   LoQueGrabo:=MiNombre+Copy(Espacios,1,15-Length(MiNombre))
                    +MiApellido+Copy(Espacios,1,30-Length(MiApellido))
                    +MiTelefono+Copy(Espacios,1,9-Length(MiTelefono));
  Writeln(FDisco,LoQueGrabo);
  // fin del bucle 

  // cierra el fichero generado
   CloseFile(FDisco);
Ahora mismo no recuerdo los sentencias exactas que se utilizan en pascal estándar para trabajar con ficheros de texto, pero me suena que son exactamente las mismas que estas utilizando para los ficheros con tipo, es decir: reset y rewrite para abrirlos, readln y writeln para leer o escribir una línea,... si necesitas información más exacta te busco un ejemplo hecho con Turbo Pascal.

Saludos
__________________
Rafita.
Responder Con Cita