Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493

    scansione parole in una pagina

    Ciao a tutti, avrei una richiesta forse un po' complessa da fare.

    Vorrei creare una sorta di indice univoco di tutte le parole contenute in un file (ditemi voi se possibile quale conviene di più txt html pdf doc)

    Come posso far scandire un documento e far restituire l'elenco di tutte le parole una sotto l'altra?
    grazie

  2. #2
    Forse dovresti aiutarti con gli spazi;
    Se un carattere è uguale ad uno spazio allora fai azione, altrimenti continua scansione file.
    Dove per azione si intende scrittura in un altro file o meglio in un db.

    Non ho mai fatto un acosa simile ma dovrebbe essere grossomodo così,

    che ne pensi?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    si così otterrei lelenco, mi sembra un buon inizio, ma come faccio poi ad eliminare le parole già presenti?
    ogni volta che scrivo una parola dovreicontrollare che non sia già presente
    come si fa?
    grazie

  4. #4
    perdonami se corro ma immaginare exnovo queste cose mi lascia senza neuroni...

    facciamo che come punto di partenza hai la pagina di cui sopra in una variabile...
    variabile = lapaginona
    ti rimbocchi le maniche e:

    Sostituisci tutti gli apici ... tipo dei "l' " vari
    ... poi gli articoli ...
    ... le preposizioni ...
    ... la punteggiatura...
    ... e così via fino a finire le idee di cosa non vuoi che abbia rilevanza...
    ... il tutto viene sostituito da spazi vuoti ...

    ti rimane:
    variabile = un gruppo di parole

    Le salviamo in un database che facciamo prima...
    Per farlo dividiamo variabile con la funzione split trasformandola quindi in un array.

    Facciamo un ciclo accingendoci a salvarla in un DB se non esisteva gia... in caso contrario o ad aggiungere "1" al contattore che avremo impostato di lato alle paroline registrate...

    In fondo è una serie di cicli ed if...

    Grazie sempre di tutto!!!
    Alberto

  5. #5
    mumble...

    potresti leggerti il testo dallo stream e metterlo in una variabile, poi gli fai un replace di qualsiasi carattere di punteggiatura (dal punto all'apice alle parentesi ai simboli speciali) e sostituire con lo spazio, poi con regular expression sostituire le parole di una sola lettera e (forse non ti servono) i numeri con '', poi splittare sullo spazio e hai un array di parole.. da li fare un ciclo usando un array di appoggio: se la parola che stai esaminando non è nell'array di appoggio, allora ce la metti, altrimenti passi alla parola successiva..

    il problema naturalmente è la dimensione del testo in questo caso.. piu parole metti nell'array d'appoggio e piu si allungano i tempi per scorrere i due array...

    altra soluzione potrebbe essere invece di usare l'array di appoggio, di mettere le parole che trovi in una variabile concatenandole con una seuqenza di caratteri speciali, tipo ||parola|| e poi fare un instr per controllare se l'hai già messa o meno (prob l'instr è piu veloce del ciclo for su un array)


    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    ok questa è fatta, sono riuscito a creare l'indice con le parole univoche mettendo tutto in un array e facendo srivere in un database le parole controllando prima che non fossero presenti.

    Adesso il passo successivo sarebbe quello di scrivere una parola in quale testo è scritta. presupponendo che i testi li chiami con 1, 2, 3, 4, 5,... come posso impostare il database? come faccio a dire che la parola mare corrisponde al testo 1 e 3, la parola sole al testo 2 ed ogni volta che aggiungo un testo fare il controllo dei duplicati e se non è presente aggiungo la parola e inserisco da quale testo proviene altrimenti, se già in elenco, aggiungo a quale testo appartiene
    spero che scritto così possiate capire, grazie infinitte per l'auito!
    ciao

  7. #7
    Secondo me lo dovresti fare ognivolta che "inserisci" la parola o il testo...
    in un campo apposito registri che testo/pagina è...
    controlli se l'identificativo del testo c'è .... e registri oppure no...
    Se i testi sono piu di uno li dividi con un separatore apposito e quandi fai il check li dividi metti su di un'array...

    whe ... dopo ci posti il codice eh!
    Grazie sempre di tutto!!!
    Alberto

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    si ma ad esempio la parola

    mare in testo 1, 2, 3 non la devo riscrivere e si trova già in elenco non separata perchè inserita già dal primo testo ma devo scrivere che si trova anche nel testo 4

    se voi sapete darmi quache riga di codice poi vedo di implementare.
    il testo 1 adesso è in un database, ogni parola è in un record, accanto al record posso scrivere 1, 2, 3 separando con virgola poi quando richiamo i dati opsso dire che la parola mare appare nel testo 1 che corrisponderà ad un titolo da ripescare da un'altra tabella

    inoltre se la tabella PAROLE contiene 2 campi una con scritto la parola stessa e l'altro dove contiene tutti i numeri chiave dei testi separati da virgola, come posso fare ad aggiungere al campo un numero lasciado quello che c'è già scritto? prelevo tutto il campo es 1,2,3 lo modificon in 1,2,3,4 cancello il vecchio contenuto e aggiorno con il nuovo?
    qualcuno ha un po' di tempo da perdere pe rfarmi un esempio con un database e qualche riga di asp?

    aiutatemi, so che è una cosa difficile voi sapete aiutarmi
    grazie

  9. #9
    Mettila così...

    Tu stai inserendo le parole del testo "4"...

    Trovi che la parola "giggione" è gia presente...
    le aggiungi uno...

    adesso controlli nel campo "inqualeciumbiaditestoèpresente" presente nella tabella del tuo database...

    il campo però è un inseime di numeri separato da qualcosa...
    appioppi il valore del campo alla variabile...
    lo splitti in un array...
    fai un ciclo di confronti ne piu ne meno come per l'inserimento...
    se "4" non c'è... ce lo aggiungi... se c'è gia: ciccia!...

    Grazie sempre di tutto!!!
    Alberto

  10. #10
    diciamo che hai due tabelle:

    Parole:

    id, parola


    Testi

    id, testo


    tu già riempi la tabella parole. A questo punto fai una terza tabella

    Parole_to_Testi:

    id, idparola, idtesto

    dove idparole e idtesto sono FK alle rispettive tabelle, quindi quando inserisci una parola vai a inserire anche un record nella tabella Parole_to_Testi


    Ora però mi chiedo cosa tu stia facendo, perchè come sistema di indicizzazione di testi non mi pare un bel sistema...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2026 vBulletin Solutions, Inc. All rights reserved.