Página 1 de 1
Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 11:19
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?
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 11:25
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.
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 11:26
por JulioNSP
Esqueci de dizer meu compilador ainda é o Summer87.
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 12:30
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?
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 12:44
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.
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 12:53
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.
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 13:35
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.
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 14:43
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.
Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 24 Nov 2010 19:16
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.
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 25 Nov 2010 12:11
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+
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 25 Nov 2010 14:21
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,
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 25 Nov 2010 14:48
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
Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 25 Nov 2010 15:51
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 ?
Re: Salvar arquivo em disco e com nome com mais de 8 caracters
Enviado: 25 Nov 2010 16:30
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.