FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Solicitud - Array To DBF
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Solicitud - Array To DBF
Posted: Mon Nov 04, 2013 09:53 PM

Alguien que tenga una funcion que tome un array bidimencional y que cree una tablas dbf y ponga el contenido del array en la tabla.
para no inventar el agua helada.
(la estructura de la tabla la crea en base al contenido del array)

salu2
carlos vargas

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 408
Joined: Sun Aug 13, 2006 05:38 AM
Re: Solicitud - Array To DBF
Posted: Mon Jan 13, 2014 06:02 PM
El guardado de los registros sería lo mas fácil, donde aDbf es la matriz que quieres guardar en el dbf.

aEval( aDbf, { | aReg | dbAppend(), aEval( aReg, { | campo, pos | fieldPut( pos, campo ) } ) } )

El crear la tabla es mas complejo, se me ocurre algo como:

Code (fw): Select all Collapse
aEstruc := array( aDbf[ 1 ] )
nCont   := 0   // para no chocar entre harbour y xharbour
for each dato in aDbf[ 1 ]
   nCot++
   switch valType( dato )
      case "C"
         aEstruc[ nCont ] := { "_" + lTrim( str( nCont ), "C", len( dato ), 0 }
         exit
      case "N"
         if int( dato ) == dato
            aEstruc[ nCont ] := { "_" + lTrim( str( nCont ), "N", len( str( dato ) ), 0 }
         else
            aEstruc[ nCont ] := { "_" + lTrim( str( nCont ), "N", len( str( dato ) ), len( str( dato ) ) - len( str( int( dato ) ) ) - 1 }
         endIf
         exit
      case "L"
         aEstruc[ nCont ] := { "_" + lTrim( str( nCont ), "L", 1, 0 }
         exit
      case "D"
         aEstruc[ nCont ] := { "_" + lTrim( str( nCont ), "L", 8, 0 }
         exit
   end switch
next


Si tienes algun otro tipo de variable, es cosa de que lo incluyas dentro del switch
Saludos

Quique

Continue the discussion