webForumDet fria alternativet

HitCounter

ASP

0 svar · 897 visningar · startad av Razor

Medlem sedan maj 200067 inlägg
Frågan#1

Nedanstående script består av en klass som lämpligen läggs i en separat fil och inkluderas mha SSI i de filer där den används samt en exepelfil som använder klassen.

Observera att klassen innehåller två funktioner. En för att räkna upp räknarvärdet med 1, samt en för att bara läsa av räknarvärdet utan att räkna upp.

' Klassfilen (counter.asp)...
<%

' En class som räknar träffar av Razor (Lars Jonsson), www.razorsedge.nu, razors.edge@swipnet.se

Class HitCounter

' Deklarationer.
Private objCounterFile
Private objReadCounterFile
Private objWriteCounterFile
Private strCounterFile
Private intCounterHits

' Funktionen för att räkna upp och läsa av besöksräknaren.
Public Function CountHit(strCounterFile)

	' Skapar ett filsystemsobjekt.
	Set objCounterFile = Server.CreateObject("Scripting.FileSystemObject")

	' Skapar ett textfilsobjekt för läsning.	
	Set objReadCounterFile = objCounterFile.OpenTextFile(strCounterFile, 1, True)

	' Om filen är tom skall räknarens startvärde vara 0.
	' Endast sista raden i filen räknas.
	If Not objReadCounterFile.AtEndOfStream Then
		' Läser av eventuellt räknarvärde.
		intCounterHits = Trim(objReadCounterFile.ReadLine)
		If intCounterHits = "" Then 
			intCounterHits = 0
		End If
	Else
		intCounterHits = 0
	End If

	' Stänger och dödar textfilsobjektet.
	objReadCounterFile.Close
	Set objReadCounterFile = Nothing

	' Räknar upp räknarvärdet.
	intCounterHits = intCounterHits + 1

	' Skapar ett textfilsobjekt.
	' Om filen finns skrivs den över. Annars skapas den.
	Set objWriteCounterFile = objCounterFile.CreateTextFile(strCounterFile, True)

	' Sparar det nya räknarvärdet i textfilen.
	objWriteCounterFile.WriteLine(intCounterHits)

	' Stänger och dödar textfilsobjektet.
	objWriteCounterFile.Close
	Set objWriteCounterFile = Nothing

	' Stänger och dödar filsystemsobjektet.
	Set objCounterFile = Nothing

	' Returnerar räknarvärdet till anroparen.
	CountHit = intCounterHits

End Function

' Funktion för att läsa av besöksräknarens värde utan att räkna upp.
Public Function GetHits(strCounterFile)

	' Skapar ett filsystemsobjekt.
	Set objCounterFile = Server.CreateObject("Scripting.FileSystemObject")

	' Skapar ett textfilsobjekt för läsning.	
	Set objReadCounterFile = objCounterFile.OpenTextFile(strCounterFile, 1, True)

	' Om filen är tom skall räknarens startvärde vara 0.
	' Endast sista raden i filen räknas.
	If Not objReadCounterFile.AtEndOfStream Then
		' Läser av eventuellt räknarvärde.
		intCounterHits = Trim(objReadCounterFile.ReadLine)
		If intCounterHits = "" Then 
			intCounterHits = 0
		End If
	Else
		intCounterHits = 0
	End If

	' Stänger och dödar textfilsobjektet.
	objReadCounterFile.Close
	Set objReadCounterFile = Nothing

	' Stänger och dödar filsystemsobjektet.
	Set objCounterFile = Nothing

	' Returnerar räknarvärdet till anroparen.
	GetHits = intCounterHits

End Function

End Class
%>

' En exempelfil som använder klassen för att räkna upp ett räknarvärde...
<!--#include file="counter.asp"-->

<%
Dim newValue
Dim myCounter

' Skapa ett objekt av HitCounter-klassen.
Set myCounter = New HitCounter
' Räkna upp räknarvärdet och returnera det nya värdet.
newValue = myCounter.CountHit(Server.MapPath("counter.txt"))
' Döda objektet.
Set myCounter = Nothing

' Visa upp det nya värdet.
Response.Write(newValue)
%>

Användning: Skapa en tom textfil för varje dokument där du vill räkna träffar. Lägg lämpligen dessa textfiler i samma mappar som dokumenten.

Skapa sedan objekt av klassen och anropa önskad funktion i de dokument där du vill läsa av / räkna upp räknarvärdet, enligt ovanstående exempelfil.

Bägge funktionerna tar sökvägen till textfilerna som enda argument.

Maila hjärna vid frågor!
Mvh Razor http://www.razorsedge.nu
mailto:razors.edge@swipnet.se

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)