Salve a Tutti Dopo un anno che ho cambiato lavoro (progetto tetti e strutture in legno) questa sera mi è tornata la voglia di scrivere qualche riga di codice e così se a qualcuno interessa metto a disposizione il codice di un semplice motore di ricerca per il proprio sito.
Buone ferie


Pagina che richiama la classe
codice:
<%
Dim i
Set MioMotore = New Motore
MioMotore.Cerca("Una Due o N parole")
For i = 1 to MioMotore.Numerofile
	Response.write "
NomeFile = " & MioMotore.FileName(i)
	Response.write "
PathFileLink = " & MioMotore.PathFile(i)
	Response.write "
Estensione File = " & MioMotore.ExtFile(i)
	Response.write "
"
Next
%>
Classe contenuta nel file Motore.asp
libero e personalizzabile a proprio gusto e piacere
codice:
<%
Class Motore
	Private MatFile()
	Private i
	Public Numerofile	
	Public function Cerca(Testo)
		Dim fso
		Set fso = CreateObject("Scripting.FileSystemObject")
			Call Esplora (fso,Testo,Server.MapPath("."),"")
		Set fso = Nothing
	End function
	Public Function FileName(i)
		FileName = MatFile(0,i)
	End Function
	Public Function PathFile(i)
		PathFile = MatFile(1,i)
	End Function
	Public Function ExtFile(i)
		ExtFile = MatFile(2,i)
	End Function
	Private Function FileExt(NomeFile)
		FileExt = Right(NomeFile,Len(NomeFile)-instrrev(NomeFile,"."))
	End Function	
	Private Sub Esplora(fso,Testo,Cartella,Path)
		Dim fol
		Dim f
		Dim SubFols
		Dim TestoCerca
		Dim TestoTrovato
		Dim j
		Set fol = fso.GetFolder(Cartella)
		Set SubFols = fol.subfolders
		For each SubFol In SubFols
			Call Esplora(fso,Testo,SubFol.Path,Path & "/" & SubFol.Name)
		Next		
		Set Files = fol.files
		For each File In Files
			Set f = fso.OpenTextFile (File.Path,1)      
				 If not f.AtEndOfStream Then
				 	TestoTrovato = 0
				 	TestoFile = f.readall
				 	TestoCerca = Split(Testo," ")
					For j = 0 to Ubound(Testocerca)
						If Instrrev(TestoFile,Testocerca(j)) Then
							TestoTrovato = TestoTrovato+1
				 		End If
				 	Next
				 	If TestoTrovato = Ubound(Testocerca)+1 Then
				 		i = i + 1
						Redim Preserve MatFile(2,i)
						MatFile(0,i) = File.Name
						MatFile(1,i) = Path
						MatFile(2,i) = FileExt(File.Name)
						Numerofile = Numerofile + 1
					End If
				End If
			Set f = nothing
		Next
	End Sub
End Class
%>