Pessoal, bom dia.
Alguém sabe como faço para ler um arquivo .txt separado por ; (ponto e vírgula) para depois gravá-lo no bd access?
Grato
Ler Arquivo Txt
Started By L_nando, 15/01/2007, 10:20
2 replies to this topic
#1
Posted 15/01/2007, 10:20
#2
Posted 23/01/2007, 21:45
Isso é bem simples ...
Basta ler o arquivo gravar tudo em uma variavel, depois divir nas ";" e depois listar ...
Vamas a Prática ....
Basta ler o arquivo gravar tudo em uma variavel, depois divir nas ";" e depois listar ...
Vamas a Prática ....
Const ForReading = 1, ForWriting = 2 Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:\testfile.txt", ForReading) ReadAllTextFile = f.ReadAll ListValues = Split(";", ReadAllTextFile) For Each Value In ListValues Response.Write Value Next
#3
Posted 09/02/2007, 20:37
BOA NOITE PESSOAL, CONSEGUI O QUE EU QUERIA, TÁ AÍ O CÓDIGO PARA QUEM SE INTERESSAR
<%
'Setar um valor de execução de script
Server.ScriptTimeout = 240
'Iremos também fazer com que o script siga quando ocorrer um erro
'Para podermos tratá-lo após o script
on error resume next
'************************* Início do Upload ***************************
'Utilizaremos a função On Error Resume Next para ignorar qualquer erro que possa vir a acontecer, e posteriormente iremos identifica-lo e só então comunicarmos ao usuário.
On Error Resume Next
Dim objUpload
'Cria uma instancia do objeto Upload e atribui a variável objUpload.
Set objUpload = server.CreateObject("Dundas.Upload.2")
'Determinamos True em UseVirtualDir para que possamos utilizar o caminho virtual.
'objUpload.UseVirtualDir = false
'Salva o arquivo com o nome real enviado.
objUpload.UseUniqueNames = False
'Utilizamos o caminho virtual que determina onde serão salvos os arquivos carregados.
objUpload.Save "C:\PastaDestino"
'Limpa a instância criada na memória do servidor.
Set objUpload = nothing
'Aqui nós verificaremos se ocorreu algum tipo de erro com os dados carregados. O objeto Err guarda o último erro, caso nenhum erro tenha ocorrido o objeto conterá o valor 0 (zero) com isso podemos verificar o valor do objeto e determinarmos qual mensagem será dada ao usuário.
If Err <> 0 Then
'Aqui estamos imprimindo na tela do usuário a descrição do erro e seu número.
Response.Write Err.Description & " " & Err.Number & "<br>"
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Houve erro(s) ao carregar o(s) arquivo(s) anexado(s)!<br><a href=java script:history.back(-1)>Voltar</a> </b></font>"
Else
'Se o objeto Err for igual a 0 será apresentado a mensagem de sucesso e os dados estarão salvos no caminho determinado acima
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Seus dados foram carregados com sucesso!</b></font>"
End If
Response.Write "</BODY></HTML>"
'Fim de grava_anexo
'************************* Início pegar arquivo txt e gravar no banco ***************************
Dim Conexao
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "dbq="&Server.MapPath("banco.mdb")&";driver={Microsoft Access Driver (*.mdb)}"
'Antes de criarmos o FSO, iremos exibir uma imagem de envio
'Somente para ilustrar pois dependendo do arquivo o processo pode ser demorado
response.write "<img src='inserindo.gif'>"
Dim objFSO
'Aqui que daremos início ao sistema
'Criaremos o objeto FileSystemObject
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Dim varArquivo
'Agora, com o uso do FSO, iremos abrir o arquivo texto que iremos criar
Set varArquivo = objFSO.OpenTextFile(server.MapPath("arquivo.txt"), 1)
dim arrayLinha
'Agora que o arquivo já foi aberto, iremos ler linha por linha
'O comando AtEndOfStream determina que iremos repetir o processo abaixo
'até o fim do arquivo
Do while not varArquivo.AtEndOfStream
'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)
'Com o array criado, iremos inserir de acordo com a ordem dos campos
'Usando 'arrayLinha(0)' nós determinamos cada dado pela ordem do arquivo de texto
'começando pelo zero que é respectivamente o campo nome e por ai adiante
conexao.execute "INSERT INTO TABELA (CAMPO1, CAMPO2, CAMPO3) VALUES ('"&arrayLinha(0)&"','"&arrayLinha(1)&"','"&arrayLinha(2)&"')"
'Passar para próxima linha
loop
'Destruiremos e fecharemos o FSO e o acesso ao arquivo de texto
varArquivo.Close
Set varArquivo = Nothing
Set objFSO = Nothing
'Destruiremos e fecharemos a conexão com o banco de dados
Conexao.close
Set Conexao = nothing
'Abaixo, caso a ordem ou a quantidade de campos do arquivo de texto
'seja inferior a do banco de dados, retornaremos uma mensagem de erro
if err>0 then
response.write "<script>history.back(1);alert('Ocorreu algum problema na inserção.\nVerifique o layout do arquivo de texto.')</script>"
response.End()
end if
'************************* Deletando arquivo txt ***************************
Set objFSO = server.CreateObject("Scripting.FileSystemObject")
objfso.DeleteFile Server.MapPath("arquivo.txt"),true
Set fso = Nothing
response.write "<script>location = 'pagina.htm'</script>"
%>
<%
'Setar um valor de execução de script
Server.ScriptTimeout = 240
'Iremos também fazer com que o script siga quando ocorrer um erro
'Para podermos tratá-lo após o script
on error resume next
'************************* Início do Upload ***************************
'Utilizaremos a função On Error Resume Next para ignorar qualquer erro que possa vir a acontecer, e posteriormente iremos identifica-lo e só então comunicarmos ao usuário.
On Error Resume Next
Dim objUpload
'Cria uma instancia do objeto Upload e atribui a variável objUpload.
Set objUpload = server.CreateObject("Dundas.Upload.2")
'Determinamos True em UseVirtualDir para que possamos utilizar o caminho virtual.
'objUpload.UseVirtualDir = false
'Salva o arquivo com o nome real enviado.
objUpload.UseUniqueNames = False
'Utilizamos o caminho virtual que determina onde serão salvos os arquivos carregados.
objUpload.Save "C:\PastaDestino"
'Limpa a instância criada na memória do servidor.
Set objUpload = nothing
'Aqui nós verificaremos se ocorreu algum tipo de erro com os dados carregados. O objeto Err guarda o último erro, caso nenhum erro tenha ocorrido o objeto conterá o valor 0 (zero) com isso podemos verificar o valor do objeto e determinarmos qual mensagem será dada ao usuário.
If Err <> 0 Then
'Aqui estamos imprimindo na tela do usuário a descrição do erro e seu número.
Response.Write Err.Description & " " & Err.Number & "<br>"
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Houve erro(s) ao carregar o(s) arquivo(s) anexado(s)!<br><a href=java script:history.back(-1)>Voltar</a> </b></font>"
Else
'Se o objeto Err for igual a 0 será apresentado a mensagem de sucesso e os dados estarão salvos no caminho determinado acima
Response.Write "<font face=Verdana, Arial, Helvetica, sans-serif size=2><b>Seus dados foram carregados com sucesso!</b></font>"
End If
Response.Write "</BODY></HTML>"
'Fim de grava_anexo
'************************* Início pegar arquivo txt e gravar no banco ***************************
Dim Conexao
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "dbq="&Server.MapPath("banco.mdb")&";driver={Microsoft Access Driver (*.mdb)}"
'Antes de criarmos o FSO, iremos exibir uma imagem de envio
'Somente para ilustrar pois dependendo do arquivo o processo pode ser demorado
response.write "<img src='inserindo.gif'>"
Dim objFSO
'Aqui que daremos início ao sistema
'Criaremos o objeto FileSystemObject
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Dim varArquivo
'Agora, com o uso do FSO, iremos abrir o arquivo texto que iremos criar
Set varArquivo = objFSO.OpenTextFile(server.MapPath("arquivo.txt"), 1)
dim arrayLinha
'Agora que o arquivo já foi aberto, iremos ler linha por linha
'O comando AtEndOfStream determina que iremos repetir o processo abaixo
'até o fim do arquivo
Do while not varArquivo.AtEndOfStream
'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)
'Com o array criado, iremos inserir de acordo com a ordem dos campos
'Usando 'arrayLinha(0)' nós determinamos cada dado pela ordem do arquivo de texto
'começando pelo zero que é respectivamente o campo nome e por ai adiante
conexao.execute "INSERT INTO TABELA (CAMPO1, CAMPO2, CAMPO3) VALUES ('"&arrayLinha(0)&"','"&arrayLinha(1)&"','"&arrayLinha(2)&"')"
'Passar para próxima linha
loop
'Destruiremos e fecharemos o FSO e o acesso ao arquivo de texto
varArquivo.Close
Set varArquivo = Nothing
Set objFSO = Nothing
'Destruiremos e fecharemos a conexão com o banco de dados
Conexao.close
Set Conexao = nothing
'Abaixo, caso a ordem ou a quantidade de campos do arquivo de texto
'seja inferior a do banco de dados, retornaremos uma mensagem de erro
if err>0 then
response.write "<script>history.back(1);alert('Ocorreu algum problema na inserção.\nVerifique o layout do arquivo de texto.')</script>"
response.End()
end if
'************************* Deletando arquivo txt ***************************
Set objFSO = server.CreateObject("Scripting.FileSystemObject")
objfso.DeleteFile Server.MapPath("arquivo.txt"),true
Set fso = Nothing
response.write "<script>location = 'pagina.htm'</script>"
%>
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)