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

[SOLUCIONADO] Problema con split() i delimitadores

Estas en el tema de Problema con split() i delimitadores en el foro de .NET en Foros del Web. Que tal amigos. Veréis, tengo el típico fichero de texto cuyo delimitador entre campos es el | El objetivo es coger cada campo y introducirlo ...
  #1 (permalink)  
Antiguo 27/02/2014, 18:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 1 mes
Puntos: 3
Pregunta Problema con split() i delimitadores

Que tal amigos.

Veréis, tengo el típico fichero de texto cuyo delimitador entre campos es el |

El objetivo es coger cada campo y introducirlo en una tabla de una base de datos.

El caso es que cojo el fichero, lo leo y con la función split("|") lleno un array de strings (lo he declarado con el nombre "campos") con los campos que devuelve el split(|).

Sin embargo, hay ficheros que cuando tienen los campos vacíos, la función split() ya no sirve, ya que en vez de estar todos los campos delimitados por | , algunos están con || (o incluso ||| o más), ya que los campos en blanco en vez de poner espacio, se quedan las barras juntas.

Por lo tanto, el split() en vez de cogerme 10 campos, me coge 3 o 4. Y eso, a la hora de hacer el insert en la tabla pues no va bien, ya que no coinciden los campos.

Había pensado en hacer campos = lineafichero.split(|) & lineafichero.split(||) & lineafichero.split(|||), pero seguramente no coincidan el orden de campos, con lo que tampoco me serviría.

Os habéis encontrado con esta problemática? Como os lo montáis para estos casos? con algún tipo de replace o algo?

Saludos
  #2 (permalink)  
Antiguo 28/02/2014, 00:51
 
Fecha de Ingreso: marzo-2010
Mensajes: 191
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Problema con split() i delimitadores

Solucionado, he ido haciendo replace conforme iba encontrando la problematica y ya está, todo OK.

Etiquetas: split, string
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 22:51.