IMPORTAÇÃO ARQUIVO - APPEND
Enviado: 01 Set 2024 20:39
Amigos Clipeiros poderiam me ajudar por favor, preciso fazer uma importação (Append) de arquivo para um banco de dados, não estou conseguindo acertar o campo númerico, imagino que deve ter algum tipo de tratamento.
Abaixo segue exemplo do arquivo TEXTO (ARQUIVO), que preciso importar para um DBF
XXXXX-CAMPO NUMERICO
Valores 703,68, 558,73, onde é 00000000000000000(17x0) campo númerico valor.
0182370156400775017755540009063 000000000000703685140040905980030003008002037818200606130000000001KFC018 0000000002
0183412627800615901975160003575 000000000000558735140040905980030003008002037818200606130000000002KFC018 0000000003
LOCAL L := 0, C := 0, DATAPRO := "20250901"
if datapro <= dtos(date())
cls
set color to 16/07
@ 09, 31 SAY "isac@hotmail.com"
@ 11, 25 say "ÉÍÍÍÍÍÍÍ[ Mensagem ]ÍÍÍÍÍÍÍ»"
@ 12, 25 say "º º"
@ 13, 25 say "º PROGRAMA NŽO LICENCIADO! º"
@ 14, 25 say "º º"
@ 15, 25 say "ÈÍÍÍ[ Acione uma tecla ]ÍÍͼ"
set color to
quit
ENDIF
PARAM ARQTXT
IF EMPTY(ARQTXT)
?
? "ARQ (NOME DO ARQUIVO)"
?
?
QUIT
ENDIF
IF .NOT. FILE ("DADOS.DBF")
ESTRU:={}
AADD(ESTRU, {"COMP","C",03,0})
AADD(ESTRU, {"BANCO","C",03,0})
AADD(ESTRU, {"AGENCIA","C",04,0})
AADD(ESTRU, {"DV2","C",01,0})
AADD(ESTRU, {"CONTA","C",12,0})
AADD(ESTRU, {"DV1","C",01,0})
AADD(ESTRU, {"CHEQUE","C",06,0})
AADD(ESTRU, {"DV3","C",1,0})
AADD(ESTRU, {"FILLER","C",02,0})
AADD(ESTRU, {"VALOR","N",15,2})
AADD(ESTRU, {"TIP","C",01,0})
AADD(ESTRU, {"TIPO","C",02,0})
AADD(ESTRU, {"FILLER2","C",02,0})
AADD(ESTRU, {"BCOREM","C",03,0})
AADD(ESTRU, {"AGEREM","C",04,0})
AADD(ESTRU, {"AGEDEP","C",04,0})
AADD(ESTRU, {"CONDEP","C",12,0})
AADD(ESTRU, {"COMPAC","C",03,0})
AADD(ESTRU, {"DATA","C",08,0})
AADD(ESTRU, {"LOTE","C",07,0})
AADD(ESTRU, {"SEQLOTE","C",03,0})
AADD(ESTRU, {"CENTRO","C",05,0})
AADD(ESTRU, {"FILLER3","C",46,0})
AADD(ESTRU, {"SEQ","C",10,0})
DBCREATE("DADOS",ESTRU)
ENDIF
USE DADOS
* ZAP
APPEND FROM (ARQTXT) SDF ALL
GO TOP
SET DEVICE TO PRINT
SET PRINT TO (ARQTXT)
DO WHILE DADOS->(!EOF())
@ L,C SAY DADOS->COMP+DADOS->BANCO+DADOS->AGENCIA+DADOS->DV2+DADOS->;
CONTA+DADOS->DV1+DADOS->CHEQUE+DADOS->DV3+DADOS->;
FILLER+DADOS->VALOR+DADOS->TIP+DADOS->TIPO+DADOS->FILLER2+DADOS->;
BCOREM+DADOS->AGEREM+DADOS->AGEDEP+DADOS->CONDEP+DADOS->COMPAC+DADOS->;
DATA+DADOS->LOTE+DADOS->SEQLOTE+DADOS->CENTRO+DADOS->FILLER3+DADOS->SEQ
DADOS->(DBSKIP(1))
L := L+1
@PROW()+1,00 SAY""
ENDDO
SET DEVICE TO SCREEN
SET PRINT OFF
DBCLOSEALL()
* DELETE FILE DADOS.DBF
QUIT
Desde já agradeço, atenção...
Abaixo segue exemplo do arquivo TEXTO (ARQUIVO), que preciso importar para um DBF
XXXXX-CAMPO NUMERICO
Valores 703,68, 558,73, onde é 00000000000000000(17x0) campo númerico valor.
0182370156400775017755540009063 000000000000703685140040905980030003008002037818200606130000000001KFC018 0000000002
0183412627800615901975160003575 000000000000558735140040905980030003008002037818200606130000000002KFC018 0000000003
LOCAL L := 0, C := 0, DATAPRO := "20250901"
if datapro <= dtos(date())
cls
set color to 16/07
@ 09, 31 SAY "isac@hotmail.com"
@ 11, 25 say "ÉÍÍÍÍÍÍÍ[ Mensagem ]ÍÍÍÍÍÍÍ»"
@ 12, 25 say "º º"
@ 13, 25 say "º PROGRAMA NŽO LICENCIADO! º"
@ 14, 25 say "º º"
@ 15, 25 say "ÈÍÍÍ[ Acione uma tecla ]ÍÍͼ"
set color to
quit
ENDIF
PARAM ARQTXT
IF EMPTY(ARQTXT)
?
? "ARQ (NOME DO ARQUIVO)"
?
?
QUIT
ENDIF
IF .NOT. FILE ("DADOS.DBF")
ESTRU:={}
AADD(ESTRU, {"COMP","C",03,0})
AADD(ESTRU, {"BANCO","C",03,0})
AADD(ESTRU, {"AGENCIA","C",04,0})
AADD(ESTRU, {"DV2","C",01,0})
AADD(ESTRU, {"CONTA","C",12,0})
AADD(ESTRU, {"DV1","C",01,0})
AADD(ESTRU, {"CHEQUE","C",06,0})
AADD(ESTRU, {"DV3","C",1,0})
AADD(ESTRU, {"FILLER","C",02,0})
AADD(ESTRU, {"VALOR","N",15,2})
AADD(ESTRU, {"TIP","C",01,0})
AADD(ESTRU, {"TIPO","C",02,0})
AADD(ESTRU, {"FILLER2","C",02,0})
AADD(ESTRU, {"BCOREM","C",03,0})
AADD(ESTRU, {"AGEREM","C",04,0})
AADD(ESTRU, {"AGEDEP","C",04,0})
AADD(ESTRU, {"CONDEP","C",12,0})
AADD(ESTRU, {"COMPAC","C",03,0})
AADD(ESTRU, {"DATA","C",08,0})
AADD(ESTRU, {"LOTE","C",07,0})
AADD(ESTRU, {"SEQLOTE","C",03,0})
AADD(ESTRU, {"CENTRO","C",05,0})
AADD(ESTRU, {"FILLER3","C",46,0})
AADD(ESTRU, {"SEQ","C",10,0})
DBCREATE("DADOS",ESTRU)
ENDIF
USE DADOS
* ZAP
APPEND FROM (ARQTXT) SDF ALL
GO TOP
SET DEVICE TO PRINT
SET PRINT TO (ARQTXT)
DO WHILE DADOS->(!EOF())
@ L,C SAY DADOS->COMP+DADOS->BANCO+DADOS->AGENCIA+DADOS->DV2+DADOS->;
CONTA+DADOS->DV1+DADOS->CHEQUE+DADOS->DV3+DADOS->;
FILLER+DADOS->VALOR+DADOS->TIP+DADOS->TIPO+DADOS->FILLER2+DADOS->;
BCOREM+DADOS->AGEREM+DADOS->AGEDEP+DADOS->CONDEP+DADOS->COMPAC+DADOS->;
DATA+DADOS->LOTE+DADOS->SEQLOTE+DADOS->CENTRO+DADOS->FILLER3+DADOS->SEQ
DADOS->(DBSKIP(1))
L := L+1
@PROW()+1,00 SAY""
ENDDO
SET DEVICE TO SCREEN
SET PRINT OFF
DBCLOSEALL()
* DELETE FILE DADOS.DBF
QUIT
Desde já agradeço, atenção...