ESCOLHER ARQUIVO

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

ESCOLHER ARQUIVO

Mensagem por braz »

Ola Pessoal,

Estou precisando de uma rotina que abre uma janela na tela para escolher um arquivo.

Por exemplo, faço importação do extrato do banco para meu sistema, então preciso escolher o arquivo para importar.

Desde ja obrigado. :{ :{
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

ESCOLHER ARQUIVO

Mensagem por Pablo César »

Tudo vai depender da forma que fará se esses nomes de arquivos estão com nome LONGOS ou CURTOS. Os nomes curtos são composto até 8 digitos e com extensão até 3 caracteres. Exemplo: ARQUIVOS.TXT (8x3). E daí você irá utilizar o DIRECTORY ou ADIR para guardar os nomes em matriz e o ACHOICE para escolher os nomes numa janela de forma selecionavel. Mas como disse se tiver nomes longos e quiser selecionar através de nomes longos, você irá precisar uma biblioteca externa LFN e criar a matriz com nomes longos.

Tente compor o seu proprio código baseado nas dicas fornecidas e se não funcionar te poderemos ajudar melhor. Eu sou muito a favor da política de ensinar a pescar mas não entregar o peixe pronto, senão o colega não aprende. Teremos prazer de ajudá-lo mas precisa haver empenho da sua parte também.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

ESCOLHER ARQUIVO

Mensagem por braz »

Desculpa eu não mencionar, mas é pra nome curto mesmo, ate 8x3, como usar esses DIRETORY OU ADIR ?

Obrigado.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

ESCOLHER ARQUIVO

Mensagem por alxsts »

Olá!

Você encontrará isso pronto nos exemplos que vem junto ao Clipper 5. Se você tem a estrutura de pastas da instalação padrão, irá encontrar na pasta C:\Clipper5\Source\Sample o arquivo FileMan.Prg. É só dar uma estudada. Para compilar, depende do arquivo FileMan.ch, que está na pasta C:\Clipper5\Include.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

ESCOLHER ARQUIVO

Mensagem por Pablo César »

Isso aí ! E se os arquivo são do tipo 8 x 3 mais fácil fica. Eu te aconselho, utilizar um editor que permita acionar o NG (Norton Guide). É fundamental consultaras funções e comandos que o Clipper e outras bibliotecas oferecem. Veja este tópico: https://pctoledo.org/forum/viewto ... 070#p42070

Aliás, hoje contamos com uma super-poderosa ferramenta: Google para pesquisa.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

ESCOLHER ARQUIVO

Mensagem por braz »

Pablo eu consegui fazer isso:

Código: Selecionar todos

@09,09 clear to 21,36
   @09,09 to 21,36 double
   private fontes[adir('*.*')]
   adir('*.*',fontes)
   escolha=achoice(10,10,20,35,fontes)
Mas so aparece os arquivos do diretorio onde está o .exe.

Eu gostaria que aparecesse os diretorios tambem, pois vou buscar arquivos na rede tambem.
O que devo fazer ainda?

Grato
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

ESCOLHER ARQUIVO

Mensagem por Pablo César »

Você utilizando a máscara "*.*" irá trazer os nomes de todos os arquivos do diretorio corrente, é claro. Mas você pode fazer "*.prn" por exemplo, ou "NF*.TXT". Tabém você pode colocar o path (caminho) assim: "\NOME_DA_PASTA\
R????.*"

Mas fazer que liste a pasta com diretório, precisar passar o segundo parametro "D" que incluirá o nomes das subpastas. Mas tudo isso irá demandar muito trabalho. Tente concentrar os arquivos num só lugar.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

ESCOLHER ARQUIVO

Mensagem por alxsts »

Olá!

Utilize a FileMan() (File Manager) que sugeri.

Você pode navegar por toda a rede e selecionar um arquivo. Compile e teste. Desconsiderando a parte gráfica, é bem parecido em termos de funcionalidades, com o diálogo OpenFile do Windows.
[]´s
Alexandre Santos (AlxSts)
braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

ESCOLHER ARQUIVO

Mensagem por braz »

.......Tabém você pode colocar o path (caminho) assim: "\NOME_DA_PASTA\
R????.*"


Boa, isso ja me ajudou bastante, muito obrigado :|<
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

ESCOLHER ARQUIVO

Mensagem por alxsts »

Olá!

Faz muito tempo que não mexo mas, você vai navegando com a tecla TAB nas caixas de seleção. Dando um ENTER, ele abre as opções e você seleciona com ENTER. Parece o diálogo para abrir arquivo do velho EDIT do DOS. Abra o EDIT e veja.

O único inconveniente, que me lembro, é que foi desenvolvido há tempos em Clipper. Atualmente os HDs são monstruosos e se uma pasta tiver mais que 4096 arquivos ou o drive tiver mais de 4096 pastas, estoura a capacidade de arrays do Clipper.
[]´s
Alexandre Santos (AlxSts)
Responder