Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con carga de datos desde TXT

Estas en el tema de Problema con carga de datos desde TXT en el foro de .NET en Foros del Web. Hola a todos! Espero me puedan con el siguiente problema, de verdad se los agradecería bastante, este es el asunto: Tengo un WinForms (VS 2005) ...
  #1 (permalink)  
Antiguo 11/08/2008, 21:05
 
Fecha de Ingreso: mayo-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Problema con carga de datos desde TXT

Hola a todos! Espero me puedan con el siguiente problema, de verdad se los agradecería bastante, este es el asunto:

Tengo un WinForms (VS 2005) que lee los registros de un archivo de texto (.txt) y los inserta en una base de datos (SQL Server 2000), dichos registros estan delimitados por default por una coma "," es decir:

21, 2, Nissan, Valle, 2008 cuyo INSERT sería INSERT INTO Tabla VALUES(21,2,'Nissan','Valle',2008) por mencionar un ejemplo...

Ahora bien, el problema viene cuando en algunos registros se encuentra esto:

21, 2, Nissan, "Agencia Automotriz, Valle S.A.", 2008 ****Se supone que lo que se encuentra entre comillas es un solo campo pero el sistema al detectar que hay una coma dentro de la cadena lo toma como un registro nuevo por lo tanto al hacer el INSERT marca el error que no corresponde el numero de campos con la estructura de la tabla.

Bien la respuesta mas fácil es cambiar de delimitador por otro caracter pero por alguna razón el usuario no quiere utilizar otro por lo que esa solución esta descartada, CUALQUIER OTRA SUGERENCIA SERÍA DE MUCHA UTILIDAD!

Aquí esta parte del código que estoy utilizando:

sr = New StreamReader(Archivo, New System.Text.UTF7Encoding)
Try
Dim variable As Integer = 0
linea = sr.ReadLine()
Do
variable = variable + 1
encodedBytes = utf8.GetBytes(linea)
decodedString = utf8.GetString(encodedBytes)
lineas += 1
registro = decodedString.Split(",")

For j As Integer = 0 To registro.Length - 1
campos = campos & "'" & registro(j) & "'" & ","
Next

campos = campos.Remove(campos.Length - 1)
status = Class1.Insert(campos, NombreTabla)

linea = sr.ReadLine()
Loop Until linea Is Nothing
  #2 (permalink)  
Antiguo 11/08/2008, 21:45
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Problema con carga de datos desde TXT

en vez de string.Split simple usa Regex.Split y define en q caso omitir la separacion por comas.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:27.