Página 1 de 1

ARRAY para append e EDITar tabelas DBF

Enviado: 06 Fev 2019 13:15
por syslink
pessoal, tenho um arquivo DBF com 4 campos: COD, DESCRICAO, SIMNAO, VALOR, com 2 ou 3 registros.

Quero copiar todo o conteúdo de um array pra gravar no DBF. Mas, "arrays" sempre me deixam de cabeça quente.
Penso no seguinte código:

Código: Selecionar todos

      sele ARQUIVO
      go top
      for I = 1 to len aRows[]
            mCOD[I]             := aRows{I,1]
            mDESCRICAO[I]   := aRows{I,1,1]
            mSIMNAO[I]        := aRows{I,1,1,1]
            mVALOR[I]          := aRows{I,1,1,1,1]
      next I
	
    do while .t.
			if rlock()
				replace  COD         with mCOD[I]	,;
                     DESCRICAO   with mDESCRICAO[I]	   ,;
                     SIMNAO      mSIMNAO[I]	   ,;
                     VALOR       with mVALOR[I]
				unlock
				commit
				exit
			endif
    enddo
return
Mas, não estou conseguindo entender, pois, como disse, MATRIZes sempre me mordem, e, não sei manipular. Sou humilde em vir aqui pra tentar aprender.

obrigado!

ARRAY para append e EDITar tabelas DBF

Enviado: 06 Fev 2019 14:11
por JoséQuintas
Igual coloquei em outro post.... a gente é que complica.... rs

imagine o array como uma fila...
O array multidimensional, fila de filas....
qual é o primeiro da primeira fila, o 1 de 1, o [1,1]

fila de registros, com fila de campos..

fila 1, campo 1 [1,1]
fila 1, campo 2 [1,2]

Código: Selecionar todos

FOR nCont = 1 TO Len( aList )
   ? aList[ nCont, 1 ]
   ? aList[ nCont, 2 ]
   ? aList[ nCont, 3 ]
NEXT
Se preferir...

Código: Selecionar todos

#define CODIGO 1
#define DESCRICAO 2
#define SIMNAO 3
#define VALOR 4
FOR nCont = 1 TO Len( aList )
   ? aList[ nCont, CODIGO ]
   ? aList[ nCont, DESCRICAO ]
   ? aList[ nCont, SIMNAO ]
   ? aList[ nCont, VALOR ]
NEXT
se preferir trabalhar com um elemento de cada vez, pode facilitar

Código: Selecionar todos

#define CODIGO 1
#define DESCRICAO 2
#define SIMNAO 3
#define VALOR 4
FOR EACH aRegistro IN aList
   ? aRegistro[ CODIGO ]
   ? aRegistro[ DESCRICAO ]
   ? aRegistro[ SIMNAO ]
   ? aRegistro[ VALOR ]
NEXT