Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Motore di ricerca su Cd-Rom (sto maledetto)

    Buonasera ragazzi, sono due settimane che ci sbatto la testa e ancora non sono riuscito a risolvere il problema ..... FORSE stò all'inizio, ma ci credo poco. IL PROBLEMA:
    creare un motore di ricerca che funziona da Cd-Rom .....
    Cosa ho: 186 titoli ..... alcuni formati da una singola parola, altri formati da una decina di parole.
    La soluzione: le ho provate un pò tutte ....
    1) file XML, non capisco perchè, ma sembra che troppo testo non lo digerisce ....
    2) Array ... idem con patate .... non riesco a fargli fare uma ricerca, se lo importo da file esterno (.txt) e chiamo untrace() mi restituisce undefined (ma nel debug ho un ogetto Array con tutti i suoi bravi 185 indicini) se lo costuisco a mano idem, ma quantomeno se lo assegno ad una variabile me lo tira fuori (importato da .txt manco a parlarne)
    3) serie di variabili ...... come faccio a fargli cercare una stringa all'interno di 186 variabili??????

    Ho il cervello in ebolizione .... qualcuno sa suggeriemi qualcosa?
    Io sto proprio anzi, si sta spostando anchelo specchio, lasciandomi completamente soloooooooooooo. :master:


  2. #2
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Se può esserti utile, io ho avuto lo stesso problema: realizzare un annuario aziende di una associazione piuttosto grande (oltre 600 associati); c'era l'esigenza di avere una ricerca interna e io l'ho risolto con dati caricati da xml e archiviati in array e con l'uso della funzione indexOf(). Questa funzione permette di sapere all'interno di una stringa, in quale posizione si trova la stringa che voglio ricercare.
    Prova a guardare nella guida l'uso corretto.

    Funziona a meraviglia!
    FaX

  3. #3
    può esistere una cosa del genere???
    ....
    ArrayTitoli [98] = "Art. 98 Finalità di rilevante interesse pubblico"
    ArrayTitoli [99] = "Art. 99 Compatibilità tra scopi e durata del trattamento"
    ArrayTitoli [100] = "Art. 100 Dati relativi ad attività di studio e ricerca"
    ......
    Cercata="di" //sara un testo di imput

    for (n=0; n < ArrayTitoli.length; n++)
    {
    if (ArrayTitoli[n].indexOf(Cercata) == true)
    {
    pippo=ArrayTitoli[n]
    }
    }

    a parte se lo carico amano, da XML, o da .txt .... posso mettere tanto testo dentro un array???? Non mi funziona, non mi funziona, non mi funziona ...., se invece di true, metto -1 .... mi restituisce l'ultima posizione dell'array ... ArrayTitoli[186] dove trall'altro non è presente il "di" ....

  4. #4
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Io, semplificandolo, l'ho utilizzato in questa maniera:

    codice:
    for(h=0; h<array.length; h++){
    		descrizione=array[h][14].toString().toLowerCase();
    		if (descrizione.indexOf(testo_input.toLowerCase())!=-1){
    			trace(h, array[h][1]);
    		}
    	}
    }
    Da un array bidimensionale dovevo ricercare, la stringa inserita, nell'array[indice][14] che era l'array con tutte le descrizioni; e, una volta trovata la parola, stampavo l'array[indice][1] cioè, l'array con il nome dell'azienda.
    In pratica, dalla condizione if trovo l'indice [h] dove è presente la stringa cercata e, in base a quell'indice so quale azienda stampare.

    Modificandolo un po' dovresti ottenere quello che vuoi.
    FaX

  5. #5
    qualcosa è cambiato ..... un passetto avanti?????
    Il codice l'ho modificato in questa maniera :

    for(h=0; h<ArrayTitoli.length; h++){
    descrizione=ArrayTitoli[h].toString().toLowerCase();
    if (descrizione.indexOf(Cercata.toLowerCase())!=-1){
    trace(ArrayTitoli[h]);
    }
    }
    praticanmente ho sostituito array con ArrayTitoli, ho tolto il secondo indice e sotituito imput text con cerrcata (bastano queste modifiche? che dici?) haaaaa, mi segnalava un errore su trace, voleva un solo parametro, così ho tolto h ... e comunque ora in debug me le stampa tutte ....... continuo a lavorarci sopra ...... se hai qualche altro suggerimento è ben accetto ....
    ma descrizione è una variabile di appoggio vero?
    GGrazie per il momento ....

  6. #6
    Siiiiiiiiiiiii, funziona, FUNZIONAAAAAAAAAAAAAAA!


    Ora debbo solo trovare il sistema per farlo cercare la parola intera e non la singola lettera ma .... funziona!

    Grazie ILPIUBELLO .... sto venendo a Rimini per offrirti una cena

  7. #7
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Grazie ILPIUBELLO .... sto venendo a Rimini per offrirti una cena

    Sei fortunato, ti faccio spendere poco: il pesce non mi piace! Pasta a volontà e carne vanno benissimo!


    Vediamo di farmi pagare anche il dolce e il caffè....
    Ora debbo solo trovare il sistema per farlo cercare la parola intera e non la singola lettera ma .... funziona!
    Non ho ben capito cosa cosa intendi però.
    FaX

  8. #8
    Ok, se su parola cercata metto "di" come risultato mi tira fuori.....
    ogni stringa contenente di, ma anche stringhe come ad esempio "paroDIa", "DIstratto", "maleDIzione" ecc.... invece a me servirebbe che cercasse solo ad esempio DI .... se a cercata metto DATI, deve tirare fuori solo la parola DATI e non solDATI o candiDATI ...
    ...e poi .... come gli dico di scrivermi a video tutti i titoli che trova? intendo la stringa intera .... dovrebbe tirarmi fuori una lista ...
    per questo oltre caffè e dolce ci rientra anche una bella moretta (o preferisci le bionde? )


  9. #9
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Ora ho capito...
    Ma veramente la funzionalità di una ricerca è proprio quella

    Non so su cosa devi ricercare ma nessuno, credo, si sognerebbe di cercare esclusivamente una proprosizione semplice ("di" è una proprosizione semplice ?). Anzi, molte volte la ricerca per parole con meno di 3 lettere non viene accettata.
    Più che altro lo si fa perché è molto complesso gestire una ricerca simile... dovresti fare comunque un controllo sulla lunghezza della stringa inserita e decidere che, magari, con stringhe inferiori a 3 caratteri debba fare un indexOf non su "di" ma su " di "; non so se hai capito. In pratica: potresti fare in modo che, se uno inserisce due lettere, queste vengano ricercate effettivamente come una parola di due lettere e, per fare questo, un modo potrebbe essere quello di aggiungere, alla stringa inserita nel campo input, uno spazio prima e dopo.
    Tutto questo è un po' macchinoso (anche perché dovresti considerare eventuali casi particolari... e quindi altri controlli...) e poi, naturalmente, ti andrebbe ad escludere totalmente la ricerca di quella stringa, come porzione, all'interno di una stringa più lunga.

    ...e poi .... come gli dico di scrivermi a video tutti i titoli che trova? intendo la stringa intera .... dovrebbe tirarmi fuori una lista ...
    Nel modo che ha modificato tu, ti stampa l'intero record e non la singola parola che contiene la stringa inserita, giusto? Ci penso su...

    per questo oltre caffè e dolce ci rientra anche una bella moretta (o preferisci le bionde? )

    morette o bionde: io amo le donne in tutte le salse!
    FaX

  10. #10
    Ok, vado a smanettare sul codice ..... poi ti dico!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.