Página 1 de 1
Retornar nome do dbf corrente
Enviado: 06 Jul 2010 23:41
por tcharraw
Alguem sabe que comando do xHarbour eu uso para poder retornar o nome do arquivo dbf que está sendo utilizando ?
Re: Retornar nome do dbf corrente
Enviado: 06 Jul 2010 23:46
por sygecom
#include "DbInfo.ch"
DBInfo(DBI_FULLPATH)
Re: Retornar nome do dbf corrente
Enviado: 07 Jul 2010 09:44
por rochinha
Amiguinhos,
Desde quando usava Clipper eu usava a função DBF().
Caso queira saber quantos indices estão ativos para a área corrente use:
Código: Selecionar todos
FUNCTION NDXCOUNT()
LOCAL counter
FOR counter = 1 TO 15
IF EMPTY(INDEXKEY(counter))
EXIT
ENDIF
NEXT
RETURN (counter-1)
Caso queira uma lista de indices use:
Código: Selecionar todos
FUNCTION ordList()
LOCAL counter
PUBLIC nomes_ndx := {}
FOR counter = 1 TO 15
IF EMPTY(INDEXKEY(counter))
EXIT
ENDIF
AADD(nomes_ndx,ORDNAME(counter))
NEXT
RETURN nomes_ndx
Caso queira saber os nomes de todos DBFs abertos no momento use:
Código: Selecionar todos
FUNCTION dbfList()
LOCAL counter
PUBLIC nomes_dbf := {}
FOR counter = 1 TO 255
IF EMPTY(ALIAS(counter))
EXIT
ENDIF
AADD(nomes_dbf,ALIAS(counter))
NEXT
RETURN nomes_dbf
Re: Retornar nome do dbf corrente
Enviado: 07 Jul 2010 10:35
por sygecom
Olá Rochinha,
O nome do ALIAS nem sempre é o mesmo nome do DBF, eX.:
use AGENDA alias AGEN shared
DBF()// AGEN (acho errado, no meu ver deveria voltar o nome do DBF e volta o nome do ALIAS)
ALIAS() // AGEN
Retornar nome do dbf corrente
Enviado: 09 Fev 2012 17:41
por lugab
Pessoal, aproveito o tema deste tópico pra perguntar o seguinte:
Numa pasta eu tenho vários dbfs e não sei o nome de nenhum deles.
Como faço para listar na tela o nome de cada um desses arquivos, um a um ?
E sim, eu pesquisei no fórum, e o tópico q achei e q chegou mais perto do q necessito foi este, sobre ADIR e cia
Grato
Retornar nome do dbf corrente
Enviado: 09 Fev 2012 17:56
por kiko
usa a função Directory...
Código: Selecionar todos
#include "Directry.ch"
PROCEDURE Main
LOCAL aDir
aDir := Directory( "*.prg" )
AEval( aDir, {|a| QOut( a[F_NAME] ) } )
aDir := Directory( "C:", "V" )
AEval( aDir[1], {|x| QOut( x ) } )
RETURN
Retornar nome do dbf corrente
Enviado: 09 Fev 2012 18:11
por lugab
Kiko, não fui feliz em meu pedido de ajuda.
Na verdade eu tenho uma rotina para pegar todos os dbfs (não sei quantos e nem quais os seus nomes) , que é bem simples, veja:.
Eu só não sei como pegar cada dbf encontrado e dar um PACK , automaticamente e encerrar a rotina logo após o último dbf encontrado e packeado.
Vc, ou algum outro colega, saberia como fazer ?
Retornar nome do dbf corrente
Enviado: 09 Fev 2012 18:42
por joaoalpande
com xharbour faço assim , não sei se é igual no harbour
Código: Selecionar todos
Function Zapea()
LOCAL aDir, aFile, cFile, nI
aDir:={}; aFile:={}
aDir:=Directory("*.DBF")
AEval(aDir,{|f| AAdd(aFile,f[1])})
FOR nI=1 TO Len(aFile)
cFile:=aFile[nI]
IF !Protect(cFile)
USE (cFile) NEW
ZAP
PACK
USE
ENDIF
NEXT nI
RETURN (Nil)
Retornar nome do dbf corrente
Enviado: 09 Fev 2012 18:56
por lugab
Obrigado Kiko e João, graças a vcs o problema ta resolvido.
Espero poder retribuir-lhes um dia
Gabriel