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