Ver Mensaje Individual
  #6  
Antiguo 14-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.
Cita:
Partiendo de fichero "LISTADO_FICHERO.txt" obtener y nombrar tantos ficheros como cabeceras tenga en contenido (ver ejemplo adjunto) así como la estructura que tiene dichos ficheros. Después ya tendría que realizar otras operaciones pero eso creo que si sabría como hacerlo, pero para ello necesito solventar este primer paso
Creo que te quedaste corto con las explicaciones...

Pero a ver... Si no te entiendo mál, queres que haya un contador parcial para las líneas de cada archivo generado y uno general para el total de ellas ('xxxxxxxxxx').

Si es así, es muy sencillo modificar el código anterior para que lo haga:
Código Delphi [-]
procedure GenerarArchivos(const Ruta: string; const Nombre: string);
var
  Origen, Destino: TextFile;
  Linea: string;
  ContGral: Int64;      // Contador general de líneas
  ContLinea: Integer; // Contador parcial de líneas
begin
  Assign(Origen,Ruta+Nombre);
  Reset(Origen);
  ContGral:= 1;
  while not Eof(Origen) do
  begin
    Readln(Origen, Linea);
    if Pos('.afp',Linea) <> 0 then
    begin
      ContLinea:= 1;
      Assign(Destino,Ruta+Copy(ExtractFileName(Linea),1,Length(Linea)-3)+'TXT');
      Rewrite(Destino);
      Writeln(Destino,'CODE_LIST JAZZTEL.PAGO11M1'+Linea);
      Writeln(Destino,'#CMD app load_job_conf_file 50');
      Writeln(Destino,'------------------------------------');
      Readln(Origen, Linea);
      while (Pos('.afp',Linea)=0)and(Pos('-',Linea)=0) do
      begin
        Writeln(Destino,Format('%s %d %d %d %s',['MP', ContLinea, ContLinea, ContGral, Linea]));
        Readln(Origen, Linea);
        Inc(ContLinea);
        Inc(ContGral);
      end;
      Writeln(Destino,'-------------------------------------');
      CloseFile(Destino);
    end;
  end;
  CloseFile(Origen);
end;
Los archivos generados, basados en el archivo que enviaste, (sin ajustar la tabulación) quedarían así:
Código:
CODE_LIST JAZZTEL.PAGO11M1PSEP11M01_3C1DS1.PP001.a00.afp
#CMD app load_job_conf_file 50
------------------------------------
MP 1 1 1 193759412
MP 2 2 2 193812934
MP 3 3 3 193838063
MP 4 4 4 193865745
-------------------------------------

CODE_LIST JAZZTEL.PAGO11M1PSEP11M01_3C1DS1.PP001.a01.afp
#CMD app load_job_conf_file 50
------------------------------------
MP 1 1 5 194480436
MP 2 2 6 194482282
MP 3 3 7 194485890
MP 4 4 8 194486962
-------------------------------------

CODE_LIST JAZZTEL.PAGO11M1PSEP11M01_3C1DS1.PP001.a02.afp
#CMD app load_job_conf_file 50
------------------------------------
MP 1 1 9 194515253
MP 2 2 10 194515448
MP 3 3 11 194521818
MP 4 4 12 194522927
MP 5 5 13 194524611
-------------------------------------
De todas maneras no me queda muy en claro que papel juegan los dos números posteriores a 'MP'...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 14-09-2011 a las 18:26:23.
Responder Con Cita