Função para gravar arquivos com nomes grandes

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Função para gravar arquivos com nomes grandes

Mensagem 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.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

O proprio COPY FILE do clipper
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

OU tmb. pode usar algo assim de dentro da pasta onde esta seu sistema.

aDir1 := curdrive()+":\"+rtrim(curdir()) + "\prg\sistema.exe"
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Mensagem 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?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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... :-)
Responder