Hola todos, quisiera por favor el mejor algoritmo Delphi para leer un archivo de texto que a su vez (mediante un INCLUDE) pueda llamar a otros...
Gráficamente esto podría ser algo como:
Archivo1.txt
line1
line2
INCLUDE "Archivo2.txt"
line6
INCLUDE "Archivo4.txt"
line9
<EOF>
Archivo2.txt
line3
line4
INCLUDE "Archivo3.txt"
<EOF>
Archivo3.txt
line5
<EOF>
Archivo4.txt
line7
line8
<EOF>
Donde <EOF> es el fin de cada archivo. Finalmente el propósito de leer todos los archivos es para conseguir un nuevo archivo final de la forma:
ArchivoFinal.txt
line1
line2
....
line9
Obviamente cada line contiene texto variable.
----------------------------------------
Mi idea es la siguiente:
Código Delphi
[-]var
file1 : TextFile;
nIncludeLevel: Integer = 0;
filename: array[0..6] of string;
implementation
procedure TFormMain.FileOpen1Accept(Sender: TObject);
var
s0: String;
n: Integer;
begin
filename[nIncludeLevel] := FileOpen1.Dialog.FileName;
AssignFile(file1, filename[nIncludeLevel]);
Reset(file1);
n := 0;
while (not Eof(file1)) do begin
Readln(file1,s0);
if 'INCLUDE'=GetFirstWord then begin
s0 := ExtractFilePath(filename[nIncludeLevel]) + AnsiDequotedStr(s0,'"');
Inc(nIncludeLevel);
filename[nIncludeLevel] := s0;
AssignFile(file1, filename[nIncludeLevel]);
Reset(file1);
end
else ;
if (Eof(file1)) and (nIncludeLevel<>0) then begin
CloseFile(file1);
Dec(nIncludeLevel);
end;
Inc(n);
end;
CloseFile(file1);
Reset(file1);
end;
Gracias por sus respuestas.
- Gaak -