Aquí tienes un ejemplo donde vuelco un txt a un datatable, quizas te sirva.
private DataTable CargarTabla(string fileName)
{
char delimiter = '\t';
DataTable dataTable = new DataTable();
string[] rows = GetRows(fileName);
if (rows.Length > 0)
{
#region Columns
string[] columns = rows[0].Split(new char[] { delimiter });
foreach (string column in columns)
{
//strColumna = strColumna.Replace(c.ToString(),
"\x00a0");
dataTable.Columns.Add(column);
//string miColumna = string.Empty;
//foreach (char ca in column)
// miColumna += string.Format("{0:x4} ", (int)ca);
}
#endregion
#region Rows
for (int i = 1; i < rows.Length; i++)
{
string[] fila = rows[i].Split(new char[] { delimiter });
if (fila.Length <= 1) continue;
dataTable.Rows.Add(fila);
}
#endregion
}
return dataTable;
}
private string[] GetRows(string fileName)
{
string[] rows = File.ReadAllLines(fileName);
if (rows.Length <= 0) return rows;
char delimiter = '\t';
char c = (char)65533;
string[] columns = rows[0].Split(new char[] { delimiter });
char[] specialChars = { c };
var salida = Array.FindAll(columns, p =>
p.IndexOfAny(specialChars) > 0);
if (salida.Length > 0)
{
rows = File.ReadAllLines(fileName, Encoding.Default);
columns = rows[0].Split(new char[] { delimiter });
}
return rows;
}
El 9 de enero de 2013 11:13, Tito Molina <[email protected]> escribió:
> Hola, resulta que quiero recorrer todas las lineas de un archivo de texto.
> Cuando ejecuto el siguiente código me muestra el último
>
> Private Sub btnCargarArchivo_Click(ByVal sender As System.Object,
> ByVal e As System.EventArgs) Handles btnCargarArchivo.Click
> Dim DGBox As New OpenFileDialog
> DGBox.Filter = "Archivos de texto plano (.txt)|*.txt"
> DGBox.Multiselect = False
> DGBox.ShowDialog()
> If DGBox.FileName.Length > 0 Then
> Using Archivo As New System.IO.StreamReader(DGBox.FileName)
> Dim Columna() As String
> While Not Archivo.EndOfStream
> Columna = Archivo.ReadLine.Split(";")
>
> txtCasa.Text = String.Format("{0}", Columna(0))
> txtOficina.Text = String.Format("{0}", Columna(1))
> txtCuenta.Text = String.Format("{0}", Columna(2))
> txtAño.Text = String.Format("{0}", Columna(3))
> txtMes.Text = String.Format("{0}", Columna(4))
> txtImporte.Text = String.Format("{0:C}", Columna(5))
> txtNumeroCuota.Text = String.Format("{0}", Columna(6))
> txtDNI.Text = String.Format("{0}", Columna(7))
> txtReparticion.Text = String.Format("{0}", Columna(8))
> txtBoleta.Text = String.Format("{0}", Columna(9))
> txtAfiliado.Text = String.Format("{0}", Columna(10))
> End While
> End Using
> End If
> End Sub
>
> Me interesaría saber como hacer para leer la primera fila de dicho
> registro. Luego yo me daría maña para leer cualquier fila que es lo que en
> realidad quiero hacer. Muchas gracias
>
> --
> Roberto Miguel Molina
>
--
Saluda ATTE.
*Andrés Guzmán Oyaneder.
09-9319111
*[email protected]