Salvar arquivo em disco e com nome com mais de 8 caracters

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

JulioNSP
Usuário Nível 3
Usuário Nível 3
Mensagens: 244
Registrado em: 22 Dez 2009 09:25
Localização: São Paulo - SP

Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por JulioNSP »

Olá pessoal, tenho que imprimir um relatorio para arquivo (DOS) mas preciso que seu nome tenha mais de 8 caracteres. precebi que mesmo que eu tenha um nome maior ele trunca nos 8 caracteres e salva. Porém com 8 caracteres não consigo identificar o arquivo precisaria mesmo pelo menos uns 30, alguem pode me ajudar?
Editado pela última vez por Maligno em 24 Nov 2010 11:28, em um total de 1 vez.
Razão: O presente tópico foi movido da seção Ferramentas de Apoio, uma vez que seu conteúdo não tem relação com os objetivos daquela seção.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por alxsts »

Olá!

Se você está trabalhando com Clipper 16 bits, precisará usar uma lib extra para conseguir tratar os nomes longos.

Utilize o recurso de busca do fórum. Procure por LFN (Long File Names). Já existe material postado.
[]´s
Alexandre Santos (AlxSts)
JulioNSP
Usuário Nível 3
Usuário Nível 3
Mensagens: 244
Registrado em: 22 Dez 2009 09:25
Localização: São Paulo - SP

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por JulioNSP »

Esqueci de dizer meu compilador ainda é o Summer87.
JulioNSP
Usuário Nível 3
Usuário Nível 3
Mensagens: 244
Registrado em: 22 Dez 2009 09:25
Localização: São Paulo - SP

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por JulioNSP »

Segui um link que tinha a biblioteca LFN para baixar, depois de descompactar eu copiei a LFN.lib para a mina pasta de blibliotecas, mas na hora de compilar deu a mensagem de erro que a biblioteca TERMINAL.lib não tinha sido encontrada. Será que é por que ainda estou usando o Summer87?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por Maligno »

Com certeza. Para resolver o problema só vejo duas opções. Primeira: criar um nome de arquivo no formato 8x3 mesmo e renomear o arquivo através do comando "RUN". A segunda é mudar seu Clipper para a versão 5.2, onde essa biblioteca funciona.

Até existe uma terceira possibilidade. Aliás, uma hipótese com poucas chances de se concretizar. Seria você encontrar uma biblioteca equivalente para sua versão do Clipper. Para Summer nunca ouvi falar.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por alxsts »

Olá!

Se vai mudar o compilador, use Harbour ou xHarbour e elimine o problema de nomes longos pela raiz... E com as vantagens de uma aplicação 32 bits.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por Maligno »

Baseado nas dificuldades apontadas por alguns colegas que tentaram (ou ainda estão tentando) migrar pra [x]Harbour, achei mais sensato indicar o Clipper 5.2, já que essa transição é muito suave. Mas sim, o [x]Harbour é uma outra opção.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
JulioNSP
Usuário Nível 3
Usuário Nível 3
Mensagens: 244
Registrado em: 22 Dez 2009 09:25
Localização: São Paulo - SP

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por JulioNSP »

Eu tentei a opçao de gravar com um nome genérico e usar RUN ren. . . . mas não esta funcionando o comando RUN, ainda não entendi porque? Da erro em tempo de execução na linha do RUN mas não especifica qual é, estou achando que seja pouca memória para executa-lo de dentro da aplicação.
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á

Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por Pablo César »

tentei a opçao de gravar com um nome genérico e usar RUN ren. . . . mas não esta funcionando
De fato não funciona o REN do Sistema Operacional através do RUN. Essa opção pode descartar...

E a questão de achar um biblioteca que assemelhe-se ao LFN para Summer 87 também acho que não será possível...

Aliás só vejo um possibilidade com Summer 87. A dica seria:

1. Crie o arquivo com nomeclatura 8x3.
2. Logo após a finalização da criação desse arquivo, crie em seguida um arquivo .BAT como o exemplo abaixo:

Código: Selecionar todos

