Gestire file di testo enormi

sabato 21 maggio 2011 - 16.48
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Windows 7  |  Windows Vista  |  Windows XP  |  Visual Studio 2010  |  Visual Studio 2008  |  Visual Studio 2005

willy_80 Profilo | Senior Member

Ciao a tutti,
Sto lavorando su un programma in vb.net che gestisce ed elabora una grande quantità di dati.
I miei dati li ho salvati in un file di testo in questo modo:

dato;dato;dato;dato;dato;dato;dato;dato;dato;...
dato;dato;dato;dato;dato;dato;dato;dato;dato;...
dato;dato;dato;dato;dato;dato;dato;dato;dato;...
[...]

siamo sull'ordine di 20000/30000 dati per riga e 20000/30000 righe.

vorrei accelerare i processi di lettura e scrittura, io quando apro il file uso input, autput o append.
E' possibile aprire e gestire i dati in random per leggere e scrivere nelle righe che mi interessano?

Es.:
1-Diciamo che voglio leggere la riga n°2
2-Splitto i dati e li metto in una matrice
3-Nella seconda cella ci scrivo "ciao"
4-Faccio il Join della matrice
5-Metto la stringa nella riga n°2 sostituendo quella esistente

Al momento usando input e output per fare cio che ho descritto nell'esempio creare un file di appoggio e poi rinominarlo leggendo tutto il file in fase di lettura e di scrittura.

Mi sapete dire come usare la funzione random?

Grazie

Cteniza Profilo | Guru

Accesso random solo se hai un file indice con i puntatori ai dati e un programma che lo gestisca.
Escluso che si possa fare.

willy_80 Profilo | Senior Member

E in quel caso come dovrebbe essere strutturato il file?

Cteniza Profilo | Guru

Io volevo solo indicarti il grado massimo di difficoltà della cosa.
comunque se ci vuoi provare ..
http://basic.phatcode.net/tut/gde/isam.htm

willy_80 Profilo | Senior Member

X Cteniza, ti ringrazio dell'interessamento e del link, l'ho guardato ma è praticamente un intero manuale, non hai modo di mostrarmi qualcosa di un po più sbrigativo?
grazie

Cteniza Profilo | Guru

Di sicuro non ho la risposta da copiaincolalre.
Mi sa che dovrai faticare "in proprio" se vuoi sviluppare questa cosa.
Se la dovessi fare io utilizzerei un database es: sqlce

willy_80 Profilo | Senior Member

Io non ho fatto moltissime cose coi db ma ci voglio provare.
Dovendo partire da un livello basso di abilità di programmazione coi db mi sembra ovvio e conveniente studiare quello più adatto alle mie esigenze in modo da non sprecare tempo ed evitare di scrivere molto codice per niente, non ho fretta di arrivare alla soluzione quindi la facilità di programmazione non è un prerequisito di cui necessito, quello che invece mi serve assolutamente è sapere quale tipo di db è più indicato per me.

Necessito quindi di un db che risponda a questi requisiti:
1) Possibilità di gestire grandi quantità di dati "piccoli", per piccoli intendo che tutti i miei dati sono numeri di max. 5 cifre senza decimali che posso formattarli sia integer sia string .... non ha importanza.
2) Possibilità di leggere e modificare un ristretto gruppo di dati senza dover riscriverli tutti ogni volta.
3) Se possibile evitare di dover caricare tutti i dati contenuti nel db in memoria prima di poter accedervi appesantendo il sistema.

Mi sapete indicare secondo voi qual'è il db più indicato?

Grazie a tutti
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5