Il linguaggio di programmazione Delphi
 

Velocizzare *****isi ******* di testo

MB339A 14 Dic 2016 16:14
Buongiorno a tutti!
Vado subito al sodo...
Ho un ******* di testo csv MOLTO corposo (2 giga, circa 15 milioni di
record) che devo "scremare" e tirar fuori circa (di media) 400/500
record in base al fatto se trovo un campo uguale ad una certa costante
(chiamiamola "firma").
Al momento procedo aprendo il fil,leggendo riga per riga,split del csv e
cerco il campo interessato, se lo trovo accodo il record in un memo (che
mi va benissimo!).
Ho già aumentato con settextbuf il buffer per la lettura del ******* ..
Al momento 15 milioni li elabora in circa 1 ora e mezza...

Idee su come velocizzare il loop?

PS: è un'operazione che devo fare almeno 2 volte al mese...
brunello 14 Dic 2016 20:40
senza reinventare la ruota hai provato ad usare da riga comando >findstr firma
nomefile.csv > lista.txt
ciao Brunello
MB339A 14 Dic 2016 23:01
Il 14/12/2016 20:40, brunello ha scritto:
> senza reinventare la ruota hai provato ad usare da riga comando >findstr firma
nomefile.csv > lista.txt
> ciao Brunello
>
GRAZIE INFINITE!!!!!!!!!!
da 8 ore sono sceso a 6 minuti...scremo prima con findstr e poi do in
pasto al mio sw il risultato...semplice ed efficace!

Le cose più b*****i mi sfuggono sempre di mano :)


Domandone...come mai è così veloce findstr?
brunello 15 Dic 2016 08:24
> Domandone...come mai è così veloce findstr?
questo non lo so, comunque questo programma è corrispondente al grep di unix ed
ha molte opzioni per affinare la ricerca, comunque se non reindirizzato su di un
******* di uscita e visualizza a video i risultati non è questo fulmine di
guerra, forse il tuo programma aveva lo stesso problema
Alberto Salvati 15 Dic 2016 08:58
In ambito di full text search, questo prodotto pare sia eccellente:

http://lucene.apache.org/core/

Non l'ho mai usato, quindi prendi con le pinze sia per la velocità sia per
capire se riesce a sputarti fuori i dati che ti servono.


A.
Stark 15 Dic 2016 13:57
"Alberto Salvati" ha scritto nel messaggio
news:687d4e8a-966a-4578-aa07-46a6a6f2d15b@googlegroups.com...

In ambito di full text search, questo prodotto pare sia eccellente:

http://lucene.apache.org/core/

Non l'ho mai usato, quindi prendi con le pinze sia per la velocità sia per
capire se riesce a sputarti fuori i dati che ti servono.
---
Ma può essere usato in Delphi ?
MB339A 16 Dic 2016 08:23
Il 15/12/2016 08:58, Alberto Salvati ha scritto:
> In ambito di full text search, questo prodotto pare sia eccellente:
>
> http://lucene.apache.org/core/
>
> Non l'ho mai usato, quindi prendi con le pinze sia per la velocità sia per
capire se riesce a sputarti fuori i dati che ti servono.
>
>
> A.
>
Grazie del link, controllo subito!
Virgilio Lattanzi 14 Gen 2017 20:19
On 14/12/2016 23:01, MB339A wrote:

> Domandone...come mai è così veloce findstr?

Hai cambiato l'algoritmo. Findstr cerca la firma in un punto qualunqe,
mentre tu separi tutti i campi *prima* di cercarla. L'operazione è
probabilmente inutile nella maggior parte dei casi.

--
Virgilio Lattanzi, TSComm srl
Alberto Salvati 16 Gen 2017 08:50
> Ma può essere usato in Delphi ?

Pardon...Mi era sfuggita la tua domanda.
Magari nel frattempo ti sei informato.

http://edn.embarcadero.com/article/38723

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione Delphi | Tutti i gruppi | it.comp.lang.delphi | Notizie e discussioni delphi | Delphi Mobile | Servizio di consultazione news.