Jump to content


Photo

Ler Arquivo Txt


  • Faça o login para participar
2 replies to this topic

#1 L_nando

L_nando

    Turista

  • Usuários
  • 39 posts
  • Sexo:Não informado

Posted 15/01/2007, 10:20

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


#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

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 ....

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 L_nando

L_nando

    Turista

  • Usuários
  • 39 posts
  • Sexo:Não informado

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>"

%>




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq