Jump to content
Fivewin Brasil

APPEND FROM ... SDF


BenyHapper

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

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 TODOS

id=blue>

Alessandroid=blue>

FW20d+CL53b+Blk7+@Say+CDX

"Aceita o conselho dos outros, mas nunca desistas da tua própria opinião"id=red>

Link to comment
Share on other sites

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 TODOS

id=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

Link to comment
Share on other sites

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>

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

  • 1 month later...

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"

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...