Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Lightbulb 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 ...
__________________
Saludos ... JLedian.
Responder Con Cita
  #2  
Antiguo 05-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 05-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 05-04-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
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...
Responder Con Cita
  #5  
Antiguo 05-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:17:07.


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
Copyright 1996-2007 Club Delphi