Newsgroup: it.comp.lang.javascript
Titolo: Ricerca su file

vorrei un aiuto su come creare un modulo java per ricercare parole su un
file-archivio. Praticamente la procedura semplificata di come agisce un
motore di ricerca sul suo archivio interno.
ciao

..qualche msg. fa l'argomento è stato affrontato...
--
Bye
Ro<*¿*>berto

Forse lo conosci e forse no, ma potrebbe essere quello che cerchi...
I file importanti sono i primi due:
esempio.html (solo perche' definisce i frame) e ric2.html che contiene il
"motore" di ricerca.
ric3.html invece mostra i risultati, mentre i file
pagina01.html
pagina02.html
pagina03.html
pagina04.html
Sono le pagine contenute nel database (nel messaggio ne ho messa una sola,
tanto sono tutte uguali: al loro posto dovrai mettere le pagine linkate).
Una variante consiste nel mettere lo script in un file.js, ma se lo fai
assicurati che non possa essere intrapresa alcuna ricerca finche' il file.js
non sia stato completamente caricato.
Script offerto da HTML point e commentato da Pasquale Annunziata
(
pasq...@mclink.it
)
L'uso e la diffusione di questo codice è gratuita per siti non commerciali.
Vai a 
http://www.html.it/jscript
 se vuoi attingere ad un database con
centinaia di esempi.
<<<<<<<<<<<<<<<<<<<<esempio.html>>>>>>>>>>>>>>>>>>>>>>>>>>>
<HTML>
<HEAD>
<TITLE>MOTORE DI RICERCA</TITLE>
 <style type="text/css">
 A:link, A:visited { text-decoration: none }
 A:hover { text-decoration: underline }
 </style>
<Script language="JavaScript" Src="script.js"></Script>
<link rel=stylesheet href="style.css" type="text/css">
<script language="JavaScript">
 function writeme(say, p){
   if ( p==1) self.status="W W W . H T M L . I T " + say;
   else self.status="W W W . H T M L . I T [" + say + "]";
    }
 function wdef(text){
 self.status="W W W . H T M L . I T"
   }
</script>
</HEAD>
<BODY BGCOLOR="white" vlink="blue" link="blue">
<BR>
<div align="center">
<FONT SIZE=4 FACE="VERDANA">
<a href="
http://www.html.it
" onmouseover="writeme('Pagina principale') ;
return true" onmouseout="wdef()">Pagina principale</a><br><br>
<a href="
http://www.html.it/jscript
" onmouseover="writeme('Javascript') ;
return true" onmouseout="wdef()">Javascript</a><br><br>
<a href="
http://www.html.it/applet
" onmouseover="writeme('applet Java') ;
return true" onmouseout="wdef()">Applet Java</a><br><br>
<a href="
http://www.html.it/font
" onmouseover="writeme('True type font') ;
return true" onmouseout="wdef()">True type font</a><br><br>
<a href="
http://www.html.it/dynamic
" onmouseover="writeme('Dynamic HTML') ;
return true" onmouseout="wdef()">dynamic HTML</a><br><br>
<BR><BR>
</FONT>
</div>
</BODY>
</HTML>
<<<<<<<<<<<<<<<<<<<<<<<EoF>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<Ric2.html>>>>>>>>>>>>>>>>>>>>>>>>>
<html>
<head>
</head>
<BODY  bgcolor="#004080"  text=white>
<center>
<form name="searchform">
<FONT face=arial,helvetica><B>Esempio di ricerca in
JavaScript</B></FONT><BR>
<input type=text name="searchwords" value="" size="20">
<input type=button name=startsearch value="Ricerca"
onClick="searchAll(this.form.searchwords.value.toLowerCase())">
<INPUT TYPE="RESET" NAME="cancella" VALUE="Cancella">
</form></center>
<script language=javascript>
//Script Author - P.Annunziata
//E-Mail : 
mc0...@mclink.it
Aut="P.Annunziata";
 function makeArray(n) {
                this.length = n;
                for (var k = 1; k <= n; k++) {
                this[k] = "";
                }
                return this;
        }
//ora inseriamo le specifiche delle funzioni di ricerca
function stripInput(key) {
 while(key.substring(0,1) == ","  || key.substring(0,1) == " " ||
key.substring(0,1) == '"' )
  key = key.substring(1,key.length);}
 while(key.substring(key.length-1,key.length) == "," ||
key.substring(key.length-1,key.length) == " " ||
key.substring(key.length-1,key.length) == '"') {
  key = key.substring(0,key.length-1);}
 return key;
}
function parseIt(key) {
 key = stripInput(key);
 key+=",";
 var y = 1;
while(key.indexOf(",") > 0) {
 var pos = key.indexOf(",");
 keywords[y]=key.substring(0,pos);
 keywords[y] = stripInput(keywords[y]);
//alert(keywords[y]);
 y++;
 if(y > 11) {
  writeOutput("<body bgcolor=white text=black><B>Troppe parole da
cercare</B></body>");
  return -1;}
 key=key.substring(pos+1,key.length);}
 return y-1;
}
var keywords = new makeArray(11);
file://initialize search keyword array
function clearSearch(form) {
 for(var x=1;x <= 11; x++) {
  keywords[x]=""; }
}
function writeOutput(outString) {
 parent.output.document.open();
 parent.output.document.write(outString);
 parent.output.document.close();
}
        function dataEntry (){
                this.v1= "";
                this.v2="";
                return this;
        }
function makeRecordLinks(size) {
 this.length = size;
  for (var r=1; r<= size; r++) {
           this[r] = new dataEntry();
           this[r].v1= v1[r];
           this[r].v2 = v2[r]; }
                  return this;  }
function searchAll(keyword) {
var nw=1;
 clearSearch(document.searchform);
 var x = parseIt(keyword);
 if(x == -1) { //abort on failed parse
  return;}
 if(keyword =="" || keyword.length < 2) {
  writeOutput("<body bgcolor=white text=black><font
face=arial,helvetica><B>Chiave di ricerca non valida.<P>Per avere una chiave
di ricerca valida bisogna:<p><ul><li>NON lasciare il campo vuoto<li>inserire
almeno DUE caratteri</ul></b></font>");
  return; }
 parent.output.document.open();
 parent.output.document.clear();
 parent.document.close();
 while(keywords[nw].length > 1) {
  search(new  makeRecordLinks(records_count),keywords[nw]);
  nw++;}
  if (navigator.appName != "Netscape"){
   parent.output.document.close();}
}
function printRecords(records,q) {
 while(Aut!="P.Annunziata") {};
 parent.output.document.write("<tr><td>" + records[q].v1 +"</td></tr>");
}
function search(records, keyword) {
var rec_number=0;
var hit=0;
var finds=0;
 parent.output.document.write("<body bgcolor=white text=black>");
 parent.output.document.write(" <font face=Arial> Risultato della ricerca
della parola: <b> " +keyword +"<p>");
 parent.output.document.write("<table border=1>");
        for (q=1; q<=records.length; q++) {
   search_parm=records[q].v2.toLowerCase();
                         if (search_parm.indexOf(keyword) != -1) {
                      hit++;finds++;
                                if(hit < 2)
   printRecords(records,q);
}
                        }
           //reset hit count for next search
       hit=0;
 } //closes the "for" loop
   parent.output.document.write("</table>"  +"<br><br>");
        }
//  SEZIONE DATI
//definiamo le arrays dei dati
var records_count=0;
v1=new makeArray(records_count);
v2 = new makeArray(records_count);
var a=0;
////////////////////////////////////////////////////////////////////////////
//////////////
// DEFINIAMO LE PAGINE DA INSERIRE NEL DATABASE //
////////////////////////////////////////////////////////////////////////////
////////////
a += 1
 v1[a] = "<a href=prova01.htm target='_parent'><strong>Guida
JavaScript</strong></a><b> - Breve guida javascript</b>"
 v2[a] = "guida introduzione javascript"
a += 1
 v1[a] = "<a href=prova02.htm
target='_parent'><strong>MiniFAQ</strong></a><b> - MiniFAQ Javascript</b>"
 v2[a] = "javascript faq domande mini minifaq"
a += 1
 v1[a] = "<a href=prova03.htm target='_parent'><strong>Link
JavaScript</strong></a><b> - Le risorse su Internet</b>"
 v2[a] = "risorse internet link javascript"
a += 1
 v1[a] = "<a href=prova04.htm target='_top'><strong>Il mio sito
Javascript</strong></a><b> - Home Page del sito </b>"
 v2[a] = "javascript annunziata pasquale indice index home"
records_count = a;
// ----end data -------
</script>
<BR>
</BODY>
</HTML>
<<<<<<<<<<<<<<<<<<<<<<<EoF>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<Ric3.html>>>>>>>>>>>>>>>>>>>>>>>>>
<HTML>
<HEAD>
<TITLE>UN JAVASCRIPT A SETTIMANA, LA MAILING LIST DI HTML POINT</TITLE>
 <style type="text/css">
 A:link, A:visited { text-decoration: none }
 A:hover { text-decoration: underline }
 </style>
</HEAD>
<BODY BGCOLOR="white" vlink="blue" link="blue">
<div align="center">
Qui verranno visualizzati i risultati della ricerca.
</div>
</BODY>
</HTML>
<<<<<<<<<<<<<<<<<<<<<<<EoF>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<Prova01.html>>>>>>>>>>>>>>>>>>>>>>>>
<HTML>
<HEAD>
<TITLE>UN JAVASCRIPT A SETTIMANA, LA MAILING LIST DI HTML POINT</TITLE>
 <style type="text/css">
 A:link, A:visited { text-decoration: none }
 A:hover { text-decoration: underline }
 </style>
</HEAD>
<BODY BGCOLOR="white" vlink="blue" link="blue">
<BR><BR><BR>
<div align="center">
Pagina uno
</div></body></html>
<<<<<<<<<<<<<<<<<<<<<<<EoF>>>>>>>>>>>>>>>>>>>>>>>>>>>
Da pagina01.Html a pagina04.html sono tutte ugali a parte il nome.
Azz. Sembra complicato, ma e' di una semplicita' unica.
Ave atque vale
Nettuno