Página 1 de 1
Ajuda no Achoice()
Enviado: 18 Out 2004 13:07
por vagner_cip
OLá Amigos !
Preciso fazer um programa que mostre os arquivo *.txt de um diretório e permita ao usuário escolhe-lo para posterior exibicao na tela, tem como ?
Vagner - SP
Enviado: 19 Out 2004 00:33
por rrfsistemas
Vc pode usar a função Directory()
Ex
aDir = Directory("*.*","D")
AEVAL(aDir,{|aArq| Qout(aArq[F_Name])})
Enviado: 22 Out 2004 21:19
por Vander
Olá amigo clipeiro,
Entre em contato que eu envio uma rotina pronta para que vc possa testar.
ndsistemas@bol.com.br
Vander
Enviado: 25 Out 2004 19:33
por Vander
Vagner teste esta rotina:
#include "inkey.ch"
set date british
set deleted on
set intensity on
set scoreboard off
set century on
set epoch to 2000
set wrap on
setcursor(0)
cls
set scoreboard off
SET COLOR TO gr+/r
@ 00,00 CLEAR TO 02,79
@ 00,00 SAY padc("EXEMPLO DO USO DE ACHOICE PARA SELEۂO DE ARQUIVO",80)
@ 01,00SAY padc("ND Sistemas - (31) 9945 5722 / (31) 3852 0741",80)
set color to
@ 02,00 TO 22,79
@ 24,00 say padc("Setas - Move barra cursora ³ ENTER - Seleciona arquivo ³ ESC - Finalizar",80)
do while .T.
m:= "*.*" // Aqui o tipo de arquivo de deseja selecionar
m:= m+Space(13-Len(m))
if LastKey()==K_ESC
exit
endif
dir1:={}
tot:=0
diret1:=directory(m)
asort(diret1,,,{|_1,_2|_1[1] <_2[1]})
aeval(diret1,{|_1| (AAdd(dir1,_1[1]),tot+=_1[2])})
if Len(dir1)==0
// NOTA ==> Se no diret¢rio atual nÆo houver arquivos do tipo
// solicitado informar aqui
//
// alert("NÆo Localizado Arquivos de Texto.")
// exit
endif
tamanho=Len(dir1)
@ 23,60 say tamanho picture "9999 Arquivos ³ ESC - Cancelar"
keyboard Chr(24)+Chr(5)
if tamanho > 16
taman=16
else
taman=tamanho
endif
@ 04,02 to taman+5,15
@ 03,03 say "SELECIONE"
opc:=achoice(05,03,taman+4,14,Dir1,.T.,"mostrarq")
enddo
set color to
cls
return
*
function mostrarq
parameters modo,elem,posi
if modo=0
@ 23,01 say Space(57)+" ³"
@ 23,01 say diret1[elem][1]
@ 23,Col() say "³"
@ 23,Col() say diret1[elem][2] picture "@ER 999,999 bytes"
@ 23,Col() say "³"
@ 23,Col() say diret1[elem][3]
@ 23,Col() say "³"
@ 23,Col() say diret1[elem][4]
return 2
elseif modo=3
if LastKey()=K_ESC
return 0
elseif LastKey() = K_ENTER
arq_novo:=dir1[elem]
@ 04,40 SAY SPACE(38)
@ 04,40 SAY "Arquivo Selecionado...: "+ arq_novo
return 2
endif
else
return 2
endif
*
Vander Lúcio