martedì 4 aprile 2017

Methods for reading text files with VB.NET and C#


Il parsing di un file di testo non presenta grandi differenze concettuali e operative tra VB.NET e C#.
La differenza principale, a parte quelle ovvie di sintassi, riguardano com'è strutturata la funzione principale per questa operazione, ovvero la funzione Streamreader.
In VB.NET la funzione Streamreader gestisce e legge il file di testo, comportando una semplificazione uno snellimento del codice.

Dim o As New OpenFileDialog
o.ShowDialog()
Dim NomeFile = o.FileName
Me.RichTextBox1.AppendText(NomeFile)
Dim s As StreamReader = New StreamReader(NomeFile)

In C#, invece, l'utilizzo della funzione è lo stesso, ma spesso viene utilizzata accompagnata dall'istruzione Using, che comporta una semplificazione del testo.

OpenFileDialog o = new OpenFileDialog();
o.ShowDialog();
dynamic NomeFile = o.FileName;
this.richTextBox1.AppendText(NomeFile);
StreamReader s = new StreamReader(NomeFile);

I metodi fondamentali di lettura di un file di testo sono due e li andremo ad analizzare per entrambi i linguaggi di programmazione:

- Metodo Readlegge il carattere successivo dal flusso di input e fa avanzare di un carattere la posizione del carattere.
SINTASSI:

VB.NET                                                                               
Public Overrides Function Read As Integer      
C#
Public Overrides Function Read As Integer

- Metodo ReadToEnd, legge tutti i caratteri dalla posizione corrente fino alla fine del flusso: è previsto anche il metodo asincrono ReadToEndAsync().
SINTASSI:

VB.NET
Public Overrides Function ReadToEnd As String
C#
public override string ReadToEnd()

- Metodo ReadLine, legge una riga di caratteri dal flusso corrente e restituisce i dati come stringa; è previsto anche il metodo asincrono ReadLineAsync().
SINTASSI:

VB.NET
Public Overrides Function ReadLine As String
C#
Public Overrides Function ReadLine As String

- Metodo Read(Char[], Int32, Int32), legge un numero massimo di caratteri dal flusso corrente e scrive i dati in un buffer, a partire dall'indice specificato; è previsto anche un metodo asincrono di lettura ReadAsync(Char[], Int32, Int32).
SINTASSI:

VB.NET
Public Overrides Function Read (
        buffer As Char(),                                   
        index As Integer,
        count As Integer
) As Integer                                         
C#
public override int Read(
       char[] buffer,
       int index,
       int count
)

- Metodo ReadBlock(Char[], Int32, Int32), legge un numero massimo specificato di caratteri dal flusso corrente e scrive i dati in un buffer, a partire dall'indice specificato; è previsto anche un metodo asincrono di lettura ReadBlockAsyn(Char[], Int32, Int32).
SINTASSI:

VB.NET
Public Overrides Function ReadBlock (
 buffer As Char(),
 index As Integer,
 count As Integer
) As Integer
C#
public override int ReadBlock(
 char[] buffer,
 int index,
 int count
)


ALCUNI ESEMPI:

METODO READTOEND VB.NET

Imports System.IO

Public Class Form1
Private Sub Botton1_Click (Sender As Object, e As EventArgs) Handles Button1.ClickMe.RichTextBox1.AppendText(Environment.NewLine & NomeFile)

Dim o As New OpenFileDialog
o.ShowDialog()
Dim NomeFile As String = o.FileName

Dim s As New StreamReader (NomeFile)
Dim File As String = s.ReadToEnd   ReadToEnd è il comando di lettura fino alla fine

Me.RichTextBox1.AppendText(File & Environment.NewLine)

End Sub

End Class

METODO READLINE VB.NET

Imports System.IO

Public Class Form1
Private Sub Botton1_Click (Sender As Object, e As EventArgs) Handles Button1.ClickMe.RichTextBox1.AppendText(Environment.NewLine & NomeFile)

Dim o As New OpenFileDialog
o.ShowDialog()

Dim NomeFile As String = o.FileName

‘Me.RichTextBox1.AppendText(Environment.NewLine & NomeFile)

Dim s As New StreamReader(NomeFile)Dim File As String = s.ReadToEnd

Me.RichTextBox1.AppendText(File & Environment.NewLine)

Dim Contatore As Integer = 1
Do

Dim RigaDelFile As String = s.ReadLine
   ReadLine è il comando di lettura riga per riga

Me.RichTextBox1.AppendText(“Riga #” & Contatore & “: ” & RigaDelFile & Environment.NewLine) 

Contatore = Contatore + 1
Loop Until s.EndOfStream
End Sub
End Class



METODO READTOEND C#

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;

public class Form1
{
private void Button1_Click(object Sender, EventArgs e)
{

//Acquisizione del nome del file
OpenFileDialog o = new OpenFileDialog();
o.ShowDialog();
string NomeFile = o.FileName;
this.RichTextBox1.AppendText(Environment.NewLine + NomeFile);


//Definizione del lettore
StreamReader s = new StreamReader(NomeFile);
string File = s.ReadToEnd;
this.RichTextBox1.AppendText(Environment.NewLine + File);
}
}




METODO READLINE C#

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;

public class Form1
{
private void Button1_Click(object Sender, EventArgs e)
{

//Acquisizione del nome del file
OpenFileDialog o = new OpenFileDialog();
o.ShowDialog();
string NomeFile = o.FileName;
this.RichTextBox1.AppendText(Environment.NewLine + NomeFile);


//Definizione del lettoreStreamReader s = new StreamReader(NomeFile);
int Contatore = 1;
do {
string RigaDelFile = s.ReadLine;
this.RichTextBox1.AppendText(Environment.NewLine + “Riga #” + Contatore + “: ” + RigaDelFile);
Contatore = Contatore + 1;
} while (!(s.EndOfStream));
}
}


P.S. Il codice in C# è stato ottenuto tramite convertitore

Nessun commento:

Posta un commento