Ver Mensaje Individual
  #10  
Antiguo 12-06-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 27
__cadetill Va por buen camino
Varios comentarios a tu codigo

Cita:
Posteado originalmente por esquerda21
procedure TForm1.Button1Click(Sender: TObject);//Genera el array
var
i: integer;
begin
i:= 1;
repeat
SetLength(matriz1,i);
matriz1[i-1].x1:= i - 1;
matriz1[i-1].y1:= i + 1;
i:= i + 1;
until i = max;
end;
El SetLength solo hace falta hacerlo una vez, por lo que lo puedes quitar del repeat

Código:
procedure TForm1.Button1Click(Sender: TObject);//Genera el array
begin
  SetLength(matriz1,i);
  for i := 1 to max do
   begin
      matriz1[i-1].x1:= i - 1;
      matriz1[i-1].y1:= i + 1;
   end;
end;
Y, no crees que queda mas elegante el codigo (en este caso) con el uso de una sentencia repetitiva como FOR en lugar de REPEAT?

Cuando se utilizan contadores (como es el caso de tus REPEATS aqui), lo mas elegante y claro es utilizar bucles de tipo FOR (aparte de ahorrarnos algunas lineas de codigo )

Con respecto a la forma de grabar el fichero, puede que te interese abrirlo luego con un NotePad y ver su contenido (tal y como lo haces). Si no es el caso, graba la estructura directamente con el write

Código:
procedure TForm1.Button2Click(Sender: TObject);//Crea el archivo TXT
begin
   AssignFile(F, 'd:\delphi5\basura\pro.txt');
   Rewrite(F);
   for i := 1 to max do
     Write(F, matriz1[ i ]);
   CloseFile(F);
end;
y claro, declarando F no como un TextFile sino...

F: file of matriz;

como tienes en tu linea comentada

PD: como ya he dicho en otras ocasiones, no me gusta meterme donde no me llaman, pero, mientras escribes el mensaje, si te fijas, debajo del cuadro donde estas escribiendo (y por debajo de los botones de Submit Reply y Preview Reply, tienes TODO el hilo, con sus respuestas y autores de las mimas
Responder Con Cita