Ir para conteúdo
Fórum Script Brasil
  • 0

Lendo E Criando/escrevendo Em Arquivos Com Fso


dark0

Pergunta

Olá pessoal.

Essa semana, eu tive que trabalhar um pouco com arquivos. Então, como eu nunca fui muito de mecher com fso.. fui obrigado à aprender a usar, hehe

Então, eu entendi como funciona esse rolo todo.

Vou dar uns exemplos aqui.. Seguindo então, aqueles tópicos exclusivos de componentes.

Este, então, vamos para FSO.

Inicialmente, não sei se vai ser de muita ajuda à vocês.. mas, vamos ver como fica.

Postem duvidas relativas à isso, neste tópico mesmo.

-------------------------

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

já postei esse tutorial uma vez, mais vou postar de novo pra ficar em destaque:

Pequeno tutorial sobre txt:

Para exemplificar o uso do objeto Server trabalharemos com o ActiveX FileSystemObject. Tal componente possui uma serie de propriedades e métodos para manipulação de arquivos e diretórios do servidor Web.

Para instanciar tal objeto numa página ASP escrevemos o seguinte código:

Set Objeto = Server.CreateObject(“Scripting.FileSystemObject”)
Esse objeto recém instanciado representa o Sistema de Arquivo do servidor Web. Devemos agora criar outro objeto(TextStream), a partir desse, para representar um determinado arquivo. Fazemos isso, utilizando o método OpenTextFile do FileSystemObject:
Set Arquivo = Objeto.OpenTextFile(Nome,modo,cria,formato)
onde:
Nome = Modo de Abertura do arquivo. 1 para leitura, 2 para gravação por cima, 3 para gravação adicional. Cria = Valor Booleano que indica se o arquivo deve ser criado(true) ou não(false) caso não  exista. formato = Indica o formato de gravação do arquivo a ser utilizado. –1 Unicode, 0 Ascii
Para lermos o conteúdo de um arquivo, podemos utilizar os seguintes métodos do objeto TextStream:
Read (quantidade) = Lê um determinado número de caracteres do arquivo ReadLine = Lê uma linha inteira do arquivo ReadAll = Lê o arquivo inteiro de uma só vez
Mas se nos interessar gravar informações no arquivo, os métodos disponíveis são:
Write = Grava uma string no arquivo WriteLine = Grava um string no arquivo, incluindo a quebra de linha WriteBlankLines = Grava um determinado número de linhas em branco num arquivo
Esse componente ActiveX ainda possui as seguintes propriedades:
AtEnOfLine = Indica o fim de uma determinada linha do arquivo AtEnOfStream = Indica o Final do Arquivo Column = Indica em que coluna do arquivo estamos Line = Indica o número da linha atual do arquivo
O código a seguir mostra como abrimos um arquivo localizado no servidor WEB e exibimos seu conteúdo:
<% @Language=vbScript %>
<HTML><HEAD><TITLE>Curso ASP</TITLE></HEAD>
<BODY><CENTER>
<% dim final
   final = "</CENTER></BODY></HTML>"
   On Error Resume Next
   Set Obj = Server.CreateObject("Scripting.FileSystemObject") 
   Set arquivo = Obj.OpenTextFile("D:\pessoas.txt",1)
   if Err then
       Response.write "Ocorreu um erro tentando abrir o arquivo!"
       Response.write final
       Response.End
   end if
   Response.Write "Lista de E-mails<BR>"
   Response.write "<HR>" 
   do while arquivo.AtEndOfStream=false 
     a = arquivo.Readline  
     response.write a & "<BR>"
     a = arquivo.Readline  
     response.write a & "<HR>"
   loop
   Response.Write "Nova Entrada"
   Response.Write "<FORM ACTION=Arquivo2.asp>"
   Response.Write "NOME : <INPUT TYPE=TEXT NAME=NOME><BR>"
   Response.Write "EMAIL : <INPUT TYPE=TEXT NAME=EMAIL><BR>"
   Response.Write "<INPUT TYPE=SUBMIT VALUE=ENVIAR></FORM>"
   REsponse.Write final
   arquivo.close
%>
A próxima página ASP mostra como escrever num arquivo localizado no servidor WEB. Lembrando que essa página deve ser acessada por um formulário WEB com um objeto de NAME=Nome e outro NAME=Email:
<% @Language=vbScript %>
<HTML><HEAD><TITLE>Curso ASP</TITLE></HEAD>
<BODY><CENTER>
<% dim final
   final = "</CENTER></BODY></HTML>"
   On Error Resume Next
   Set Obj = Server.CreateObject("Scripting.FileSystemObject") 
   Application.Lock
   Set arquivo = Obj.OpenTextFile("D:\pessoas.txt",8)
   if Err then
       Response.write "Ocorreu um erro tentando abrir arquivo!"
       Response.write final
       Response.End
  end if
   Arquivo.WriteLine(Request("Nome"))
   Arquivo.WriteLine(Request("Email"))
   arquivo.close
   if Err then
       Response.write "Ocorreu um erro tentando gravar no arquivo!"
       Response.write final
       Response.End
   else
      Response.Write "Dados inseridos com sucesso!" & "<BR>"
      Response.Write "Nome:" & Request("Nome") & "<BR>"
      Response.Write "Email :" & Request("Email")
   end if
   Response.Write final
%>

Fonte: Tutorial escrito por "LINEU ANTONIO DE LIMA SANTOS"

Link para o comentário
Compartilhar em outros sites

  • 0

hehe

valeu o acréscimo ae cyber.

eu resolvi criar este tópico, colocando as coisas que eu procurei, mas não consegui encontrar fresquinhas pra uso wink.gif

mas é isso ae..

quanto mais conteudo no tópico.. melhor..

abraçao

Link para o comentário
Compartilhar em outros sites

  • 0

bom.

primeiro tem que ler.

procurar a linha que tenha o texto procurado;

Como?

Facil!

Use o codigo que eu coloquei no primeiro post, mais especificamente, aquele que passa linha por linha do arquivo.

Depois, use um InStr, pra ver se o texto procurado está naquela linha.

Depois, se encontrar, guarde a linha toda.. inclusive a frase.

aí, depois abra o arquivo para escrita, e substitua a linha original, pela linha alterada.

entendeu a logica?

nunca fiz isso, hehe, mas se fosse fazer, essa foi a primeira idéia que me veio na cabeça

abração

Link para o comentário
Compartilhar em outros sites

  • 0

hehe

eu nunca precisei alterar nada.. pelo menos não com asp..

só com php..

e usei basicamente a logica que te passei..

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
legal hein galera... agora seguinte... vou zuar com vocês...

hehehhehe.....

para ler e editar uma linha especifica no texto???

Como diria Padre Kevedo ISSO NÃO ECZISTE!!! laugh.gif

Não tem como editar um arquivo (minha opinião).

já precisei fazer isso e a saida adotada foi trabalhar com um arquivo temporario. eu lia o que estava em um arquivo e gravava em outro com as alterações depois apagava o primeiro arquivo e renomeava o segundo com o nome do primeiro.

Link para o comentário
Compartilhar em outros sites

  • 0

cyber

e a logica que eu coloquei ali?

ela não funciona?

com php funcionou aqui..

mas nunca tentei com asp..

Link para o comentário
Compartilhar em outros sites

  • 0

pelo que vi até hoje sobre manipulação de arquivos txt tanto via FSO quanto através de Recordset, não é possivel excluir nem editar linhas, apenas inserir no final do arquivo, a lógica que voce colocou é praticamente a mesma q eu usei quando precisei, mais apenas para localizar a informação a ser editada para posterior gravação no arquivo temporário.

Link para o comentário
Compartilhar em outros sites

  • 0

Outra lógica:

Jogar todo o conteudo do arquivo texto para um vetor, cada linha seria seria um elemento do vetor. (da pra fazer com recordset.getrows) ou lendo via FSO e gravando no vetor.

pesquise dentro do vetor e altere o valor da forma desejada.

depois grave todo o conteudo do vetor no arquivo sobrescrevendo o mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0

eu fiz como o cyber disse.. pois não consegui editar o arquivo de jeito nenhum...

então

1- Lê o arquivo... armazena em um vetor

2- cria um arquivo temporario com o conteudo modificado

3- deleta o arquivo original

4- renomeia o temporario...

pronto...

Link para o comentário
Compartilhar em outros sites

  • 0

Cyber,

1- Lê o arquivo já armazenando o valor de cada linha em um array/vetor

2- tratamentos para alterações nas linhas que você quer

3- monte a estrutura do novo conteudo completo

4- RENOMEIE o arquivo original (caso fosse "file.txt" passa a ser "file.txt_temp")

5- RENOMEIE o arquivo "file.txt_temp" para "file.txt"

Quando você RENOMEIA, você realmente RENOMEIA.

Porém, não pode renomear para o mesmo nome, não importando a CAIXA (uppercase/lowercase).

Pois este método..

Link para o comentário
Compartilhar em outros sites

  • 0

fiz um exemplo de edição de arquivos txt com ASP, é bem simples (ta meio corrido aki pra mim) serve apenas como lógica, mais da pra incrementar bem:

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

if request("botao") = "gravar" then
   novotexto = request("texto")
   Set novoarquivo = FSO.OpenTextFile("c:\teste\texto.txt",2)
   novoarquivo.Write(novotexto)
   novoarquivo.close
end if

Set arquivo = FSO.OpenTextFile("c:\teste\texto.txt",1)
Response.Write "Conteudo do arquivo<BR>"
textorecuperado = arquivo.Readall

Response.Write "<Form action='" & request.servervariables("script_name") & "'>"
   Response.Write "<textarea lines=10 rows='20' cols='60' name='texto'>" & textorecuperado & "</textarea><br>"
   Response.Write "<input type=submit name='botao' value='gravar'>"
Response.Write "</form>"

arquivo.close
Set FSO = nothing
%>

Detalhe: não é preciso renomear nem gerar arquivos temporários é só gravar por cima.

Link para o comentário
Compartilhar em outros sites

  • 0

Só não entendi o botão, poderia me explicar melhor?

Como a mesma pagina edita e grava as alterações eu coloquei uma verificação para saber e o botão gravar foi clicado, caso ele tenha sido clicado as alterações no arquivo são gravadas, caso contrario é apenas aberto o arquivo para edição.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim afora entendi, gostaria de saber se é possível, estipular quantidade de arquivos que vão dentro de uma pasta, por ex um pasta de foto, que só receba no máximo 15 arquivos e quando exibir, Gostaria de saber tabém como deletar essas 15 fotos da pasta mas nã apagar a pasta.

Se ainda posso fazer o botão procurar, para o usuario procurar as fotos dentro maquina dele, para depois subir as fotos.

Isso é possível?

Grata pela atenção

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...