FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Favor ayuda con Array
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Favor ayuda con Array
Posted: Thu May 30, 2024 05: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 (fw): Select all Collapse
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
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Favor ayuda con Array
Posted: Thu May 30, 2024 06:26 PM
Saludos,

Hace años que dejé de trabajar con DBF, pero en aquellos tiempos lo hacía así:
Code (fw): Select all Collapse
********************************************************************************
**                   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.
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Favor ayuda con Array
Posted: Thu May 30, 2024 08: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 (fw): Select all Collapse
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 (fw): Select all Collapse
// 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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Favor ayuda con Array
Posted: Thu May 30, 2024 08:57 PM
Hace tiempo hice algo parecido:
Code (fw): Select all Collapse
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
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor ayuda con Array
Posted: Thu May 30, 2024 09: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
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: Favor ayuda con Array
Posted: Fri Jun 07, 2024 05: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

Continue the discussion