ASP.NET - Lendo arquivos textos delimitados


 

A tarefa de trabalhar com arquivos textos é sempre recorrente. Neste artigo vamos mostrar como podemos ler arquivos textos delimitados efetuando a separação via delimitador pré-definido. Geralmente a tarefa é requerida quando desejamos importar um arquivo texto para um banco de dados e vice-versa.

 

Para conhecer um pouco mais sobre o assunto leia os artigos :

Ao ler os arquivos acima você notará que não haverá muita diferença para o código usado neste artigo.

 

O código usado pode ser digitado em qualquer editor de texto como NotePad, TextPad, etc. Eu prefiro usar o Web Matrix pois é um editor muito amigável que possui um servidor web no qual podemos testar o código diretamente.

 

Para saber mais sobre o Web Matrix leia os artigos :

Nota: Outra alternativa ao  Web Matrix é o  Visual Web Developer 2005 que você pode baixar gratuitamente aqui : http://msdn.microsoft.com/vstudio/express/vwd/

 

Nosso objetivo será ler um arquivo texto com um delimitador definido como a "," e efetuar a separação das linhas do texto.

Vou usar um trecho da música Blowin' in the wind de Bob Dylan no arquivo dylan.txt.

 

Abra o Web Matrix e cria uma nova página ASP.NET. A seguir,  na aba Design, insira os controles conforme abaixo:

 

 

Na guia Code inclua o seguinte código no evento Load a página :

 

Sub page_load(Sender As Object,e As EventArgs)
 'define o local do arquivo
 Dim Arquivo as string = "d:\teste\dylan.txt"

'define um arquivo do tipo streamreader e abre o arquivo
 dim arquivoStream as StreamReader

 Dim delimitador as String = ","

 dim i as integer

 try
    arquivoStream = File.Opentext(Arquivo)
 catch ex as Exception
    lblerro.text = " Arquivo não encontrado."
    exit sub
 end try

 Dim conteudo as String = arquivoStream.ReadToEnd()

 lbltexto.text = conteudo & "<br>"

 dim separar = Split(conteudo,delimitador)

 for i=0 to Ubound(separar)
      lblresultado.text &= i+1 & ") " & separar(i) & "<br>"
  next

 arquivoStream.close()

End Sub

 

O início do arquivo deve possuir a declaração de imports  do namespace System.IO:
 

<%@ Page Language="vb" Debug="true" %>
<%@ import Namespace="System.IO" %>

 

O resultado da execução da página é a seguinte:


Note que eu juntei todas as linhas do trecho da música separando as por vírgula para que em seguida fosse feita separação das linhas.
 

 

No código vale a pena destacar:
 

1- A abertura do arquivo texto :

Dim Arquivo as string = "d:\teste\dylan.txt"
Dim arquivoStream as StreamReaderD
arquivoStream = File.Opentext(Arquivo)

 

2- O método ReadToEnd lê todo o conteúdo do arquivo
Dim conteudo as String = arquivoStream.ReadToEnd()
 

3- A extração das linhas do arquivo usando o delimitador(,)

dim separar = Split(conteudo,delimitador)

 

4- A utilização de um loop para ler o conteúdo que esta armazenado no array

for i=0 to Ubound(separar)
      lblresultado.text &= i+1 & ") " & separar(i) & "<br>"
 next

 

E estamos conversados.

 

Pegue o código do projeto aqui: leArqDelimitados.zip

 

Até o próximo artigo ...


José Carlos Macoratti