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

    [VB 2010] Ricerca testo in file di testo

    Salve a tutti!

    Ho un file di testo contenente diverse stringhe, ad esempio:
    . nome1
    . nome2
    . nome3
    . nome1
    . nome1
    . ---

    E così via..
    Dovrei fare un controllo su queste stringhe, e quella che viene ripetuta più volte (in questo caso nome1) mi deve uscire come risultato..

    Mi hanno suggerito di usare un dizionario, ma non avendolo mai creato e non essendoci pratico, preferirei non utilizzarlo..

    In che modo posso risolvere?

  2. #2
    La cosa più semplice ed efficiente effettivamente è usare un Dictionary(Of String, Integer); leggi via via le righe dal file, e per ogni riga che ottieni fai:
    codice:
    dict.Item(stringa)+=1
    (dove dict è il dizionario creato all'inizio e stringa è la stringa appena letta da file)
    In questo modo alla fine il dictionary conterrà come chiavi le varie righe presenti nel file, e come valore associato il numero di volte che ciascuna riga compare. A questo punto è sufficiente scorrere il dictionary (con un For Each) e individuare così la chiave con valore associato più grande - questa sarà la riga che compare più volte nel file.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ciao
    Sarebbe il lavoro giusto per le Regex ma, se non vuoi usare il dizionario, figuriamoci le Regex.

    A questo punto, una delle tante soluzioni che mi vengono in mente, potrebbe essere quella di leggere il file tutto in una volta e poi splittare tutto in un array usando, per lo split, la costante vbcrlf.
    Poi iteri tutto l'array e fai i confronti del caso.

    Ciao


    EDIT: Non mi ero accorto della risposta di MItaly

  4. #4
    Grazie per le risposte, mi stavo informando un po di più sui dizionari, dato che probabilmente potrebbero servirmi anche in futuro, ma guardando delle guide credo che al momento non faccia a caso mio...

    @Runtime
    Cosa sono i Regex?

    Vi spiego nel dettaglio cosa mi serve, magari esiste qualcosa di più veloce e "comodo"...

    in un form, ho una listbox, una label ed un button. Ogni volta che clicco sul button, mi interessa sapere quale elemento della listbox viene cliccato maggiormente.
    Una volta chiuso il form, alla riapertura, la label deve avere come testo, quello cliccato di più..

    stavo pensando di usare delle variabili nelle impostazioni (my.settings), ma ho pensato che salvare tutto su di un file di testo sarebbe stato più semplice...

    provo nel frattempo di risolvere con l'array...
    ciao!

  5. #5
    Originariamente inviato da inviasubito
    @Runtime
    Cosa sono i Regex?
    Sono espressioni regolari.
    Trovi un mucchio di materiale sul web.
    Ma dopo un più accurata riflessione .... non credo più siano la strada corretta.
    Valorizzerei di più il consiglio sui dizionari.

    Ad ogni modo, non conosco nello specifico l'obbiettivo che vuoi raggiungere, certo è che l'uso di un DB od anche solo di un dataset sarebbe stato meglio, visto che mi sembra di aver capito che hai bisogno di persistenza dei dati.

    Ciao

  6. #6
    l'applicativo usa un database?

  7. #7
    No, ma credo che lo implementerò

  8. #8
    se lo aggiungi, quello è il posto giusto per memorizzare i click

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.