Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - velocizzare lettura wordlist
Forum - C# / VB.NET - velocizzare lettura wordlist

Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Segnala al moderatore
Postato alle 21:50
Mercoledì, 19/05/2010
salve a tutti
ho una wordlist di 10140 parole (senza verbi) scritta in un file .txt
mi servirebbe velocizzare la lettura del file in quanto le parole sono molte
adesso uso un for each e l'istruzione IO.File.ReadAllLines("percorso") che restituisce un array
solo che è troppo lento devo  riuscire a velocizzare il tutto

P.S. non voglio fare l'hacker la wordlist non serve per beccare la password di qualcuno


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
PM Quote
Avatar
Grubby (Normal User)
Pro


Messaggi: 85
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 22:09
Mercoledì, 19/05/2010
Prova ad aprirlo come fileopen(,,,,openmode.random) e a usare l'istruzione EOF per far scorrere tutte le parole intanto che le scorri le metti dove le devi mettere:)
fammi sapere se funziona


Al mondo ci sono solo 10 tipi di persone: chi comprende il sistema binario e chi no (Anonimo)

(14/06/10) manvb.net: grubby, you are an artist and a ciaff at the same time

http://www.galvaniscuola.it/

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 21:15
Giovedì, 20/05/2010
Tu prima leggi tutto il file, splitti le righe, ottieni l'array e scorri l'array. Sarebbe più diretto leggere e manipolare direttamente una riga alla volta dal file:
Codice sorgente - presumibilmente VB.NET

  1. Dim Reader As New IO.StreamReader("file")
  2. Dim Str As String
  3.  
  4. Do
  5.     Str = Reader.ReadLine()
  6.     '...
  7. Loop Until Reader.EndOfStream
  8.  
  9. Reader.Close()



Un hacker non ruba password per definizione, è un uso improprio del termine. Se fossi in te vorrei essere un po' più hacker di così.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Segnala al moderatore
Postato alle 23:25
Giovedì, 20/05/2010
ma io adesso leggo già riga per riga...(parola per parola visto che ogni riga è una parola)
solo che col for each è stra-lento
cosi
Codice sorgente - presumibilmente VB.NET

  1. Dim list() As String
  2. list = IO.File.ReadAllLines("percorso\Dizionario.txt", System.Text.Encoding.ASCII)
  3.         For Each par In list
  4.            
  5.                 ris = diz.CheckGrammar(testo & " " & par)'controllo se sta bene
  6.                 If Not ris Then
  7.                     ris = diz.CheckGrammar(par + " " + testo)'controllo inverso
  8.                 End If
  9.                 If ris Then
  10.                     giu.Add(par)
  11.                 End If
  12.          Next


tutto questo è in un background worker per non impallare il programma...


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:54
Venerdì, 21/05/2010
Prima di rispondere dovresti leggere le risposte un po' meglio. Tu NON leggi riga per riga, tu leggi TUTTE le righe e DOPO le elabori. Io ti ho detto di elaborarle MENTRE le leggi.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
Federico_VbNet_Programmer (Normal User)
Expert


Messaggi: 222
Iscritto: 03/04/2010

Segnala al moderatore
Postato alle 16:42
Venerdì, 21/05/2010
Prova con:
Richtextbox1.text = my.computer.filesystem.readalltext("file da leggere")
'vorrei ottenere la seconda riga in un messaggio
messgabox.show(richtextbox1.lines(1)
;)
Dimmi se ti va bene ora


pierotofy fa merda
PM Quote
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Segnala al moderatore
Postato alle 17:07
Venerdì, 21/05/2010
credo che la soluzione postata da totem sia la migliore

con il tuo metodo userei ancora un for each

for each linea in richtextbox1.lines
'.......
next

oppure un for

for i=0 to richtextbox1.lines.count - 1
par=richtextbox1.lines(i)
'.....
next


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
PM Quote