ASPcenter.net

1 marzo 2010

Un motore di ricerca su file di testo in ASP

Archiviato in: Search Engine — Tag:, , , , — lukeonweb @ 09:55

In diversi articoli in cui abbiamo visto come effettuare ricerche classiche su database e su file XML. Vediamo adesso in questo articolo come soddisfare la particolare esigenza di alcuni, ovvero come effettuare una ricerca su file di testo con ASP.

Lo script che andiamo ad esaminare legge file testuali di qualsiasi formato (.txt, .doc, .html, etc…) da una cartella predefinita che, per simpatia, chiamiamo database.

Il file cerca.asp contiene il modulo di ricerca e l’area per l’esposizione dei risultati.


Vediamo il codice:

<%@LANGUAGE = VBScript%>
<%
    Dim testo
    testo = Server.HTMLEncode(Request.QueryString("testo"))
%>
<!--#include file="cerca.inc"-->
<html>
<body>

<form method="get" action="cerca.asp">
<input type="text" name="testo">
<input type="submit" value="Cerca">
</form>

<%
    If testo <> "" Then
        Response.Write cerca(testo)
    End If
%>

</body>
<html>

Nell’header della pagina recuperiamo dal modulo il testo da ricercare ed includiamo il file cerca.inc che contiene la funzione cerca, il vero motore della nostra applicazione di ricerca.

Vediamo il codice di quest’ultimo:

<%
    Function cerca(cosa)
        Dim fso, cartella, file, quale
        Dim contenuto, risultato, sottocartella
        Set fso = Server.CreateObject("Scripting.FileSystemObject")
        Set cartella = fso.GetFolder(Server.MapPath("database/"))
        For Each file In cartella.Files
            Set quale = fso.OpenTextFile(file.Path, 1, False)
            contenuto = LCase(quale.ReadAll())
            quale.Close
            Set quale = Nothing
            If Instr(contenuto, cosa) <> 0 Then
                risultato = risultato & "<br>" & file.Name
            End If
        Next
        For Each sottocartella In cartella.SubFolders
            risultato = risultato & cerca(cosa, sottocartella)
        Next
        Set sottocartella = Nothing
        Set fso = Nothing
        cerca = CStr(risultato)
    End Function
%>

Il codice va tenuto “cosi com’è”.

Il suo compito viene svolto come segue: dichiariamo le variabili utili all’applicazione, crea un oggetto file system ed apre la cartella database; vengono poi effettuati una serie di controlli di iterazione e condizionali per costruire l’output che viene rilasciato nel file di front-end esaminato in precedenza.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress