Split y commas en los valores

24/07/2003 - 13:02 por PaVBLo | Informe spam
Buenas.

Una pregunta, ayer me mencionaron en el grupo que podría leer mis documentos
CSV (o de textos delimitados por coma) usando la funcion SPLIT.
Lo que ocurre es que tengo varios de los valores de los registros con
valores que incluyen coma, algo asi:

"ID","Name", "Country", etc...
"T111", "Gonzalez, Oscar", "España", etc..

Se os ocurre alguna manera sencilla de verificar esto? (si me ayudais con
alguna función)

Gracias por adelantado.

PaVBlo

Preguntas similare

Leer las respuestas

#6 Jhonny Vargas P.
24/07/2003 - 20:54 | Informe spam
Que buena función.

Gracias.


"PaVBLo" wrote in message
news:
Esto es como me quedó... Lo saqué de por allí, es usando Regular
Expressions:

Function SplitAdv(strInput)
Dim objRE
Set objRE = new RegExp
objRE.IgnoreCase = true
objRE.Global = true
objRE.Pattern = ",(?=([^""]*""[^""]*"")*(?![^""]*""))"
SplitAdv = Split(objRE.Replace(strInput, "\b"), "\b")
End Function

Funcionó a la PERFECCIÓN!!! Devuelve un array con cada uno de los campos


del
CSV (tengan o no comas, y comillas), por curiosidad pruebenlo o guardenlo
porque siempre hace falta.

Muchas gracias Jhonny y Shashka (aunque no te entendí demasiado... no es


mi
fuerte el jsp).

Para quien le interese consultar la fuente de ese código es:
http://www.4guysfromrolla.com/webte...-1.3.shtml

Saludos,

PaVBlo


"Jhonny Vargas P." escribió en el


mensaje
news:
> mmm... se me ocurre lo siguiente
>
> 1ro. reemplaza en la línea los caracteres ", " por un "###"
> ejemplo: Linea = Replace(Linea, "", "", "###")
> 2do. reemplaza en la línea las " por un nulo o nada
> ejemplo: Linea = Replace(Linea, """, "")
>
> 3ro. finalmente utilizas el Split()
> ejemplo: Arreglo = Split(Linea, "###")
>
>
> La idea es cambiar el separador ", " por un ###, luego borrar las " y
> finalmente aplicar el split...
>
>
> Saludos,
> Jhonny Vargas P. [MS MVP-ASP]
> Santiago de Chile
>
>
> "PaVBLo" wrote in message
> news:
> > Jhonny,
> >
> > Gracias por contestar. Creo que no me he explicado del todo bien. Lo


que
> > sucede es que "Gonzalez, Oscar", no debe ir en dos lugares del arreglo
> > distintos, es decir:
> >
> > arreglo(1) ="Gonzalez, Oscar"
> >
> > No es realmente mi problema las comillas pues, como tú bien dices,


basta
> con
> > reemplazarlas por "nada". Eso será luego de que pueda indentificar


cada
> uno
> > de los campos en el lugar del arreglo correctamente.
> >
> > Inclusive, y es algo que no aclaré cuando inicié mi pregunta, es que


los
> > valores en blanco no llevan comillas. Lo explico:
> >
> > MI CSV:
> > cabecera --> "ID","Name", "Country", "Age", "BirthDate", "State",


etc...
> > registro 1 --> "T111", "Gonzalez, Oscar", "España", "12",


"10/10/1956",
> > "España", etc...
> > registro 2 --> "T222", "Ramirez, Luis",,"15",, etc...
> >
> > Entonces, cuando recorro cada fila y busco las "comas", me separa un
valor
> > en 2 partes (Gonzalez y Oscar, Ramirez y Luis, etc.), y, además, si
> intento
> > buscar lo que está contenido entre dos comillas ("Gonzalez, Oscar"), a
los
> > otros campos que se encuentran vacíos no los considera pues no hay
> comillas
> > en medio sino "comas" seguidas (,,,,).
> > No sé si me has (han) entendido.
> >
> > Gracias por tu disposición.
> >
> > PaVBlo
> >
> >
> >
> > "Jhonny Vargas P." escribió en el
> mensaje
> > news:
> > > Hola Pablo,
> > >
> > > Al utilizar el split de esto ["T111", "Gonzalez, Oscar", "España",
> 123456,
> > > etc..] con el separador , (coma)
> > > te quedaría un arreglo asi:
> > >
> > > arreglo(0) = ""T111""
> > > arreglo(1) = ""Gonzalez""
> > > arreglo(2) = ""Oscar"
> > > arreglo(3) = ""España""
> > > arreglo(4) = "123456"
> > >
> > > Por lo tanto solo deberías quitar las doble comillas, ¿como?, con la
> > función
> > > Replace. Ejemplo:
> > >
> > > 'Reemplazamos el caracter " por nada... es decir, lo borramos.
> > > arreglo(0) = replace(arreglo(0), Chr(34), "")
> > > 'Chr(34) = " (doble comilla)
> > >
> > >
> > > Saludos,
> > > Jhonny Vargas P. [MS MVP-ASP]
> > > Santiago de Chile
> > >
> > >
> > >
> > >
> > > "PaVBLo" wrote in message
> > > news:
> > > > Buenas.
> > > >
> > > > Una pregunta, ayer me mencionaron en el grupo que podría leer mis
> > > documentos
> > > > CSV (o de textos delimitados por coma) usando la funcion SPLIT.
> > > > Lo que ocurre es que tengo varios de los valores de los registros
con
> > > > valores que incluyen coma, algo asi:
> > > >
> > > > "ID","Name", "Country", etc...
> > > > "T111", "Gonzalez, Oscar", "España", etc..
> > > >
> > > > Se os ocurre alguna manera sencilla de verificar esto? (si me
ayudais
> > con
> > > > alguna función)
> > > >
> > > > Gracias por adelantado.
> > > >
> > > > PaVBlo
> > > >
> > > >
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida