Página 1 de 2

Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 13:20
por TerraSoftware
Caros colegas.
Existe no xHarbour funcoes para copiar, deletar e renomear arquivos usando corringas?

Por exemplo:

funcao_copiar( "c:\teste\*.dbf" , "c:\outro\novo\*.dbf" )
funcao_deletar( "c:\teste\*.dbf" )
funcao_renomear( "c:\teste\*.dbf" , "c:\teste\*.bak" )

Seria muito util para mim, se alguem puder me ajudar, agradeço.

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 15:12
por anacatacombs
Boa tarde.

Verifique os comandos:
COPY FILE ... TO ..
RENAME ... TO ...
e a função
DELETEFILE()

Espero ter ajudado

[]'s

Ana

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 15:34
por TerraSoftware
Cara colega.
Os comandos e funcoes citados nao suportao corringas.
Preciso de uma funcao que, por exemplo, delete todos cdx.
Hoje tenho que fazer o seguinte:

Código: Selecionar todos

del_arquivos:=directory("c:\teste\index\*.cdx")
for as=1 to len(del_arquivos)
     delete file (del_arquivos[as,1])
next as
É claro que este algoritmo resolve meu problema, mas... sabe como é né.... se ja tiveze uma funcao que fizesse isso seria muito mais facil.

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 15:40
por anacatacombs
Estranho, acabei de fazer um teste:

FILEDELETE("*.ANA") e deletou os arquivos...
(perdão não é detelefile.. é FILEDELETE : tô doida)

talvez pelo run também funcione

[]'S
Ana

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 15:48
por Maligno
FileDelete() realmente permite o uso de caracteres coringas. Você está certa. :)

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 15:56
por anacatacombs
Que bom, pensei que o compilador estava de sacanagem comigo
sempre acontece.
:)

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:09
por TerraSoftware
Ótimo!!

Agora falta copiar e renomear... tem ???
´o)

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:27
por anacatacombs
Tem sim, só vou procurar aqui qual é, e já te passo.

Falando nisso, eu vi num topico bem antigo que você tem a ImpBar para xHarbour

Teria como você me mandar?

[]'s

Ana

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:29
por Maligno
TerraSoftware escreveu:Agora falta copiar e renomear... tem ???
Copiar e renomear não. Para copiar você pode usar algo do tipo que você mesmo postou (AEval() me parece melhor). Para remonear vários arquivos a coisa precisa ser um pouco mais elaborada. Dá mais trabalho, mas o princípio é praticamente o mesmo.

OBS: Seja independente. Use o help do XHarbour. Tenho no meu site o guia de referência v1.1. Pode estar meio ultrapassado, mas a maior parte do material deve ser a mesma. Link: http://pub.buzinello.com/index.php?d=./ ... tutorials/

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:31
por anacatacombs
Tem certeza? Absoluta? mesmo mesmo?

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:31
por Maligno
Mesmo. Mesmo. :)
Pelo menos é o que diz o guia de referência que citei.

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:35
por anacatacombs
Então é então, Se você diz, não vou nem procurar :)

com comando RUN não funcionaria também? talvez fosse o caso de criar uma função de apoio utilizando esse comando.

[]'s
Ana

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:37
por Maligno
Veja que a função de cópia até poderia ter. Afinal de contas, cópia é cópia. É uma coisa simples, que poderia existir. Mas no manual não consta. A função CopyFile() é para um arquivo por vez.
Agora a função para renomear vários arquivos é até compreensível que não exista mesmo. Essa função pode ser até bem complexa e ter parâmetros que podem variar muito. Dá pra entender porque não a fizeram.

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:41
por anacatacombs
É, pensando dessa forma realmente faz sentido, não parei para analisar essa situação..

Então só resta tentar fazer uma função alternativa .... não é?

=)

Re: Copy/Del/Ren c/ corringa

Enviado: 21 Nov 2008 16:42
por Maligno
anacatacombs escreveu:com comando RUN não funcionaria também?
Sim, funcionaria. Mas num programa 32 bits, com os recursos que tem, com a API do Windows à disposição, comandos como RUN é o que você mais precisa evitar. Isso é coisa do Clipper. Se puder evitar a herança do Clipper, evite. Programando em XHarbour, esqueça que o Clipper um dia existiu. :)

No caso do colega, com um pequeno esforço, dá pra fazer uma função desse tipo. E é o que normalmente se faz em casos assim. Uma função básica aprimorada por uma outra função, que disponibiliza mais recursos, sejam eles genéricos ou para atender uma necessidade específica. É o que se chama de wrapper (é mais ligada ao conceito de classes, mas também se aplica nesse caso). Isso é extremamente comum em programação Windows.