Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Variables (https://www.clubdelphi.com/foros/showthread.php?t=20073)

!3d1@n 05-04-2005 15:44:57

Variables
 
Hola amigos del Foro:
Tengo varias variables del mismo tipo (mas de 10) las cuales tengo que inicializarlas en cero. Mi pregunta es que si habra alguna forma de inicializarlas todas a la vez. Sin tener que estar inicializandola una por una.

De antemano gracias ...

jachguate 05-04-2005 16:20:53

Supongo que si la declaración es contigua, las variables estarán contiguas en memoria, vamos algo asi como:
Código Delphi [-]
Var
  var1, var2, var3, var4, var5 : Integer;

quedaran en memoria asi:

Código:

  Memoria:
              [    ] [    ] [    ] [    ]
  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
              ^      ^      ^      ^
              Var1  Var2    Var3    Var4

si esto es cierto, cosa que no he probado, debiera funcionar la siguiente instrucción:

Código Delphi [-]
Var
  var1, var2, var3, var4, var5 : Integer;
Const
  NumeroVariables = 5;

Begin
  //Inicialización de las variables 
  ZeroMemory(@Var1, NumeroVariables * SizeOf(Integer));
  // otras operaciones
  ...
end;

Hasta luego.

;)

Lepe 05-04-2005 17:04:26

Al no decir el uso de las variables, solo puedo conjeturar, pero, ¿no te vale un array?

Código Delphi [-]
const var1 = 10;
const var2 = 11;
const var3 = 12;

var tabla:array[10..80] of integer;
     i:integer;
begin
   for i:= low(n) to High(n) do
       tabla[i] := 0;
end;

Si quieres guardar -1 en la variable 3, harías un Tabla[var3]:= -1

Realmente los valores los guardas en el array, pero te ayudas con las constantes, para saber a qué indice de la tabla tienes que ir.

Un saludo

maeyanes 05-04-2005 18:40:10

Tambien podría ser algo como:

Código Delphi [-]
type
  TVariables = (Var1, Var2, Var3, Var4);
  TAVariables = array [TVariables] of Integer;

var
  AVariables: TAVariables;

begin
  // Inicializar todas en 0
  for I := Low(TVariables) to High(TVariables) do
    AVariables[i] := 0;
  // Cambiar valor a cualquier variable
  AVariables[Var3] := 234
end;

Espero que cualquiera de las soluciones que te damos te sirvan...


Saludos...

roman 05-04-2005 19:02:57

O bien que use variables globales y no tiene que hacer más nada. Delphi las inicializa a 0.

Por cierto, en las soluciones de Lepe y Maeyanes pueden omitir el ciclo y usar igualmente ZeroMemory pues las variables queda contiguas.

La solución de jachguate es... simplemente genial. Sólo habría que confirmar en la documentación del compilador que en efecto quedan contiguas pero creo recordar que sí.

// Saludos


La franja horaria es GMT +2. Ahora son las 19:02:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi