Array y NIL

Array y NIL

Postby goosfancito » Thu May 04, 2006 12:46 pm

Estimados,

Code: Select all  Expand view
function main()
   LOCAL aVector:= {}
   LOCAL nFila:= 0
   LOCAL nColumna:= 0

   PUBLIC aMatriz:= {}

   FOR nFila:= 1 TO 10
      aVector:={}
      ASize( aVector, 4)
      AAdd( aMatriz, aVector )
   NEXT nFila

   for nFila:= 1 to 10

       for nColumna:= 1 to 4
          if aMatriz[ nFila ][ nColumna ] == NIL
             ? "es nil", nFila, nColumna                         // Renglon A
          else
             ? "Fila", nFila, ;
                "Columna", nColumna,;
                "valor",  aMatriz[ nFila ][ nColumna ]
          endif
   next nFila

return ( nil )

Bueno, aca va mi pregunta, porque el código de arriba, cuando nFila = 1 y nColumna = 1 el valor el NIL ( renglon A ) y en cambio todos los demas valores son diferentes a nil?

Gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby Raymundo Islas M. » Thu May 04, 2006 2:06 pm

Hola, que valor te devuelve ?

Oye, no veo el next de nColumna :shock:

De rapido hice esto, y todos me devuelven NIL :

LOCAL nQ, nW, aDmArrX := {}

FOR nQ := 1 TO 10
AaDd( aDmArrX, Array(4) )
NEXT
FOR nQ := 1 TO Len( aDmArrX )
FOR nW := 1 TO Len( aDmArrX[nQ] )
? IIF( aDmArrX[nQ,nW] == NIL, "es nil", "no es nil" )
NEXT
NEXT


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby goosfancito » Thu May 04, 2006 2:13 pm

Amigo,

Tenes razon con respecto al Next de columna.

Asi como pones el ejemplo si funciona, pero fijate que es diferente al mio, ya que uso un vector redimencionado, de ultima si me haces el favor, copia este codigo ( ahora le pongo el next que faltaba) y probalo.

Gracias.

Code: Select all  Expand view
function main()
   LOCAL aVector:= {}
   LOCAL nFila:= 0
   LOCAL nColumna:= 0

   PUBLIC aMatriz:= {}

   FOR nFila:= 1 TO 10
      aVector:={}
      ASize( aVector, 4)
      AAdd( aMatriz, aVector )
   NEXT nFila

   for nFila:= 1 to 10

       for nColumna:= 1 to 4
          if aMatriz[ nFila ][ nColumna ] == NIL
             ? "es nil", nFila, nColumna                         // Renglon A
          else
             ? "Fila", nFila, ;
                "Columna", nColumna,;
                "valor",  aMatriz[ nFila ][ nColumna ]
          endif
      nColumna
   next nFila

return ( nil )
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby Raymundo Islas M. » Thu May 04, 2006 7:36 pm

Probado !!!

Asi como lo enviaste, ya salen todos los elementos en NIL !!!!


Acerca de lo otro, es igual, puedes cambiar el numero de elementos de cada nivel, segun lo necesites, el detalle seria, si lo vas a definir desde el inicio o sobre la marcha.

Te comento, por que yo uso en muchos browses, la informacion desde arrays y en algunos casos desde las dbfs, aplicando arreglos de varios niveles.

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby goosfancito » Thu May 04, 2006 7:41 pm

ok, gracias pibe.

No me da a mi, voy a ver que pasa.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 154 guests