Ajuda no Achoice()

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

vagner_cip
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 05 Out 2004 14:07

Ajuda no Achoice()

Mensagem 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
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Vc pode usar a função Directory()

Ex

aDir = Directory("*.*","D")

AEVAL(aDir,{|aArq| Qout(aArq[F_Name])})
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Avatar do usuário
Vander
Usuário Nível 3
Usuário Nível 3
Mensagens: 214
Registrado em: 23 Jul 2004 01:43
Localização: João Monlevade - MG

Mensagem por Vander »

Olá amigo clipeiro,

Entre em contato que eu envio uma rotina pronta para que vc possa testar.



ndsistemas@bol.com.br

Vander
Avatar do usuário
Vander
Usuário Nível 3
Usuário Nível 3
Mensagens: 214
Registrado em: 23 Jul 2004 01:43
Localização: João Monlevade - MG

Mensagem 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
Responder