Ver Mensaje Individual
  #6  
Antiguo 15-02-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Y para dar mas alternativas. Probemos con TStringList:

Partiendo el archivo por numero de lineas:
Código Delphi [-]
var
  Origen, Destino: TStringList;
  i: integer;
begin
  Origen:= TStringList.Create;
  try
    Destino:= TStringList.Create;
    try
      Origen.LoadFromFile('C:\Origen.txt');
      for i:= 0 to Origen.Count div 2 do
        Destino.Add(Origen[i]);
      Destino.SaveToFile('C:\Trozo1.txt');
      Destino.Clear;
      for i:= (Origen.Count div 2) + 1 to Origen.Count - 1 do
        Destino.Add(Origen[i]);
      Destino.SaveToFile('C:\Trozo2.txt');
    finally
      Destino.Free;
    end;
  finally
    Origen.Free;
  end;
end;

y por tamaño en bytes:
Código Delphi [-]
var
  Origen, Destino: TStringList;
  i, Size: integer;
begin
  Origen:= TStringList.Create;
  try
    Destino:= TStringList.Create;
    try
      Origen.LoadFromFile('C:\Origen.txt');
      Size:= Length(Origen.Text) div 2;
      i:= 0;
      while (i < Origen.Count) and (Size > 0) do
      begin
        Destino.Add(Origen[i]);
        dec(Size,Length(Origen[i])+2);
        inc(i);
      end;
      Destino.SaveToFile('C:\Trozo1.txt');
      Destino.Clear;
      while i < Origen.Count do
      begin
        Destino.Add(Origen[i]);
        inc(i);
      end;
      Destino.SaveToFile('C:\Trozo2.txt');
    finally
      Destino.Free;
    end;
  finally
    Origen.Free;
  end;
end;

Las ventaja de usar TStringList es que el se encarga de corregir los posibles problemas con los retornos de carro. La desventaja es el intenso trabajo sobre la memoria.
Responder Con Cita