Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

4.b

LER ARQUIVOS TXT e cadastrar no banco...

Recommended Posts

Ola, possuo um arquivo TXT com varior registros que precisam ser cadastrados no banco de dados, os registros do txt estão da seguinte forma:

 

 

=================== registro.txt ================

CPF: 00000000081

Nome: Lula Lá

Email: lula@gov.br

Cidade: Brasilia

Estado: DF

Site: www.brasil.gov.br

 

salta uma linha e depois vem outros registros

===========================================

 

O asp deve capturar o CPF e cadastrar no banco de dados (ACESS) na coluna CPF, e todos os demais dados ficão armazenados na coluna memorando de nome INFORMAÇÕES.

 

Achei aqui um excelente tutorial no Imasters, porem ele pega os registros que estão na mesma linha. O segredo é como configurar o Array que faz o ReadLine para pegar os registro na primeira linha e por em uma coluna, e todos os demais e colocar na segunda coluna.

 

'Abaixo criaremos um array para separar os dados entre ponto-e-vírgula

'ReadLine é usado para indicar que iremos separar os dados desta linha

arrayLinha=split(varArquivo.ReadLine,";",-1,1)

 

o segredo é esse array, ele determinar onde pegar... mas como fazer para esse meu caso?

 

Se alguem tiver uma ideia, ja tiver feito isso poderia me dar uma dica, estou precisando muito. Acredito tambem que pode servir de esclarecimento para outros colegas.

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz umas adaptações ao código do artigo. Segue abaixo:

 

<%
Server.ScriptTimeout = 100000

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set varArquivo = objFSO.OpenTextFile(server.MapPath("txt.txt"), 1)

x = 0
varTexto = empty

Do while not varArquivo.AtEndOfStream
	'Aqui foi organizado os dados para serem transformados em um array

	x = x + 1

	if x = 7 then
		x = 0
		varArquivo.ReadLine
	else 
		if x = 1 then
			varTexto = varArquivo.ReadLine
		else
			varTexto = varTexto & ";*" & varArquivo.ReadLine
		end if
		
		'Aqui transformei em um array
		arrayLinha=split(varTexto,";*",-1,1)
	
		if x = 6 then
			'Aqui exibi o que está dentro do array. Pode ser usado tambem para incluir no banco conforme o artigo
			response.write arrayLinha(0) & " . " & arrayLinha(1) & " . " & arrayLinha(2) & " . " & arrayLinha(3) & " . " & arrayLinha(4) & " . " & arrayLinha(5) & "<br />"
			
			'Aqui removi o inicio de cada linha (CPF, NOME, etc.)
			posicao = 0
			for i=lbound(arrayLinha) to ubound(arrayLinha)
				posicao = instr(arrayLinha(i),":")
				if posicao <> 0 then
				arrayLinha(i) = mid(arrayLinha(i),posicao+1,len(arrayLinha(i)))
					end if
				posicao = 0
			next
			
			'Aqui exibi o que está dentro do array. É esta linha que deverá ser utilizada para incluir os dados caso esteja utilizando o modelo do artigo
			response.write arrayLinha(0) & " . " & arrayLinha(1) & " . " & arrayLinha(2) & " . " & arrayLinha(3) & " . " & arrayLinha(4) & " . " & arrayLinha(5) & "<br /><br />"
			
			'Aqui formatei do jeito que você precisa para cadastrar visto que utilizará apenas dois campos
			cpf = arrayLinha(0)
			memorando = arrayLinha(1) & " . " & arrayLinha(2) & " . " & arrayLinha(3) & " . " & arrayLinha(4) & " . " & arrayLinha(5)
			
			varTexto = empty
		end if
	end if
loop

varArquivo.Close
Set varArquivo = Nothing
Set objFSO = Nothing
%>

Detalhes:

Você deve formatar o txt no seguinte padrão:

CPF: 00000000081;1

Nome: Lula Lá

Email: lula@gov.br

Cidade: Brasilia

Estado: DF

Site: www.brasil.gov.br

 

CPF: 00000000099;1

Nome: Eu mesmo

Email: eu@gov.br

Cidade: Tim

Estado: MG

Site: www.minas.gov.br

 

CPF: 00000000081;1

Nome: Lula Lá

Email: lula@gov.br

Cidade: Brasilia

Estado: DF

Site: www.brasil.gov.br

 

CPF: 00000000099;1

Nome: Eu mesmo

Email: eu@gov.br

Cidade: Tim

Estado: MG

Site: www.minas.gov.br

Caso esteja diferente disso, o código precisará ser alterado.

 

Obs. Não utilize ponto-e-virgula seguido de asterisco ";*" dentro do txt.

 

Qualquer dúvida, poste novamente. ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.