Página 1 de 1
Função para gravar arquivos com nomes grandes
Enviado: 30 Out 2007 00:12
por clodoaldomonteiro
Olá!
No xHarbour tem alguma função para copiar ou ler arquivos com nome que tenha mais de 8 caracteres?
Para clipper tem a lib LNF que tem uma série de funções para tratamento de arquivos com nomes grandes.
Grato pela atenção.
Enviado: 30 Out 2007 09:38
por sygecom
O proprio COPY FILE do clipper
Enviado: 30 Out 2007 09:39
por rochinha
Amiguinho
Eu uso Fivewin e uso uma função para retornar o PATHname completo de um arquivo, para tal eu uso:
Código: Selecionar todos
...
cPathCompleto := LFN2SFN( "C:\Nome muito grande de pasta\arq.exe" )
...
Acho que ela faz parte do Harbour e provavelmente possua parte contraria SFN2LFN() que transforma nomes curtos em longos.
Enviado: 30 Out 2007 09:41
por sygecom
OU tmb. pode usar algo assim de dentro da pasta onde esta seu sistema.
aDir1 := curdrive()+":\"+rtrim(curdir()) + "\prg\sistema.exe"
Enviado: 30 Out 2007 09:42
por Eolo
Dá pra fazer direto...
Código: Selecionar todos
a='clientes.dbf' // arquivo 8.3 existente
b='arquivo de clientes.dbf' // LFN
copy file (a) to (b)
use (b) excl new
dbedit()
quit
Enviado: 30 Out 2007 14:43
por rochinha
Amiguinho
Pelo comando que voce passou não sei mas diretamente no DOS ou via comando RUN COPY voce deverá colocar o nome grande entre aspas:
RUN COPY clientes.dbf "arquivo de clientes".dbf
Faça os testes mas atenho a certeza de se funcionasse sempre não haveria o porque a biblioteca LFN.LIB fazer parte de nossa vidas.
Enviado: 30 Out 2007 22:34
por clodoaldomonteiro
Rochinha!
Então eu posso usar a mesma LNF.lib que uso no clipper?
O harbour vai assimilar ela normalmente?
Eolo!
Quer dizer que o comando COPY file TO do harbour usa os comando do DOS 32 bits quando compilamos?
Enviado: 31 Out 2007 01:21
por rochinha
Amiguinho
O que eu quiz dizer é que provavelmente a função LFN2SFN() seja do proprio Harbour, vale tentar, eu só não sei quais LIBs podem conte-la.
Enviado: 31 Out 2007 08:49
por Eolo
Clodoaldo,
Eu tb uso a LFN com o CLipper52 (que parece ser o único jeito de lidar com nomes acima de 8.3), mas não tinha nem tentado nada com o XHarbour.
Seu post me chamou a atenção e
eu compilei e rodei o teste acima, só com o XHarbour (sem nenhuma 'LFN.lib'). Funciona normal. Por que funciona, não sei responder...
