Sto cercando di realizzare una specie di parser in grado di leggere un file di testo una riga per volta e confrontarlo con il contenuto di un altro file di testo contenente alcune regole. Quando viene trovato il match della riga con una regola viene scritto su un file xml. Per file piccoli funziona ed è anche abbastanza veloce. La parte di codice che fa il lavoro da me descritto è la seguente:
Purtroppo mi può capitare di maneggiare file di qualche centinaio di MB e in questo caso sto cercando di utilizzare il Filestream per fare lo stesso lavoro ma sembra che per come l'ho implementato io (codice di seguito) non riesca a leggere le righe allo stesso modo.
A occhio e crocie quello che leggi è una parte del file. Se leggi 3 volte, leggi nella posizinoe 3 blocchi del file. Quindi : 1) Leggi tutto lo stream in un colpo solo. 2) Sposti l'indice di scrittura della stringa.
Ma forse non ho capito il problema e sto andando a margherite... Stilgar
frandell:
Penso di star leggendo il file a 32768 byte per volta, avendo fissato bufferleng a tale valore e incrementando la Index ogni volta.
Adesso ho spostato fuori dal blocco try l'assegnazione "Index := 0" ma il risultato è lo stesso.