Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mjs

Contador, falta uma coisa

Recommended Posts

Pessoal estou desenvolvendo um contador simples que vai computar os page views, mas eu quero que ele sempre adicione um número no arquivo e não adicione do lado, como está acontencendo, vejam aqui:<%Dim Lercont, GravarCont, fs,linhaSet fs = Server.CreateObject("Scripting.FileSystemObject")Set Lercont = fs.OpenTextFile(Server.MapPath("/dicaslnx/db/Contador/contador.txt"),1)Do While Lercont.AtEndOfStream <> Truelinha = Lercont.ReadLineResponse.Write linhaLoopLercont.CloseSet GravaCont = fs.OpenTextFile(Server.MapPath("/dicaslnx/db/Contador/contador.txt"),8) linha = (int(linha + 1)) Response.Write linha %>Funciona, ele adicona se eu colocar o GravaCont.Write = linha, mas ele grava assim 123456 em sequência... mas eu queria que ele não adicionasse um ao lado do outro sim somasse e deixa o arquivo apenas com o número da visita, ou então que ele limpasse o arquivo depois de ler o número e gravasse o novo número, alguém tem alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kara, sobre o que tah havendo não posso te ajudar, pois ainda naum manjo nada de FSO...Mais clica aqui e veja um tutorial de contador usando FSO ;)

Valeu cara!!! Vou olhar sim, o problema é que eu até consegui resolver, eu mando ele ler a última linha, somar um ao número, e gravar uma nova linha, o problema é que ele vai gravando cada visita em uma linha, aí putz, o arquivo com 50 visitas e 50 linhas vai ficar enorme, é meio inviável esse meio, mas por enquanto tá quebrando um galho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Bicicleta, mas o código que tem na página faz a mesma função que o meu, o meu só está um pouco diferente:

 

<%Dim Lercont, GravarCont, fs,linhaSet fs = Server.CreateObject("Scripting.FileSystemObject")Set Lercont = fs.OpenTextFile(Server.MapPath("/dicaslnx/db/Contador/contador19786.txt"),1)Do While Lercont.AtEndOfStream <> Truelinha = Lercont.ReadLineLoopSet GravaCont = fs.OpenTextFile(Server.MapPath("/dicaslnx/db/Contador/contador19786.txt"),8)	Do While Lercont.AtEndOfStream = True	linha = (int(linha + 1))	GravaCont.WriteLine linha	LoopDo While Lercont.AtEndOfStream <> TrueResponse.Write Lercont.ReadLineLoop%>

Mas computa do mesmo jeito o voto, linha a linha, eu queria um código que usasse uma linha apenas para não deixar o arquivo enorme, valeu... Ainda vou procurar se tem como fazer a computação em uma linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não lembro o comando de cabeça mas tu pode apagar a linha...Assim tu le ela, soma um, APAGA e grava o novo valor...Procura o comando de apagar no help do FSO...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa esse código e vê se é o q você quer

set fso = createobject("Scripting.FileSystemObject")
if fso.FileExists(Server.MapPath("contador.txt")) then
set act = fso.opentextfile(server.mappath("contador.txt"))
Session("visitas") = clng(act.readline)
act.close
counter = Session("visitas") + 1

Set act = fso.CreateTextFile(server.mappath("contador.txt"), true)
act.WriteLine(counter)
act.Close
else
set contador = fso.CreateTextFile(Server.MapPath("contador.txt"),false)
contador.write"1"
contador.close
session("visitas")=1
set contador = nothing	
end if
set fso = nothing

QQ coisa poste aqui q te ajudamos.

 

Valeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.