Ver Mensaje Individual
  #2  
Antiguo 11-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
deberias usar recursividad algo asi

Código Delphi [-]
procedure Parse_token(tok : string; destino : TStringList);
var
  nombre_archivo : string;
begin
    if Pos('INCLUDE',tok) <> 0 then 
    begin 
         nombre_archivo := .... // se extrae el nombre del archivo, puedes probar borrando la palabra 'INCLUDE=' de tok
         leer_archivo(nombre_archivo,destino);
    end
    else
    destino.Add(tok);
end;

function leer_archivo(s : string; destino : TStringList) : boolean;
var
     st : TStringList;
     i, r : longint;
     tok : string;
begin
    st := TStringList.Create;

    st.LoadFromFile(s);

   ... // comprobar que se ha cargado bien , etc...

    r := st.Count;
    for i := 0 to r - 1 do
    begin
      tok := st[i];
      parse_token(tok,destino);     
    end;
  
    st.Free;
end;

procedure Iniciar;
var
   dest : TStringList;
begin
  dest := TStringList.Create;
  
  if OpenDialog1.Execute then
  begin
     Leer_archivo(OpenDialog1.FileName,dest);
     if SaveDialog1.Execute then 
     dest.SaveToFile(SaveDialog1.Filename);
  end;

  dest.Free;
    
end;
Responder Con Cita