Metodi disponibili per leggere file testuali di dati statistici, con esempi

Per leggere dei file di testo, i linguaggi di programmazione C# e VB.NET offrono 3 differenti tipologie di metodi:
  •  HardCod
Questo è il metodo più semplice, poichè la sua sintassi è molto semplice,ma risulta poco efficiente poiché deve essere modificato manualmente ogni volta che si sceglie un nuovo file da leggere. Il metodo consiste nel definire una nuova variabile come una stringa che si inizializza specificando il percorso del file in questione (ovviamente tra apici). Si riporta di seguito un esempio:

nomefile as a string = "C:\Users\francesca\Desktop\NomeFile.csv"
  • StreamReader
Questo metodo risulta essere migliore del precedente poichè è generalizzabile. Per ottenere il percorso del file si utilizza " Open file dialg". Dopodiché è necessario installare un oggetto che possa leggere il percorso, inizializzando la variabile come New StreamReader(NomeFile).  Al passo successivo è necessario poter leggere il contenuto del file, prestando attenzione alla prima riga(che generalmente contiene il nome delle variabili ed è chiamata header), per poi estrarre i dati. Attraverso l'uso di una classe questi dati dovranno essere memorizzati in appositi oggetti.
'ottenimento del path con una Open File Dialog

Dim ofd As New OpenFileDialog
ofd.ShowDialog()

 
'istanziamento del path in un oggetto

Dim sr As New System.IO.StreamReader(ofd.FileName)
 
'lettura delle righe del file e estrazione dei dati

Dim sr As New StreamReader(ofd.FileName)
Dim RigaH As String = sr.ReadLine()   'in questo modo leggo l'header
While Not sr.EndOfStream
Dim RigaDati As String = sr.ReadLine()
Dim Dati() As String = RigaDati.Split(";".ToCharArray,StringSplitOptions.RemoveEmptyEntries)
End While

  • TextFiledParse
Questo metodo è meno efficiente rispetto al precedente, ma è specializzato per la lettura dei file con estensione .csv. In VB.NET non è richiesta l’aggiunta di una reference, mentre ciò non avviene in  C#. La sua sintassi non differisce molto dal metodo precedente: il Parser e il Reader differiscono dal punto di vista dell’inizializzazione del path. Infatti, si assiste ad una sostituzione del comando split e ad una eliminazione o sostituzione dei delimitatori. 

'inizializzazione del path

Dim tap As New Microsoft.VisualBasic.FileIO.TextFieldParse(FileName)
 
'comando sostitutivo dello spalti nel ciclo

tfp.ReadFilds()
 
'inizializzazione proprietà delimitatori

tfp.SetDelimiters(New String() {","})
tfp.CommentTokens = New String() {"#"}
tfp.HasFieldsEnclodesInQuotes = True

Commenti

Post popolari in questo blog

Alcuni esempi di strategie di trading algoritmico utilizzate

Processi stocastici con mean reversion: Ornstein–Uhlenbeck process, Dixit & Pindyck Model, Vasicek model, etc

La formula di Legendre e la sua utilità nelle applicazioni