Mostrar os DBFs do diretorio corrente.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Paulao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 09 Jul 2004 11:03
Localização: Franca
Contato:

Mostrar os DBFs do diretorio corrente.

Mensagem por Paulao »

Boa tarde moçada, necessito de uma rotina para mostrar os DBFs do diretorio corrente para eu escolher um arquivo (Semelhante a um dbedit, qdo encontrar o arquivo que necessito tecle enter e seleciono o arquivo)

Grande abraço a todos
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

file0 = CHR(34) + Path + 'nome do arquivo' + CHR(34)
N_arq = ADIR(&file1)
DECLARE vedir[N_arq]
ADIR(&file0,vedir)
ASORT(ved)
*
DO WHILE .T.
@7,9 TO 21,31
SET WRAP ON
n_opcao = ACHOICE(08,10,20,30,vedir) && Lista os arquivos
IF n_opcao = 0 && para escolha.
LOOP
ENDIF
EXIT
ENDDO

Arqu = vedir[n_opcao]
-------------------------------------------------------------------------
OBS: em 'nome do arquivo' colocar o nome com sua extensão.
Também pode ser usada uma máscara válida para DOS.
-------------------------------------------------------------------------
Hasse.
kenew
Usuário Nível 2
Usuário Nível 2
Mensagens: 97
Registrado em: 08 Set 2004 15:08
Contato:

Mensagem por kenew »

Melhor usar DIRECTORY( <arquivos ou mascaras>, <tipo de arquivo> )

É mais eficiente, ela gera uma matriz com o nome, extensão, tamanho e data dos arquivos ou diretorios.

Exemplo para procurar arquivos .DBF.

arquivos := Directory( "*.DBF", "A" )
Paulao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 09 Jul 2004 11:03
Localização: Franca
Contato:

Mensagem por Paulao »

Valeu Kenew, era isso mesmo que eu precisava.
Ficou assim a rotina se alguem mais precisar:

setcolor("w+/b")
@00,00 clear to 24,79
file0 = CHR(34) +"*.dbf"+ CHR(34)
N_arq = ADIR(&file0)
DECLARE vedir[N_arq]
ADIR(&file0,vedir)
ASORT(vedir)
*
DO WHILE .T.
@7,9 TO 21,31
SET WRAP ON
n_opcao = ACHOICE(08,10,20,30,vedir) && Lista os arquivos
IF n_opcao = 0 && para escolha.
LOOP
ENDIF
EXIT
ENDDO

Arqu = vedir[n_opcao]
? Arqu
inkey(0)
Responder