sig_gilberto Posted December 21, 2007 Report Share Posted December 21, 2007 Amiguinhos....desculpem-me por minha humilde e chata insistência...mais alguêm pode executar esta pequena e modesta rotina ai e verificar se o FERROR este retornando o numero 5 que é acesso negado. Já executei em varias máquinas e pastas diferentes....e verificar se eu realmente estou ficando LOKO ?? #Include "FiveWin.Ch" Static WJan Function Janela Public WPasta := UPPER(CurDrive()+":\"+GetCurDir()) Public b_saida:="TESTES.TXT" Define Window WJan Title "Gerado de Texto" Activate Window WJan Maximized On Init Processa() Return Nil ******************************************************************************** Function Processa() b_saida:=alltrim(b_saida) If File(wpasta+"\"+b_saida)=.t. MsgInfo("Apagando Arq.Saida já existente",wpasta+"\"+b_saida) Erase &b_saida Endif AOP=FCreate(wpasta+"\"+b_saida,2) If FError()<>0 MsgStop("Erro ao Criar este Arquivo de SaÃda",wpasta+"\"+b_saida) Return Nil Else MsgInfo("Criado ") endif AOP=FOpen(wpasta+"\"+b_saida,2) If FError()<>0 MsgStop("Erro ao Abrir Arquivo de SaÃda",ferror()) Fclose(b_saida) Return Nil Endif If File(wpasta+"\"+b_saida)=.t. MsgInfo("Processo Completado com Sucesso",wpasta+"\"+b_saida) Else MsgAlert("Arquivo de SaÃda não Gerado com Sucesso") Endif FClose(b_saida) Close Data Return nil XHarbourAbraço... Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "Se voce ainda nao achou a outra parte da sua laranja, use um limao...acucar, gelo e cachaca...e curta a vida" Editado por - sig_gilberto on 21/12/2007 16:49:38 Quote Link to comment Share on other sites More sharing options...
Yury Posted December 21, 2007 Report Share Posted December 21, 2007 olá, do jeito q vc fez vai dar acesso negado mesmo... veja bem: ou vc cria o arquivo ou vc abre... se vc acabou de criar o arquivo com FCreate não precisa utilizar o FOpen para abrir, pois o FCreate já cria e abre o arquivo... seria um teste mais ou menos assim: if file(cFile) FOpen(... else FCreate(... endif ... ... ... FClose(... id=code>id=code>um abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted December 24, 2007 Report Share Posted December 24, 2007 Amigos deste Forum..Bom Dia! YURI................valeu...é isso mesmo...tirei a linha de abertura(FOpen), e realmente apos FCreate não precisa de FOpen. "ETA FORUM PORRETA!!" citação:olá, do jeito q vc fez vai dar acesso negado mesmo... veja bem: ou vc cria o arquivo ou vc abre... se vc acabou de criar o arquivo com FCreate não precisa utilizar o FOpen para abrir, pois o FCreate já cria e abre o arquivo... seria um teste mais ou menos assim: if file(cFile) FOpen(... else FCreate(... endif ... ... ... FClose(... id=code>id=code>um abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say id=quote>id=quote>XHarbourAbraço... Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "Se voce ainda nao achou a outra parte da sua laranja, use um limao...acucar, gelo e cachaca...e curta a vida" Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted December 26, 2007 Report Share Posted December 26, 2007 Amigos deste Forum..Bom Dia! Primeiramente espero que todos tenham tido um EXCELENTE DIA DE NATAL e que a Paz tenha reinado em seus lares... Agora, vamos parte chata... 1)Resolvi o problema de acesso negado : Após um FCreate() não precisa de FOpen, pois após criar, o arquivo realmente já esta aberto...(rsrsrs) 2)O Programa diz que o arquivo foi criado e que esta na pasta (file()), mais vou na pasta e não localizo visualmente o arquivo de saida(.ASA) 3)o Append From esta adcionando registro mais sem critério, ou seja, APPEND FROM &B_SAIDA FOR IDENTIFI="1" não esta funcionando 4)Sou uma "anta" e não sei como após o final do processo, fazer com que o programa volte ao inicio e não pra dentro da Dialog. 5)Será que tem um Filho de Deus que poderia receber meus 02(dois) arquivos : PRG e o TXT por Email para realizar um teste ? 6)Será que vão cortar meu pescoço aki na empresa ? XHarbourAbraço... Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "Se voce ainda nao achou a outra parte da sua laranja, use um limao...acucar, gelo e cachaca...e curta a vida" Quote Link to comment Share on other sites More sharing options...
aferra Posted December 26, 2007 Report Share Posted December 26, 2007 Olá Gilberto. pode mandar aferracini@terra.com.br FELIZ 2008 A TODOSid=blue> Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião"id=red> Quote Link to comment Share on other sites More sharing options...
aferra Posted December 26, 2007 Report Share Posted December 26, 2007 citação:2)O Programa diz que o arquivo foi criado e que esta na pasta (file()), mais vou na pasta e não localizo visualmente o arquivo de saida(.ASA) R.: Vc não está localizando pq o arquivo está sendo criado somente como leitura e de sistema precisa fazer desta forma. AOP=FCreate(b_saida,1)id=red> 3)o Append From esta adcionando registro mais sem critério, ou seja, APPEND FROM &B_SAIDA FOR IDENTIFI="1" não esta funcionando R.: pois bem eu não sei onde está esse IDENTIFI="1" e, não tenho certeza, o erro está aÃ, esplique o que vc quer com essa validação, ou, qual a validação necessária.id=red> 4)Sou uma "anta" e não sei como após o final do processo, fazer com que o programa volte ao inicio e não pra dentro da Dialog. R.: no Action do button faça desta forma Action (Processa(),oDlg:End())id=red> 6)Será que vão cortar meu pescoço aki na empresa ? R.: Muita calma nessa sua pasciência, heheheheid=red> id=quote>id=quote>FELIZ 2008 A TODOSid=blue>Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião"id=red> Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted December 26, 2007 Report Share Posted December 26, 2007 Ok..vamos lá Meu arquivo .ASA já esta aparecendo na pasta !!! OK!! IDENTIFI="1" É o nome do campo que será criado atraves do DbCreate na TB01. A primeira coluna do arquivo PMBRAD.TXT que lhe enviei contêm 4 numeros diferentes 0,1,2,9 Eu quero que seja dado append from na TB01 mas somente onde tenha o valor 1 no PMBRAD.TXT, isso é um HEADER(arquivo de cabeçalho) citação: citação:2)O Programa diz que o arquivo foi criado e que esta na pasta (file()), mais vou na pasta e não localizo visualmente o arquivo de saida(.ASA) R.: Vc não está localizando pq o arquivo está sendo criado somente como leitura e de sistema precisa fazer desta forma. AOP=FCreate(b_saida,1)id=red> 3)o Append From esta adcionando registro mais sem critério, ou seja, APPEND FROM &B_SAIDA FOR IDENTIFI="1" não esta funcionando R.: pois bem eu não sei onde está esse IDENTIFI="1" e, não tenho certeza, o erro está aÃ, esplique o que vc quer com essa validação, ou, qual a validação necessária.id=red> 4)Sou uma "anta" e não sei como após o final do processo, fazer com que o programa volte ao inicio e não pra dentro da Dialog. R.: no Action do button faça desta forma Action (Processa(),oDlg:End())id=red> 6)Será que vão cortar meu pescoço aki na empresa ? R.: Muita calma nessa sua pasciência, heheheheid=red> id=quote>id=quote>FELIZ 2008 A TODOSid=blue>Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião"id=red> id=quote>id=quote>XHarbourAbraço... Gilberto Herminio Programador Pleno III Marpress Informática Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "A Verdadeira amizade se constroe de pequenos gestos de ajuda multua" Editado por - sig_gilberto on 26/12/2007 12:05:46 Editado por - sig_gilberto on 26/12/2007 12:08:10 Editado por - sig_gilberto on 26/12/2007 13:35:10 Quote Link to comment Share on other sites More sharing options...
aferra Posted December 26, 2007 Report Share Posted December 26, 2007 Olá Gilberto. Pelo que entendi esse arquivo é de retorno do banco, certo? disso eu não manjo mas pelo que já li vc deve ter a formula de leitura para saber de qto em qtos caracteres para pegar as informações.... da forma que está o arquivo txt deveria ter o mesmo formato. Tem mais alguma informação? FELIZ 2008 A TODOSid=blue> Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX "Aceita o conselho dos outros, mas nunca desistas da tua própria opinião"id=red> Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted December 26, 2007 Report Share Posted December 26, 2007 SIM Este arquivo PMBRAD.TXT é um arquivo enviado pelo cliente. SIM Eu tenho a estrutura de cada DBF a ser criado, pois estas estão declaradas dentro do programa. PMBRAD.TXT. Nele há 4 tipos de header(cabeçalho). Para isso, eu tenho que criar tambem 4 arquivos DBF e em cada um, dar o append from selecionando o numero do header para inserir em cada DBF. Exemplo: supondo que esta abaixo seja o canteudo do arquivo PMBRAD.TXT 0MARIA APARECIDA DA LUZRUA MARINGA SANTO ANDRÉ 0LUZIA MARTA DA SILVA AV CRUZ ALTA SANTO ANDRÉ 1DEBITO SACADOR 000236589 1SALDO SACADOR 000023698 2PAGAVEL APENAS NAS LOTERICAS 2PAGAVEL APENAS NAS LOTERICAS 9TOTAL DE CADA FATURA 0000000 9TOTAL DE CADA FATURA 0000000 Repare que a primeira coluna de cada linha é um numero, 0 ou 1 ou 2 ou 9, o que chamamos de banco. Precico então, separar cada tipo de linha em cada tipo de DBF. XHarbourAbraço... Gilberto Herminio Programador Pleno III Marpress Informática Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "A Verdadeira amizade se constroe de pequenos gestos de ajuda multua" Quote Link to comment Share on other sites More sharing options...
evandro Posted December 26, 2007 Report Share Posted December 26, 2007 Olá, Acho que o melhor para isto é a TxtFile. for x=1 to oTxtDados:reccount() ) cLinha:=oTxtDados:ReadLn() if substr( cLinha,1,1 )='0' // inclua no arquivo 1 elseif substr( cLinha,1,1 )='1' // inclua no arquivo 2 elseif substr( cLinha,1,1 )='2' // inclua no arquivo 3 elseif substr( cLinha,1,1 )='9' // inclua no arquivo 4 endif oTxtDados:skip() next oTxtDados:Close() id=code>id=code>[]s, Evandro G. de Paula Curvelo - MG evandro@skillnet.com.br (Escr. - na Cidade) imortal@skillnet.com.br (Res. - na Roça) FWH 2.6+PellesC+MyMake+xHarbour.org 0.99.5+SqlLib I PREPARATÓRIO PARA O VI ENCONTRO FIVEWIN - JULHO/2008 - CURVELO - MG Quote Link to comment Share on other sites More sharing options...
Yury Posted December 26, 2007 Report Share Posted December 26, 2007 olá, uma sugestão pra vc: basicamente, no arquivo de retorno temos 3 tipos de registros: Header (cabeçalho, zero ) Detalhe (titulos, 1 ou 2) Rodape (totalizador, 9) crie o DBF com o formato do registro tipo DETALHE e despreze na leitura do DBF o primeiro e o último registro... não há necessidade de armazenar o conteúdo do cabeçalho e do rodapé em DBF, pois não são informações necessárias... se caso seja necessário ler estas informações, agrupe-as em uma variável, pois estarão gravadas no DBF, somente em posições diferentes: // criar o DBF com a estrutura do registro DETALHE... cFile = '\Bradesco\Retorno\cb261207.ret' APPEND FROM &cFile SDF cCabecalho='' cRodape='' nCont=0 wx=0 select wk go top nrocpo=Fcount() while .not.eof() if nCont=0 // cabeçalho for wx=1 to nrocpo cCabecalho += fieldget(wx) next nCont++ loop elseif nCont = LASTREC() // rodape for wx=1 to nrocpo cRodape += fieldget(wx) next exit endif // aqui vc trata os registros dos titulos enviados skip +1 enddo msginfo( cCabecalho , 'HEADER DO ARQUIVO' ) msginfo( cRodape , 'RODAPE DO ARQUIVO' ) id=code>id=code>Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted December 26, 2007 Report Share Posted December 26, 2007 Amigos.....vou testar os 02 exemplos acima, o do Evandro e do Yuri...mais uma pergunta não quer se calar : "EU TENHO O MESMO PROGRAMA EM CLIPPER PURO PURO PURO E FUNCIONA...." Por que em FWH não quer funcionar ? Snif..Snif...Snif..minha cabeça vai rolar!!!!! XHarbourAbraço... Gilberto Herminio Programador Pleno III Marpress Informática Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "A Verdadeira amizade se constroe de pequenos gestos de ajuda multua" Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted December 26, 2007 Report Share Posted December 26, 2007 Amigos.... Evandro e Yuri... Os dois exemplos me solucionaram o problema maior. Mas é muito mais trabalhoso. Mais mesmo assim, OBRIGADU..por enquanto pois estou testando outras funções.. XHarbourAbraço... Gilberto Herminio Programador Pleno III Marpress Informática Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "A Verdadeira amizade se constroe de pequenos gestos de ajuda multua" Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted January 30, 2008 Report Share Posted January 30, 2008 Amigos deste forum, boa tarde... Desculpe-me por ser "chato", mas ainda preciso de uma resposta, caso haja, de alguém que possa me ajudar em relação ao APPEND FROM conforme postei em 26/12/2007 as 16:51:57. XHarbourAbraço... Gilberto Herminio - Programador Pleno III Marpress Informática Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "A Verdadeira amizade se constroe de pequenos gestos de ajuda multua" Quote Link to comment Share on other sites More sharing options...
jef2_tim Posted January 30, 2008 Report Share Posted January 30, 2008 cara c quer jogar um txt para dbf é isso? Select 3 append from "C:\Impac\Export\Produtos.txt" SDF no caso eu seleciono a area do meu dbf e faço desta forma.. ele joga para meu dbf todo o txt o dbf é este Select 3 Num_Ped = Substr(Time(),1,2) + Substr(Time(),4,2) + Substr(Time(),7,2) N_File = [EX]+Num_Ped Nme_File = N_File + [.] + oVar:F_Extsys If File("c:\impac\dados\&Nme_File") Delete File "c:\impac\dados\&Nme_File" Delete File "c:\impac\dados\&Nme_FCdx" Endif If !File("c:\impac\dados\&Nme_File33") Dbf_Stru := {} AAdd(Dbf_Stru,{"DADOS","C",240,00}) Dbcreate("c:\impac\dados\&Nme_File",Dbf_Stru) Endif If !Open_File("&N_File","",.T.,"E") Return Endif id=code>id=code>espero q ajude Um Xharbraço. Uso Fwh 2.5 (xharbour 0.99.3) e Xmate Para Compilar Impactus Automação Comercial jef2_timber@hotmail.com (91)-32387012 Belem-PA Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted January 30, 2008 Report Share Posted January 30, 2008 OK.....valeu pela outra dica....vou testá-la ainda..mais valeu... Na verdade eu quero(e mais 11 programadores que programam em Clipper Puro Puro e que estão no meu pé) saber por que o APPEND FROM não funciona no FHW...rsrsrsrsrs (só isso!) APPEND FROM ARQUIVO FOR IDENTIFI="1" Ele IGNORA TOTALMENTE o campo IDENTIFI ou ou qualquer e não seleciona conforme eu quero... XHarbourAbraço... Gilberto Herminio - Programador Pleno III Marpress Informática Eu Uso:XHB0.99.4(Simplex)+FWH25+BCC55+XDevStudio "A Verdadeira amizade se constroe de pequenos gestos de ajuda multua" Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.