|
<< Introdução COM | Componentes de E-mail >>
|
referências >
com > textstream |
|
|
. : : . textstream . : : .
|
Este objecto do
componente FíleSystemObject não necessita de instalação pois vem já
com o PWS ou IIS. Tudo o que tens de fazer é chamar o objecto do mesmo, e
utilizá-lo. Este componente serve para usares ficheiros de texto.
Algo que pode ser útil quando queres guardar informação de rápido acesso, ou
mesmo criar páginas HMTL no momento, do tipo dar a hipótese aos utilizadores
de criarem uma página sua em função de um template do site. Desta forma toda
a página pode ser gerada com este componente e ficar disponível no momento,
e num nível mais alto, ser enviada por attach via e-mail para o utilizador.
Além destas funções podes também fazer procura de ficheiros, e movê-los no
servidor.
Seguem-se duas tabela com as propriedades e métodos para teres uma noção
daquilo que se pode fazer com este objecto.
Métodos do TextStream
| Método |
Tipo |
Descrição |
| Read |
Input |
Lê os caracteres um a
um. |
| ReadLine |
Input |
Lê uma linha inteira. |
| ReadAll |
Input |
Lê toda a informação que
está no ficheiro. |
| Write |
Output |
Escreve toda a
informação que se introduzir, não mudando de linha, sendo a informação
escrita logo a seguir a esta. |
| WriteLine |
Output |
Escreve a informação
enviada, mudando de seguida de linha. |
| WriteBlankLines |
Output |
Introduz uma linha
vazia. |
| Skip |
Input |
Salta um número
específico de caracteres. |
| SkipLine |
Input |
Muda de linha. |
Propriedades do TextStream
| Propriedade |
Descrição |
| AtEndOfLine |
Maneira de se saber se
chegou ao fim da linha. |
| Line |
Devolve o número da
linha onde vamos. |
| Column |
Devolve o número de
caracteres que foram percorridos desde o início da linha. |
| AtEndOfStream |
Maneira de se saber se
chegou ao fim do ficheiro. |
Uma maneira fácil de
perceber o seu processo do TextStream é o de escrever e ler as linhas
de texto do ficheiro criado. Vou mostrar um exemplo de como criar uma página
ASP, que faz uma emulação de um jogo que é uma história em que cada pessoa
vai acrescentando um parágrafo. No final a história até pode ter nexo, ou
pode mesmo ser a maior confusão. Mas isto serve apenas para teres a
percepção de como são usados estes ficheiros, e como este componente
funciona.
Primeiro de tudo fazem-se uns ficheiros de teste, para te aperceberes
daquilo que vais usar.
Para abrir uma conexão
para escrita e leitura de um ficheiro usam-se procedimentos diferentes.
Para escreveres num
ficheiro usa-se a estrutura,
Set ObjectoFicheiro =
CreateObject("Scripting.fileSystemObject")
Set EscreveTexto = ObjectoFicheiro.CreateTextFile (Server.MapPath("ficheiro.txt"),
True) |
Para leres a informação
lá escrita é usada a estrutura,
Set ObjectoFicheiro =
CreateObject("Scripting.fileSystemObject")
Set LerTexto = ObjectoFicheiro.OpenTextFile (Server.MapPath("ficheiro.txt"),
1) |
Desta maneira podes
então criar linhas de texto e lê-las logo a seguir.
<%
Response.Write "Processo: Vai ser criada uma linha de texto.<br><br>"
Set ObjectoFicheiro = CreateObject("Scripting.fileSystemObject")
Set EscreveTexto = ObjectoFicheiro.CreateTextFile (Server.MapPath("ficheiro.txt"),
True)
EscreveTexto.WriteLine("Esta linha está no ficheiro de texto...")
EscreveTexto.Close
Response.Write "Processo: Escreveu uma linha de texto.<br><br>"
Response.Write "Processo: Vai ler linha de texto.<br><br>"
Set LerTexto = ObjectoFicheiro.OpenTextFile (Server.MapPath("ficheiro.txt"),
1)
Response.Write "Processo: A linha lida é: <b>" & LerTexto.Readline & "</b>"
Set LerTexto = nothing
%> |
Neste pequeno script
acima, o CreateObject("Scripting.fileSystemObject") cria
uma conexão ao componente. Desta forma ficas com um objecto criado com a
imagem do mesmo. O CreateTextFile é a forma como se define a criação
de um ficheiro de texto. O Close é a forma para fechar um ficheiro de
texto após escrita. O OpenTextFile abre um ficheiro de texto para
leitura.
Atenção! O ficheiro de texto que crias, tem de estar num
directório com permissões de escrita!
Código fonte deste script:
texto.zip
Ao executares este
script, irás obter um resultado semelhante a este:
Processo: Vai ser criada
uma linha de texto.
Processo: Escreveu uma linha de texto.
Processo: Vai ler linha de texto.
Processo: A linha lida é: Esta linha está no ficheiro de texto... |
E agora, vou mostrar
como criar a página ASP da história que nunca acaba. A estrutura é um pouco
básica, mas necessita de explicação prévia:
1 - Formulário para
input do utilizador;
2 - Procedimento de escrita de nova linha para a história;
3 - Procedimento de leitura de texto;
4 - Procedimento para saber se já existe ficheiro.
O facto de se procurar
se já existe um ficheiro de história deve-se ao facto de que o FileSytem
devolve erro se não encontrar o ficheiro. Desta forma cria-se um por cada
vez que ele não existir.
A maneira de se saber se o ficheiro existe é de usar o próprio componente e
usar um método chamado FileExists, que devolve True ou False
consoante exista ficheiro que se procura ou não. Assim, podes então
construir todo o código.
<%
Sub procura_ficheiro()
Set ProcuraFicheiro = Server.CreateObject("Scripting.fileSystemObject")
If Not ProcuraFicheiro.FileExists(Server.MapPath("historia.txt"))
Then
Set ObjectoFicheiro = CreateObject("Scripting.fileSystemObject")
Set EscreveTexto =
ObjectoFicheiro.CreateTextFile(Server.MapPath("historia.txt"), True)
EscreveTexto.WriteLine("ERA UMA
VEZ.....")
EscreveTexto.Close
End If
End Sub
Sub escrita_de_linha()
Set ObjectoFicheiro = CreateObject("Scripting.fileSystemObject")
Set EscreveTexto = ObjectoFicheiro.OpenTextFile (Server.MapPath("historia.txt"),
8, True)
If len(Request.Form("linha")) > 1 Then
EscreveTexto.WriteLine(Request.Form("linha"))
End If
EscreveTexto.Close
End Sub
Sub leitura_de_ficheiro()
Set ObjectoFicheiro = CreateObject("Scripting.fileSystemObject")
Set LerTexto = ObjectoFicheiro.OpenTextFile (Server.MapPath("historia.txt"))
While NOT LerTexto.AtEndOfStream
Response.Write " | " &
LerTexto.ReadLine & "<br>"
Wend
Set LerTexto = Nothing
End Sub
Sub formulario()
%>
<br><br><p>
<FORM action="historia.asp" method="POST">
Novo Parágrafo: <input type="text" name="linha" size="60"
MaxLength="140"><br>
<input type="submit" name="submeter" Value="Acrescentar">
</FORM>
</p>
<%
End Sub
If Request.Form("submeter") = "Acrescentar" Then
escrita_de_linha
End If
procura_ficheiro
leitura_de_ficheiro
formulario
%> |
Aspecto do resultado
deste script:
| ERA UMA VEZ.....
| Um gato maltês...
| Fez-te nas barbas...
| E não soube o que fez...
| etc... |
O resultado da história
nunca é igual de site para site. Cada utilizador chega e escreve uma nova
linha à sua maneira.
Código fonte deste
script:
historia.zip
Outra forma de usares
este útil componente é na contagem dos acessos a um site. Para isso basta
criares um ficheiro ASP que pode ser incluído em qualquer lado, contando
assim os acessos ao nosso site. O esquema é muito simples. Tens o ficheiro
com um valor, tiras o valor, incrementa-lhe um valor, e voltas a lá
introduzir, mas neste caso sempre a criar o ficheiro gravando o novo por
cima do antigo.
Tudo aquilo que vai ser usado foi já visto no exemplo anterior, só o uso
do objecto é que vai ser um pouco diferente.
<%
Set ObjectoFicheiro = CreateObject("Scripting.fileSystemObject")
If Not ObjectoFicheiro.FileExists(Server.MapPath("contador.txt"))
Then
Set EscreveTexto =
ObjectoFicheiro.CreateTextFile(Server.MapPath("contador.txt"), True)
EscreveTexto.WriteLine("0")
EscreveTexto.Close
End If
Set LerTexto = ObjectoFicheiro.OpenTextFile(Server.MapPath("contador.txt"),1)
Valor = LerTexto.ReadLine
Set LerTexto = Nothing
Set EscreveTexto =
ObjectoFicheiro.CreateTextFile(Server.MapPath("contador.txt"), True)
EscreveTexto.WriteLine(valor + 1)
EscreveTexto.Close
Response.write "Houveram <b>" & (valor + 1) & "</b> acessos...<br>"
%> |
Neste caso, se o
ficheiro ainda não existir, é criado no momento de execução do scritp, e
inicializando o contador com o valor "0", ou outro valor com que queiras
iniciar a contagem.
Aspecto do resultado deste script:
Por cada entrada no
site o valor é incrementado, ou seja, por cada vez que o script é executado.
Podes fazer múltiplos refrescamentos da página para veres o contador a
funcionar.
Código fonte deste script:
contador.zip
Estes são apenas alguns
exemplos do que podes fazer com este componente, basta puxar pela imaginação
e criatividade!
<< Introdução COM | Componentes de E-mail >>
|