Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[VB2010] Leggere un file di testo, NON dall'inizio

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[VB2010] Leggere un file di testo, NON dall'inizio

Postdi maxmula » 12/11/10 16:21

Ciao a tutti,
forse il titolo è un po'criptico... vedo di spiegare meglio il problema.

- Ho un file di testo (un log di eventi generati da una macchina remota), che viene aggiornato di continuo (Append).
- Ho un form che contiene una Textbox multilinea, ed un timer che ogni 500ms apre il file e lo legge TUTTO, aggiornando la textbox.

Il tutto funziona abbastanza bene finché il log non diventa piutttosto grande, per cui il programma rallenta e la lettura della finestra col testo inizia a diventare problematica... motivo per cui pensavo di non leggere tutto il file ogni volta, ma invece di "ricordare" il punto in cui la lettura era arrivata la volta precedente (con una variabile Static) , aprire il file ed iniziare la lettura a partire dall'ultima posizione raggiunta, accodando così solo questo testo a quanto già visualizzato.

Il problema è che non so se esista un'istruzione per fare questo in VB2010...
Qualcuno m'illumina?

Grazie in anticipo!
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Sponsor
 

Re: [VB2010] Leggere un file di testo, NON dall'inizio

Postdi vonkes » 15/02/11 16:17

Premesso che non conosco VB2010 tuttavia spero tanto che tu lo conosca perchè altrimenti non so come tu possa pensare a cercare una istruzione che faccia cià che desideri. In base alla mia esperienza di Python anche in VB dovrebbe esistere la gestione dei file di testo potresti fare in questo modo e cioà conservare il puntatore [ un numero che indica la fine del file ad nel momento in cui il file viene letto] quando vine fatta la nuova lettura, considerato che gli aggiornamenti vanno in modo append, prima di iniziare la lettura fai spostare il puntatore, che in genere quando si apre un file si trova all'inizio del medesimo, fino al numero che avarai avuto cura di conservare. Supponi che quel numero sia 19845367 per imporre lo spostamento del puntatore a quel bite usa questa istruzione seek( 19845367) e poi dai il comando di lettura readlines.
Se non puoi/vuoi usare il puntatore allora fai precedere ogni aggiornamento dalla data e cerca di ricordare la data dell'ultimo articolo che viene letto. Dopo di che quando vuoi fare una nuova lettura imponi che legga il file di riga in riga saltando fino a che trova l'ultima data letta. Quello sarà il punto in cui dovra farsi la nuova lettura .
Spero di averti aiutato
Ciao vonkes
vonkes
Newbie
 
Post: 2
Iscritto il: 15/02/11 11:24

Re: [VB2010] Leggere un file di testo, NON dall'inizio

Postdi hydra » 15/02/11 16:54

Supponendo di utilizzare un oggetto streamreader, puoi usare il metodo Read, che ti permette di specificare l'indice di partenza e il numero di caratteri da trasferire in un buffer.
http://msdn.microsoft.com/it-it/library/9kstw824.aspx
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis


Torna a Programmazione


Topic correlati a "[VB2010] Leggere un file di testo, NON dall'inizio":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite