Olá, boa tarde.
Estou precisando importar um arquivo txt que tem o layout que pode ser visto logo abaixo, preciso que o cliper entenda que cada campo está separado por ; é possível fazer isso? Eu já encontrei exemplos de código que mostra como importar por numero de coluna fixo mas não separado por ; como é o caso do meu *.txt
arquivo.txt
codigo/bruto/liquido/venda
1/901-13;4.41;3.31;8.27
1/901-16;4.41;3.31;8.27
1/908-01;4.48;3.36;8.40
1/918-22;4.98;3.74;9.34
1/918-24;4.98;3.74;9.34
1/918-25;4.98;3.74;9.34
1/918-36;4.98;3.74;9.34
1/918-38;4.98;3.74;9.34
1/919-01;5.55;4.16;10.41
Muito Obrigado.
Importar arquivo *.txt
Moderador: Moderadores
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Importar arquivo *.txt
Utilize o sistema de busca do fórum...
Veja:
https://pctoledo.org/forum/viewto ... f=1&t=6386
https://pctoledo.org/forum/viewto ... f=1&t=1642
https://pctoledo.org/forum/search ... mited+with
Abraços,
Veja:
https://pctoledo.org/forum/viewto ... f=1&t=6386
https://pctoledo.org/forum/viewto ... f=1&t=1642
https://pctoledo.org/forum/search ... mited+with
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
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
-
leandromiler
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 26 Nov 2009 08:38
- Localização: Ribeirão Preto - SP
- Contato:
Re: Importar arquivo *.txt
Segue rotina que usei para importar um arquivo parecido com este.
Código: Selecionar todos
clear
USE CIDADE ALIAS CIDADE NEW
ZAP
USE importa ALIAS importa NEW
GO TOP
CONTA=0
DO WHILE .T.
CLEAR
do while !EOF()
mLINHA:=importa->LINHA
mCEP=' '
mCEP=SUBSTR(mLINHA,1,8)
mCIDADE=' '
X=10
DO WHILE SUBSTR(mLINHA,X,1)<>';' // CEP
IF x=10
mCIDADE=SUBSTR(mLINHA,X,1)
ELSE
mCIDADE=mCIDADE+SUBSTR(mLINHA,X,1)
ENDIF
X++
ENDDO
mUF=' '
X++ // PULA PONTO E VIRGULA
mUF=SUBSTR(mLINHA,X,2)
X:=X+2
mBAIRRO=' '
X++ // PULA PONTO E VIRGULA
DO WHILE SUBSTR(mLINHA,X,1)<>';' // CEP
IF EMPTY(mBAIRRO)
mBAIRRO=SUBSTR(mLINHA,X,1)
ELSE
mBAIRRO=mBAIRRO+SUBSTR(mLINHA,X,1)
ENDIF
X++
ENDDO
mENDE=' '
X++ // PULA PONTO E VIRGULA
DO WHILE SUBSTR(mLINHA,X,1)<>';' // CEP
IF EMPTY(mENDE)
mENDE=SUBSTR(mLINHA,X,1)
ELSE
mENDE=mENDE+SUBSTR(mLINHA,X,1)
ENDIF
X++
ENDDO
CONTA++
@ 05,60 SAY CONTA PICT '9999999'
SELE CIDADE
APPE BLANK
REPLACE CEP WITH mCEP
REPLACE CIDADE WITH UPPER(mCIDADE)
REPLACE UF WITH UPPER(mUF)
REPLACE BAIRRO WITH UPPER(mBAIRRO)
REPLACE ENDERECO WITH UPPER(mENDE)
// @ 22,20 say mCEP
// @ 23,20 say mENDE
// @ 24,20 say mCIDADE+' '+MUF
SELE importa
SKIP
IF EOF()
EXIT
ENDIF
ENDDO
IF EOF()
EXIT
ENDIF
ENDDO
Clipper 5.3b / CDX Nativo / Blinker 7
Ninguem sabe tanto que não possa aprender, e nem sabe tão pouco que não possa ensinar !!!
Ninguem sabe tanto que não possa aprender, e nem sabe tão pouco que não possa ensinar !!!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Importar arquivo *.txt
Olá!
Seja bem-vindo ao fórum!
Você precisará criar a tabela .DBF onde os dados serão armazenados e depois popular com os dados do arquivo texto .
Exemplo:
Seja bem-vindo ao fórum!
Você precisará criar a tabela .DBF onde os dados serão armazenados e depois popular com os dados do arquivo texto .
Exemplo:
Código: Selecionar todos
// cria tabela vazia conforme layout apresentado
DbCreate( "Arquivo", ;
{ { "codigo", "C", 8, 0 }, ;
{ "bruto", "N", 8, 2 }, ;
{ "liquido", "N", 8, 2 }, ;
{ "venda", "N", 8, 2 } ;
};
)
// abre tabela vazia criada acima (Arquivo.DBF)
USE "Arquivo" EXCLUSIVE NEW
IF ! NetErr()
// se abriu a tabela vazia, importa os dados (Arquivo.TXT)
APPEND FROM "Arquivo.TXT" DELIMITED WITH ";"
Else
Alert( "Falha na abertura do arquivo destino.;" + "Erro DOS " + LTrim( Str( FError() ) )
Endif
// Fecha tabela
Arquivo->( DbCloseArea() )
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
