Ver Mensaje Individual
  #17  
Antiguo 16-11-2011
pofi pofi is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 1
Reputación: 0
pofi Va por buen camino
Salvar dynamic Arrays en File

me he encontrado con el mismo problema, en mi caso al definir MyFile= file of String.
el problema viene siendo el mismo, los archivos (file) necesitan finalizacion.

se me ha ocurrido una solucion para guardar este tipo de datos siempre que los datos puedan ser interpretados como una cadena de caracteres (String o AnsiString) usando la propiedad de TStringList.SaveToFile y el formato de archivo '.csv' (datos separados por comas), se puede hacer algo asi:
Código SQL [-]
Procedure PassarArchivo(Arreglo: Array of Array of Integer; Alto, Ancho: Integer);
Var    
  i,j: integer;
  Fila: String; // o AnsiString si se necesita mas espacio, aunque todo tiene un limite;
  Tabla: TStringList;
Begin
   Tabla:=TStringList.Create;
   For i:=0 to Alto do
   begin
      Fila:= ''; // Vaciar Fila
      For j:=0 to Ancho do
         Fila:= Fila+IntToStr(Arreglo[i,j])+';'; // no olvidarse del ';' que separa los valores
     Tabla.add(Filla) // usando la funcion add, no hace falta definir la magnitud
   end;
   Tabla.SaveToFile('direccion\nombreArchivo.csv');
   Tabla.Destroy; //libera la memoria
end;

**El formato de archivo *.csv tiene la ventaja de poder-se abrir desde Excel.

Desgraciadamente esta solucion no sirve en mi caso porque los datos que quiero guardar son mas complejos, asi que sigan pensando en otra solucion. gracias
Responder Con Cita