Foros del Web » Programando para Internet » ASP Clásico »

formulario de busqueda sin BD

Estas en el tema de formulario de busqueda sin BD en el foro de ASP Clásico en Foros del Web. Hola a todos de nuevo, quisiera saber si existe la posibilidad sin utilizar frontpage de ralizar una busqueda sobre la web o un directorio de ...
  #1 (permalink)  
Antiguo 02/07/2003, 09:17
Avatar de tatoman  
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 22 años, 2 meses
Puntos: 1
formulario de busqueda sin BD

Hola a todos de nuevo, quisiera saber si existe la posibilidad sin utilizar frontpage de ralizar una busqueda sobre la web o un directorio de la misma sin necesidad de que los datos esten contenidos en la BD. Es decir, quiero buscar en los contenidos de las paginas.

Frontpage lo hacia muy bien, pero he dejado de utilizarlo por la cantidad de problemas que da en general, asi que ahora toda la programacion de la web es en DW MX sobre ASP.

Gracias de antemano y feliz veranito a todos, aver esas chiquitas playeras y todo lo demas
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es
  #2 (permalink)  
Antiguo 16/07/2003, 15:13
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 4 meses
Puntos: 4
Si, puedes utilizar alguno de estos códigos: Los saqué de scriptmaster.

Código:
<!-- Copiar en Search.asp -->

<HTML>
<BODY>
<FORM METHOD=POST ACTION="TextSearch.asp">
  Enter text to search for:
  <INPUT TYPE=TEXT NAME=SearchText>
  <P>
  <INPUT TYPE=SUBMIT VALUE="Begin Search!">
</FORM>
</BODY>
</HTML>

<!-- Copiar en TextSearch.asp -->

<HTML><BODY>
<B>Search Results for <%=Request("SearchText")%></B><BR>

<%
Const fsoForReading = 1

Dim strSearchText
strSearchText = Request("SearchText")

'Now, we want to search all of the files
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")


Dim objFolder
Set objFolder = objFSO.GetFolder(Server.MapPath("/"))

Dim objFile, objTextStream, strFileContents, bolFileFound
bolFileFound = False

