Leitura e escritura de arquivos em ASP

Em algumas ocasiões é necessário que nossas aplicações realizem ações de leitura ou escritura de arquivos de texto no servidor.

Para dar um exemplo, poderíamos salvar todos documentos das reportagens de nosso site em arquivos de texto e através de nossas páginas ASP poderíamos abrir esses arquivos de texto mostrá-los dentro do desenho de nosso site. Isto é uma técnica habitual, que utilizamos também em criarweb. Qualquer um que já tiver programado um pouquinho conhecerá a importância que tem o manejo de arquivos de texto em programas, de modo que não serão necessários mais exemplos de possíveis usos.

Como estamos em ASP, temos que ter em conta que os arquivos que podemos manipular se encontram no servidor, já que ASP pode ter acesso aos recursos do servidor e não aos do cliente.

Para ler ou escrever arquivos de texto no servidor utilizando ASP deve-se criar um objeto File System Object (FSO), que serve para ter acesso ao sistema de arquivos do servidor onde estão nossas páginas. Até agora não falamos muito do FSO em criarweb.com, mas pensamos em fazer uma série de reportagens para trata-lo mais a fundo. Por agora, será suficiente que saibamos que para ler ou escrever um arquivo devemos nos apoiar no FSO necessariamente. Para criar uma conexão com o FSO em nossas páginas ASP fazemos o seguinte:

set con_FSO = createObject(“scripting.filesystemobject”)

Neste momento já temos acesso ao sistema de arquivos através do File System Object, nossa variávelcom_FSO salva o objeto que realiza a conexão com o sistema de arquivos. Agora devemos criar o objetoTextStream, que será o objeto final que necessitaremos ter para ler ou escrever o arquivo.

Existem em ASP três métodos para criar o TexStream que se utilizam em casos distintos, segundo as ações que pretendamos realizar com o arquivo. Os três métodos devolvem um objeto TextStream.

CreateTextFile (arquivo,sobrescreve,unicode)
Este método criará um arquivo em nosso sistema de arquivos e devolverá um objeto TextStream, que é o que utilizaremos para movermos pelo arquivo, ler ou escrever. O parâmetro arquivo é para indicar a rota do sistema de arquivos do servidor onde se criará o arquivo. Os outros dois parâmetros são opcionais. Quando está a true sobrescreve, indica que se havia um arquivo com esse nome se sobrescreve. Quando unicode está a true indica-se que o arquivo deve ser criado com jogo de caracteres unicode.

OpenTextFile (arquivo,tipo_acesso,criar,formato)
Com este método abrimos um arquivo de texto para ler ou escrever e nos devolve o objeto TextStream necessário para realizar as ações sobre o arquivo. O parâmetro arquivo indica a rota do arquivo a criar. O parâmetro tipo_acesso é opcional, indica o tipo de acesso que vamos realizar, por padrão abre-se para leitura, ForReading (1), também podemos abri-lo para escritura ForWriting (2) e para acrescentar ForAppending (8). Com o parâmetro criar, também opcional, indica-se se se deve criar o arquivo no caso de que não exista, por padrão não se cria. Por último, formato nos serve para indicar o formato do arquivo, ASCII é o pré-determinado.

OpenAsTextStream (tipo_acesso,formato)
É o terceiro método para obter um TextStream, a diferença é que se aplica ao objeto File (arquivo) que não vimos, ao invés do objeto FileSystemObject.

Se quisermos criar um objeto TextStream a partir de um FSO necessitamos utilizar um dos dois primeiros métodos, sendo o terceiro útil para criar um TexStream a partir de um objeto File.

O objeto TextStream

Como assinalamos, é o que utilizamos para nos movermos pelo arquivo e realizar as ações sobre o texto, enfocadas à leitura ou à escrita. Têm as seguintes propriedades.

AtEndOfLine vale true se nos encontrarmos ao final da linha do arquivo.
AtEndOfStream vale true se estivermos no final do arquivo.
Colum salva o valor da coluna do caractere atual no qual estamos situados dentro do arquivo.
Line salva o valor da linha atual.

Os métodos do objeto são os seguintes:

Close() fecha o arquivo. Necessário uma vez terminado o trabalho.
Read(numero) devolve um numero de caracteres do arquivo.
ReadAll() lê todo o arquivo e o devolve.
ReadLine() lê uma linha inteira.
Skip(numero) passa um numero de caracteres dado.
SkipLine() quebra de linha.
Write(texto) escreve um texto dado dentro do arquivo
WriteLine(texto) escreve um texto e coloca ao final uma quebra de linha.
WriteBlankLines(numero) coloca um numero dado de quebras de linha.

Estas notas servirão certamente como uma boa referência para realizar qualquer tipo de ação sobre arquivos, mas antes de acabar vamos ver um exemplo completo de trabalho com arquivos. Vamos fazer um pequeno script que cria um arquivo e escreve os números do 0 ao 9. Logo, fecharemos o arquivo e voltaremos a abri-lo para leitura para tirar seu conteúdo na página web.

<%
‘criamos o nome do arquivo
arquivo= request.serverVariables(“APPL_PHYSICAL_PATH”) & “provas.txt”

‘conectamos com o FSO
set confile = createObject(“scripting.filesystemobject”)

‘criamos o objeto TextStream
set fich = confile.CreateTextFile(arquivo)

‘escrevemos os números do 0 ao 9
for i=0 to 9
fich.write(i)
next

‘fechamos o arquivo
fich.close()

‘voltamos a abrir o arquivo para leitura
set fich = confile.OpenTextFile(arquivo)

‘lemos o conteúdo do arquivo
texto_arquivo = fich.readAll()

‘imprimimos na página o conteúdo do arquivo
response.write(texto_arquivo)

‘fechamos o arquivo
fich.close()
%>

Na primeira linha do código criamos o nome do arquivo. O nome do arquivo é uma variável cadeia que contém a rota absoluta do arquivo no sistema do servidor. Como provavelmente ocorra em sua hospedagem ASP, você não sabe em que diretório e disco do servidor estão alojadas sua páginas (a não ser que seja você o administrador ou esteja trabalhando em local). Se for assim, necessitará de algum mecanismo para obter a rota onde estão seus arquivos e onde tem permissões de leitura e de escrita. Com o método
request.serverVariables(“APPL_PHYSICAL_PATH”) obtemos a rota física onde estão nossas páginas. A este caminho concatenamos o nome do arquivo que desejamos criar e já temos a rota completa do arquivo.

O resto de linhas podem ser bem entendidas com os comentários e as notas de cima neste artigo.

É importante assinalar que para ler e escrever em seus diretórios você necessitará as correspondentes permissões de leitura e escrita. Em servidores um pouco mais sérios como os que terá seu provedor de hospedagem necessitará que os outorguem permissões aos diretórios onde for escrever arquivos. As permissões de leitura costumam estar outorgadas desde o princípio.

Isso é tudo por agora, esperemos que este artigo seja bastante útil para resolver suas dúvidas com o tratamento de arquivos de texto em ASP.

Fonte: http://www.criarweb.com/artigos/476.php

Deixe um comentário