>Create cursor crsSTRUCTS ; > (FIELD_NAME C(128) nocptrans, ; > FIELD_TYPE C(1), ; > FIELD_LEN N(3, 0), ; > FIELD_DEC N(3, 0), ; > FIELD_NULL L, ; > FIELD_NOCP L, ; > _TABLENAME M nocptrans) >Create cursor crsINDEXES ; > (TAG_NAME C(10) nocptrans, ; > KEY_EXPR M, ; > NDXTYPE C(1), ; > IS_DESC L, ; > FILTEREXPR M nocptrans, ; > _TABLENAME M nocptrans) >Select 0 >lnTables = adir(arrTables,tcDataDir+'*.dbf') >For ix=1 to lnTables > Use (tcDataDir+arrTables[ix,1]) > if empty(cursorgetprop('Database')) > lnFields=afields(arrStruc) > For jx=1 to lnFields > arrStruc[jx,7]=arrTables[ix,1] > Endfor > Insert into crsSTRUCTS from array arrStruc > Release arrStruc > If tagcount()>0 > Dimension arrIndexes[tagcount(),6] > For jx=1 to tagcount() > arrIndexes[jx,1] = tag(jx) > arrIndexes[jx,2] = key(jx) > arrIndexes[jx,3] = iif(Primary(jx),'P',iif(Candidate(jx),'C',iif(unique(jx),'U','R'))) > arrIndexes[jx,4] = descending(jx) > arrIndexes[jx,5] = sys(2021,jx) > arrIndexes[jx,6] = arrTables[ix,1] > Endfor > Insert into crsINDEXES from array arrIndexes > Endif > endif > Use >Endfor >Select crsSTRUCTS >Copy to (tcDicDir+'NewStruc') >Select crsINDEXES >Copy to (tcDicDir+'NewIndexes') >>