Favor ayuda con Array

Favor ayuda con Array

Postby remtec » Thu May 30, 2024 5:55 pm

Estimados Amigos.

Hace un tiempo no ingresaba por aca.

Tengo la necesidad de pedir su ayuda.

Debo crear una Structura de una DBF, desde un Array(), y no he podido dar con la solucion.

Quedo atento a sus comentarios.

Como siempre, muy agradecido por su noble ayuda.

Code: Select all  Expand view

Local  aTSecre:= {}

     Sele b
     Go top
     i=1
     Do While  !Eof()
            nSec:= aScan(aTSecre,   { | array | array[1] == b->Cod_Dig} )
            If nSec=0
                 i:=i+1
             AADD( aTSecre,{ b->Cod_Dig})    // Aqui cargo en Array con una dato como "JAME","TAMA"
            Endif
        b->(DbSkip())
     Enddo

     // Aqui debo crear la Estructura de la DBF
        If !file("EstaHora.DBF")
            aStru :={{"Med_Tra" , "C",4,0 },;  // Campo fijo
                                // Aqui debo agregar campos de acuerdo a la cantidad que contiene en Array, Nombres Tales como "JANE","TAMA"
                                For i=1 to len(aTSecre)
                                    cam:=aTSecre[nSec][1]
                     {"&cam" , "N",10,0 },;
                                Next i
                     {"Ter_Arc" , "c",01,0 }}     // Hora_Dig
            Dbcreate("EstaHora.dbf",aStru)
        Endif
 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Favor ayuda con Array

Postby JoseAlvarez » Thu May 30, 2024 6:26 pm

Saludos,

Hace años que dejé de trabajar con DBF, pero en aquellos tiempos lo hacía así:

Code: Select all  Expand view
********************************************************************************
**                   Crear TECNICOS.DBF  Logicamente                            **
********************************************************************************

cFile         :=".\Datos\Tecnicos.DBF"
aFileStructure:={{'nombre'    ,'c',25,0},;
                 {'cedula'    ,'c',10,0},;
                 {'telefonos' ,'c',30,0},;
                 {'direccio1' ,'c',40,0},;
                 {'direccio2' ,'c',40,0},;
                 {'email'     ,'c',40,0},;
                 {'notas'     ,'m',10,0}}

if !File( cFile )
  dbcreate( cFile, aFileStructure )
endif
 


Espero te ayude.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 758
Joined: Sun Nov 09, 2014 5:01 pm

Re: Favor ayuda con Array

Postby FranciscoA » Thu May 30, 2024 8:52 pm

remtec wrote:Estimados Amigos.

Hace un tiempo no ingresaba por aca.

Tengo la necesidad de pedir su ayuda.

Debo crear una Structura de una DBF, desde un Array(), y no he podido dar con la solucion.

Quedo atento a sus comentarios.

Como siempre, muy agradecido por su noble ayuda.

Code: Select all  Expand view

Local  aTSecre:= {}

     Sele b
     Go top
     i=1
     Do While  !Eof()
            nSec:= aScan(aTSecre,   { | array | array[1] == b->Cod_Dig} )
            If nSec=0
                 i:=i+1
             AADD( aTSecre,{ b->Cod_Dig})    // Aqui cargo en Array con una dato como "JAME","TAMA"
            Endif
        b->(DbSkip())
     Enddo

     // Aqui debo crear la Estructura de la DBF
        If !file("EstaHora.DBF")
            aStru :={{"Med_Tra" , "C",4,0 },;  // Campo fijo
                                // Aqui debo agregar campos de acuerdo a la cantidad que contiene en Array, Nombres Tales como "JANE","TAMA"
                                For i=1 to len(aTSecre)
                                    cam:=aTSecre[nSec][1]
                     {"&cam" , "N",10,0 },;
                                Next i
                     {"Ter_Arc" , "c",01,0 }}     // Hora_Dig
            Dbcreate("EstaHora.dbf",aStru)
        Endif
 



Hola remtec, intentalo asi:

Code: Select all  Expand view
// Aqui debo crear la Estructura de la DBF
   If !file("EstaHora.DBF")
      aStru :={{"Med_Tra" , "C",4,0 }}  // Campo fijo

      // Aqui debo agregar campos de acuerdo a la cantidad que contiene en Array, Nombres Tales como "JANE","TAMA"
      For i=1 to len(aTSecre)
          cam:=aTSecre[nSec][1]
          aadd( aStru, {cam , "N",10,0} )   <<-------
      Next i

      aadd( aStru, {"Ter_Arc" ,"C",01,0} )   // Hora_Dig

      Dbcreate("EstaHora.dbf",aStru)
   Endif
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2128
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Favor ayuda con Array

Postby FranciscoA » Thu May 30, 2024 8:57 pm

Hace tiempo hice algo parecido:
Code: Select all  Expand view
DBSELECTAREA("CTASXCOB")
INDEX ON substr(FIELD->CONCEPTO,1,22) TO CXC UNIQUE TEMPORARY
DBGOTOP()
n:=0
While !eof() //para tit cols de report
   aadd(aTitCols, substr(field->concepto,1,22))

  //CREANDO STRUCT DE DBF TEMPORAL CONFORME LOS CAMPOS NECESARIOS SEGUN ATITCOLS
   n+=1
   cCampo := "CAMPO" + Alltrim(Str(n))
   aadd( aStruct, {cCampo, "N", 10,2 } )
  //FIN CREANDO STRUCT DE DBF TEMPORAL CONFORME LOS CAMPOS NECESARIOS SEGUN ATITCOLS

   dbskip()
Enddo
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2128
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Favor ayuda con Array

Postby remtec » Thu May 30, 2024 9:57 pm

Hola Amigos, Jose y Francisco.

Tanto tiempo, como se encuentran?

Muchas gracias por sus ayuda, toda la vida dispuestos a ayudar.

Los revisare y adaptare.

Muy agradecido.

Muchos Saludos.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Favor ayuda con Array

Postby LuisPonce » Fri Jun 07, 2024 5:42 am

Hola

Lo hago de esa forma y me funciona ok

cFileLst:=cRuta+"TBLSTPRE.DBF"

AADD(aStrLst,{"PRECIO","N",12,IMPDPV})

FOR C=1 TO nCanLis
cCampo:="PRECIO"+STRZERO(C,2)
AADD(aStrLst,{cCampo,"N",12,2})
NEXT

DbCreate(cFileLst,aStrLst)
Luis Ponce
User avatar
LuisPonce
 
Posts: 193
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Antonio Linares and 60 guests