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

    [VB] Velocità motore di ricerca

    Buongiorno, sto realizzando un motore di ricerca per un'applicazione vb6.

    In sostanza ho una serie di file txt contenuti in una cartella e voglio selezionare solamente quelli che contengono le parole inserite dall'utente.

    Ho già realizzato il motore e in locale funziona bene, l'unico problema è la velocità. Nella cartella possono esserci molti file, attualmente ne ho 1400 e per fare il controllo completo ci vogliono molti secondi. Con 2 parole come testo di ricerca il tempo è circa 30 secondi.

    Per cercare il testo apro il file col filesystemobject e poi faccio un controllo del tipo instr(testofile,parola). Il tutto inserito in un ciclo su tutti i file presenti.

    Vorrei sapere se esiste un modo più rapido per fare il controllo. Mi interessa soprattutto perché questo motore andrà poi inserito in una dll chiamata da pagine asp e non vorrei sovraccaricare troppo il server.

    Grazie a chi vorrà propormi qualche idea.
    Horus

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    ... boh...

    un idea da neofita forse sarebbe quella di mettere tutti i files in un controllo listbox, poi eseguire la ricerca da li... un po come fa winamp...

  3. #3
    Fammi capire, tu dici di mettere il testo di tutti i file nella listbox?

    Forse è peggio perché ci mette circa 10/15 secondi a caricarmi il testo nella listbox e poi comunque attorno ai 30/40 secondi a controllare.
    Horus

  4. #4
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    111
    forse e dico forse potresti provare a bufferizzare (alloccare in memoria ) il contenuto di ogni file e da li eseguire la ricerca. Bisognerebbe sapere bene come lavora il File system object perchè se anche lui lavora in memoria allora stai già raggiungendo le massime performance.

    ciao.

  5. #5
    Un sistema per velocizzare è non usare FSO. Apri i files in binary o input (Open nomefile for Input As #F), leggi tutto il contenuto(txt=Input(F,LOF(#F))) e fai la ricerca con instr.

    Bye!
    Diventeremo tutti pazzi !!

  6. #6
    uhm, sì, direi che va meglio. Il tempo di ricerca è sceso a 10 secondi. Purtroppo lo split per la lista di risultati è ancora lento (20 secondi), ma credo che questo non sia più migliorabile.

    P.S.: il comando è
    txt = Input(LOF(F), F)

    Grazie a tutti per la collaborazione.
    Horus

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.