MEMOWRIT("RENOMEIA.BAT","REN COBRANCA.TXT "+CHR(34)+"Minha Cobrança.xls"+CHR(34))
Perceba que exite CHR(24) para gravar o caracter (aspas) pois se tratatndo de arquivo longo com espaço tem que estar entre aspas.
3. Lamentavelmente não dá para executar o arquivo BAT para renomear, dá erro de argumento. Isso porque está sendo executado através do RUN (e não adianta iltilizar o SWPRUNCMD, também não funciona). Então o jeito é executar logo após o encerramento do programa-Clipper. Eu utilizaria uma bat que chama o programa e executa o RENOMEIA.BAT, assim:

Código: Selecionar todos

@ECHO OFF
PROGRAMA.EXE
IF EXIST RENOMEIA.BAT CALL RENOMEIA.BAT
IF EXIST RENOMEIA.BAT DEL RENOMEIA.BAT
Desse jeito não tem como dar errado, ao menos para achar uma solução que funcione em Summer 87. Dê-nos um retorno para saber se deu certo ou se deu para implementar.
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.
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por ANDRIL »

Amigo, fiz um programa que converte o nome curto em nome longo usando xharbour. Nesse caso, basta passar os parametros na linha de comando e verificar o retorno. O aplicativo pode ser usado para renomear ou copiar um arquivo de nome curto para um arquivo de nome longo.

Exemplo:

Código: Selecionar todos

*--arquivo para obter o retorno da operacao atraves do seu aplicativo
cRet="retorno.txt"
*--seu arquivo com nome no padrao 8x3
cNomeCurto="meuarq.txt"
*--seu arquivo com o nome longo 
cNomeLongo="meu arquivo com muito mais letras no nome.txt"
*--R=Renomear  C=Copiar
cOperacao="R"
comando="ncTOnl.exe "+cOperacao+" "+cNomeCurto+" "+cNomeLongo+" "+cRet

RUN &comando
cRet=memoread(cRet)

if "ERRO"$cRet
     ? cRet
endif
Tentei anexar o arquivo aqui, mais como tem mais de 100kb (tem 296kb) não consegui. Se quiser receber por email, informe-o que te mando.

Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por Toledo »

Andril, você poderia enviar este arquivo para a seção Download do Fórum:

https://pctoledo.org/forum/filebase.php?c=0

Entre no link acima, clique no botão "Enviar Arquivo", depois informe um título para o Nome do Arquivo, informe um descrição sobre a utilização desta sua ferramenta e como utilizá-la, escolha uma categoria (neste caso seria Ferramentas), selecione o arquivo que será enviado (pode ser ZIP, EXE, RAR, etc) e ai é só clicar no botão "Enviar".

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por ANDRIL »

Toledo obrigado, depois que postei, vi que tinha a seção download agora no forum, fiquei um tempo ausente e não a tinha percebido.

Já enviei o arquivo.

Link do arquivo:
Renomeia nome de arquivo curto (8x3) para nome longo (windows)

Abraços
Editado pela última vez por Toledo em 25 Nov 2010 14:54, em um total de 1 vez.
Razão: Mensagem editada para colocar o link de download da ferramenta ncTOnl.exe.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
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á

Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por Pablo César »

Isso aí Andril e eu juro que pensei nisso, mas como tive preguiça de fazer, pois temia que não iria funcionar ja que com o comando REN do SO não funciona...
Só que na linha 9 do seu codigo exemplo está faltando as aspas antes e depois da variável cNomeLongo para que funcione, assim:

Código: Selecionar todos

comando="ncTOnl.exe "+cOperacao+" "+cNomeCurto+" "+chr(34)+cNomeLongo+chr(34)+" "+cRet
Também seria interessante disponibilizar o código fonte do seu aplicativo, a título de aprendizado, você não acha ?
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.
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Re: Salvar arquivo em disco e com nome com mais de 8 caracters

Mensagem por ANDRIL »

Pablo César escreveu:Só que na linha 9 do seu codigo exemplo está faltando as aspas antes e depois da variável cNomeLongo para que funcione, assim:
É verdade, me confundi um pouco to com um teclado aqui totalmente desconfigurado, rssss. Valeu pela obs.

Segue em anexo o codigo fonte, bem simples.

Abraços.
Anexos
NCTONL.PRG
(2.03 KiB) Baixado 365 vezes
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Responder