Visual Basic.NET - Porblema al leer fichero de texto

 
Vista:

Porblema al leer fichero de texto

Publicado por TI (11 intervenciones) el 16/11/2005 13:24:37
Hola a todos,

Tengo una aplicación que lee un fichero de texto dividido en columnas y lo graba en una base de datos. EL problema que tengo es que en aquellas lineas que llevan caracteres tales como ñ, º, ª, dichos caracteres no los lee, con lo que la longitud de la línea me varía y ya no puedo coger los campos por su longitud.

Ej: Si la línea fuera
MUÑOZ PEREZ JUAN
Al leer la linea cogería:
MUOZ PEREZ JUAN

Lo realizo de la siguiente manera:

Dim file As New System.IO.StreamReader(TxtRuta.Text)
Dim Linea As String

Linea = file.ReadLine()
While (Linea <> "")
Apellidos = Trim(Linea.Substring(0, 40))
Nombre = Trim(Linea.Substring(40, 15))
StrComandoSQL = "INSERT INTO ALTAS_ESTRELLA (Apellidos, Nombre) " _
& "VALUES('" & Apellidos & "', " _
& "'" & Nombre & "') "
Try
Conexion = New SqlClient.SqlConnection(ConexionStrSQL)
Conexion.Open()
Comando = New SqlClient.SqlCommand(StrComandoSQL, Conexion)
Comando.ExecuteNonQuery()
Comando.Dispose()
Conexion.Close()
Catch
'Error
End Try
End If
Linea = file.ReadLine()
End While

Alguien sabría a que se debe esto?. Quizas haya otra forma mejor de realizar este proceso, si es así agradecería algún ejemplo de como hacerlo.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Porblema al leer fichero de texto

Publicado por thessen (298 intervenciones) el 16/11/2005 15:33:10
Prueba a leer el fichero como UTF8, para hacerlo, donde pones :

Dim file As New System.IO.StreamReader(TxtRuta.Text)

Pon :

Dim file as New System.IO.StreamReader(txtRuta.Text,System.Text.Encoding.UTF8)

Con esto creo que deberia funcionarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Porblema al leer fichero de texto

Publicado por TI (11 intervenciones) el 17/11/2005 08:12:32
OK, lo he probado como tu dices y en vez de el caracter me coge "?". Ya he encontrado la solución y es ponerlo como ASCII.

Muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar