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 14-02-2009
jconnor82 jconnor82 is offline
Miembro
 
Registrado: feb 2008
Posts: 22
Poder: 0
jconnor82 Va por buen camino
Cambiar indice inicial de un Array Dinamico

Hola a todos, tengo una consulta:

He creado un arreglo dinamico:

Código Delphi [-]
     type
     
       MatrixArray = array of array of extended;
     
     ...
     
     var
       Matrix: MatrixArray;
     ...
       // Fijo las dimensiones del arreglo
       SetLength(Matrix, 4, 4);
       // Ingreso valores
       for i:=0 to 3 do
          for j:=0 to 3 do
           Matrix[i, j] := i + j;
   ...

Mi consulta: para acceder al primer elemento del arreglo tengo q hacerlo desde el indice 0, hay alguna forma de cambiar el indice con el q se inicia, por ejemplo uno, esto lo quiero de esa forma, porque, como se habran dado cuenta el arreglo es una matriz y el primer elemento tiene que ser Matriz[1, 1].

O almenos tener un arreglo dinamico de una fila que se pueda acceder de la siguiente forma:

Código Delphi [-]
     var
       Fila: array of Extended;
     ...
       SetLength(Fila, 3);
       
       {Rutina q cambia el indice inicial de 0 a 1}
     
       // Para acceder a la fila se haria de la siguiente forma
       for i:=1 to 3 do
         showmessage(Fila[i]);
     ...

Otra razon por la que tiene que estar de esa forma es porque es parte de un objeto q estoy creando y da como resultado lo q contiene una fila o columna, y esta tiene q empezar desde la fila 1.

Gracias por las respuestas.

PD: No se si es idea mia, pero, esto ya lo habia visto por el foro, lo he buscado, pero, no he encontrado alguna referencia. Ojala y aparezca en Temas Similares
Responder Con Cita
  #2  
Antiguo 14-02-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
No encuentro que esto sea muy necesario de hacer, porque basta restar 1 o sumar 1 cuando convenga. Pero si de todas formas quieres hacerlo como dices, te doy una forma de aproximarte:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Type
  TA = Array [1..1000000] Of Extended;
Var
  Fila :Array of Extended;
  FilaX :^TA Absolute Fila;
  I :Integer;
Begin
  SetLength (Fila, 3);
  Fila [0] := 17;
  Fila [1] := 10;
  Fila [2] := 1974;

  For I := 1 To 3 {Length (Fila)} Do
    Showmessage (FloatToStr (FilaX [i]));
end;

En el ejemplo, he declarado la variable FilaX para que ocupe la misma posición de memoria (Absolute) que la variable Fila. Esto funciona gracias a que un arreglo dinámico es en realidad un puntero al primer valor que contiene. Y como a FilaX le hemos dado declaración de puntero (^), ambas variables apuntarán a la misma región de memoria, pero el compilador tomará las referencias a FilaX con el índice base 1 (ya que así está declarado el tipo auxiliar TA).

Saludos.

Al González.
Responder Con Cita
  #3  
Antiguo 14-02-2009
jconnor82 jconnor82 is offline
Miembro
 
Registrado: feb 2008
Posts: 22
Poder: 0
jconnor82 Va por buen camino
Hola... tienes razon, al parecer para que se vea mejor y practico tendre q volver privada la propiedad que obtiene una columna o fila, ya q esto lo puedo trabajar de forma oculta... gracias por tu respuesta.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Array Dinamico Gizhe JAVA 4 04-07-2008 20:39:46
ficheros con array dinamico angelp4492 Varios 6 11-02-2008 08:48:48
Array Dinamico VRO Varios 6 14-06-2005 12:40:16
Inicializar array dinamico senpiterno Varios 2 08-09-2004 03:17:34
Array Dinamico senpiterno Varios 4 22-07-2004 18:37:06


La franja horaria es GMT +2. Ahora son las 16:36:01.


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