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; ContLinea: Integer; 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.