For Each objFile in objFolder.Files
  If Response.IsClientConnected then
    Set objTextStream = objFSO.OpenTextFile(objFile.Path,fsoForReading)

    strFileContents = objTextStream.ReadAll

    If InStr(1,strFileContents,strSearchText,1) then
       Response.Write "<LI><A HREF=""/" & objFile.Name & _
                      """>" & objFile.Name & "</A><BR>"

       bolFileFound = True
    End If

    objTextStream.Close
  End If
Next

if Not bolFileFound then Response.Write "No matches found..."

Set objTextStream = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
%>
</BODY></HTML>
Y el otro, es un más largo (espere que entre en este mensaje)
Código:
Search Button Code: 
-----------------------------------------


<table cellspacing=2 cellpadding=2 border=0>
<tbody> 
<tr valign=bottom align=middle> 
<td bgcolor="#8CA6CE"><font color="#FFFFFF"><b><font size="2" face="Arial, Helvetica, sans-serif">SEARCH</font></b></font></td>
</tr>
<tr valign=top align=middle> 
<td> 
<table cellspacing=0 cellpadding=1 width=171 
border=0 bgcolor=#8CA6CE>
<tbody> 
<tr> 
<td width="100%"> <font face="verdana, arial, helvetica" 
size=-1><small> </small></font> 
<table cellspacing=0 cellpadding=4 width="100%" 
bgcolor=#8CA6CE border=0>
<tbody> 
<tr> 
<!-- 
The chuck of code generates the search box. Every page that has a search box needs it. 
//-->
<form action="search.asp" method="post">
<td align=left bgcolor="#FFFFFF"> 
<input class=formcreate type=text 
name=txtKeyWord size="10">
<input class=formcreate type=submit value="GO" name=search>
</td>
</form>
<!--
End of the search form
//-->
</tr>
</tbody> 
</table>
</td>
</tr>
</tbody> 
</table>
</td>
</tr>
</tbody> 
</table>

 




Search.asp Code:
----------------------------------------
<%@ Language=VBScript %>

<%

Option Explicit
Response.Buffer = True

' Set up some FileSystem objects.
dim objFS, objFolder, objFiles, File, FileName, objCheckFile, strSitePath
set objFS = server.CreateObject("Scripting.FileSystemObject")

dim strListofFiles, arrFileList, strPageTitle, iReturnCount
dim objFolders

strListofFiles = ""
iReturnCount = 0

' The search values, search space, and the return value
dim strKeyWord, strFileContents, returnValue, arrKeyWords
dim bKeyWordFound, i, j

' Get the Physical path to the current directory
strSitePath = Server.MapPath(".")

' Grab the keyworlds and split them into an array
strKeyWord = Trim(request("txtKeyWord"))
arrKeyWords = split(strKeyWord," ")

' Get the list of files.
Set objFolder = objFS.GetFolder(strSitePath)


' Sub that grabs all the ".htm" & ".html" files in the given folder and
' recurses through all subfolders. 
sub getCompleteFileList(inFolder, Path)

dim oFiles, oFolders, Folder, sPath

' Get all the files and subfolders.
Set oFiles = inFolder.Files
Set oFolders = inFolder.SubFolders

' If we have a subfolder we need the partial path
if (Path <> "") then
sPath = Path + "\"
end if

' Add each ".htm" & ".html" file to the list
For Each File in oFiles
FileName = File.Name

if((Lcase(right(FileName,4)) = ".htm") OR (Lcase(right(FileName,5)) = ".html")) then
if (strListofFiles = "") then
strListofFiles = sPath + FileName
else 
strListofFiles = strListofFiles + "," + sPath + FileName
end if 
end if
Next

' Check all the subfolders for ".htm" & ".html" files
For Each Folder in oFolders
if (Folder.Name <> "images" AND Folder.Name <> "stats") then 
call getCompleteFileList(Folder, sPath + Folder.Name)
end if
Next

' Clean up 
set File = Nothing
set oFiles = Nothing
set Folder = Nothing
set oFolders = Nothing

end sub

%>
<html>
<head>
<title>Search </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table cellspacing=7 cellpadding=2 border=0 width="100%">
<tbody> 
<tr> 
<td valign=top align=middle> 
<table cellspacing=0 width="100%" border=0>
<tbody> 
<tr> 
<td align=middle bgcolor=#3366cc> 
<table cellspacing=0 cellpadding=2 width="100%" border=0>
<tbody> 
<tr> 
<td align=middle bgcolor=#ffffff> 
<table cellspacing=0 width="100%" border=0>
<tbody> 
<tr bgcolor="#F2F2F2"> 
<td align=middle colspan=4 bgcolor="#F2F2F2"> 
<div align="left"><b>Search Results</b></div>
</td>
</tr>
<tr bgcolor="#F2F2F2"> 
<td align=middle colspan=4 bgcolor="#FFFFFF"> 
<div align="left"></div>
<p align="left"> 
<!-- 
The Start of the search specific html code. 
It needs a look and feel update. 
//-->
</p>
<table width="95%" border="0" cellspacing="1" cellpadding="1" align="center">
<tr bgcolor="#330099"> 
<td bgcolor="#FFFFFF"> 
<div align="left"><font color="#FFFFFF"><b> <font color="#666666">You 
searched for</font><font color="#000000"> </font></b><font color="#000000"><font color="#FF0000"><%= strKeyWord%></font></font></font></div>
</td>
</tr>
<%
' Only to the search if we got at least one keyword
if (strKeyWord <> "") then

' Call the sub that gets all the files 
call getCompleteFileList(objFolder, "")

' Take the big ole string the contains all the files seperated by commas and chop it up.
arrFileList = split(strListofFiles,",")

For i=0 to UBound(arrFileList)

' Open the current file and read everything into a single string.
' If the files are huge this could eat a lot or resources.
Set objCheckFile = objFS.OpenTextFile(strSitePath + "\" + arrFileList(i),1,false,0)
strFileContents = objCheckFile.ReadAll

' Default the search flag to false.
bKeyWordFound = false

' For each keyword entered search the file.
for j = 0 to UBound(arrKeyWords) 
returnValue = InStr(1,strFileContents,arrKeyWords(j),1)

' If the returnValue isn't zero the keyword was found
' Set the search flage to true and short cut out of the loop.
if (returnValue <> 0) then
bKeyWordFound = true
j = UBound(arrKeyWords)
end if
next

' If a keyword was found include this file in the list.
if (bKeyWordFound) then

' Keep track of the number of results and grab the title of the page for the search display 
iReturnCount = iReturnCount + 1

dim startChar, endChar
startChar = InStr(1,strFileContents,"<title>",1)
endChar = InStr(1,strFileContents,"</title>",1)

if (startChar = 0 OR endChar = 0 OR ((startChar + 7) > (endChar - 7))) then
%>
<tr> 
<td><font face="Arial, Helvetica, sans-serif" size="2"><a href="<%= arrFileList(i) %>"><%= arrFileList(i) %></a> <%= arrFileList(i) %></font></td>
</tr>
<% 
else 
strPageTitle = mid(strFileContents,InStr(1,strFileContents,"<title>",1) + 7, InStr(1,strFileContents,"</title>",1) - InStr(1,strFileContents,"<title>",1) - 7)

if (strPageTitle = "") then
strPageTitle = arrFileList(i)
end if
%>
<tr> 
<td><font face="Arial, Helvetica, sans-serif" size="2"><a href="<%= arrFileList(i) %>"><%= strPageTitle%></a> <%= arrFileList(i) %></font></td>
</tr>
<% 
end if
end if

' Close the file so we can open another one. 
objCheckFile.Close
Next

end if
%>
<tr> 
<td><font face="Arial, Helvetica, sans-serif" size="2" color="#999999"><%= iReturnCount%> pages found</font></td>
</tr>
<tr> 
<td>&nbsp;</td>
</tr>
<%

' Clean up all the objects used.
set objCheckFile = Nothing
set File = Nothing
set objFiles = Nothing
set objFolder = Nothing
set objFS = Nothing

%>
</table>
<!-- the end of the search html -->
</td>
</tr>
</tbody> 
</table>
</td>
</tr>
</tbody> 
</table>
</td>
</tr>
</tbody> 
</table>
</td>
</tr>
</tbody> 
</table>
<p>&nbsp;</p>
</body>
</html>
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #3 (permalink)  
Antiguo 17/07/2003, 02:07
Avatar de tatoman  
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 22 años, 2 meses
Puntos: 1
Muchisimas gracias, ademas funcionan a las mil maravillas. Los implemento ahora mismo en la webeeeeee, saludos y feliz verano, yo ya me voy a la playita...
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:35.