Arrat de String's

28/03/2005 - 01:18 por Angel | Informe spam
Hola amigos,

Mi problema es el siguiente:

Supongamos que me llega el siguiente string:

FMM/5
1/BR864/19MAR/LGW
BRU
121-42751741LGWBRU/T5K46MCO.12/NEWSPAPERS
121-73023521LGWBRU/T1K4MCO.05/ACFT INST
LAST

Tengo el siguiente código que me introduce en un array cada una de las
líneas.

Public Function Dividir_Mensaje(ByVal Mensaje As String, ByVal ParamArray
Delimitador() As Char) As String()
Return Mensaje.Split(Delimitador)

End Function

Ahora bien, de cada una de esas líneas tengo que separar por el delimitador
"/". Habia pensado en crearme un array que redimensionandolo guardara cada
una de las partes delimitadas por el caracter "/". El código que realice es
el siguiente:

Dim arrLineas() As String
Dim arrAux() As String
Dim arrCampos() As String
Dim i As Integer
Dim j As Integer
objValidaMensaje = New clsValidaMensaje(strServidor, strBaseDatos,
strConexion)

arrLineas = objValidaMensaje.Dividir_Mensaje(txtMensaje.Text, Chr(13))

For i = 0 To UBound(arrlineas)

arrAux = objValidaMensaje.Dividir_Mensaje(arrLineas(i), "/")

For j = 0 To UBound(arrAux)

ReDim Preserve arrCampos(arrAux(i) + 1)

Next j

Next i

arrLineas = Nothing

arrAux = Nothing

El problema es que al realizar Redim Preserve me genera un error.

¿Es posible redimensionar un array de String? ¿Alguien tiene alguna idea
mejor de como realizarlo?

Acepto todas sus sugerencias.

Muchas gracias de antemano.

Preguntas similare

Leer las respuestas

#6 Mario
29/03/2005 - 15:28 | Informe spam
Una duda,

Que significa la "c" de (Split("/"c))

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
El codigo puede mejorarse un poco mas. Ya que un ReDim Preserve requiere
crear un nuevo array y copiar el contenido del viejo al nuevo conviene


fijar
el tamaño del array al principio si el numero de campos es fijo. Si el
numero de campos es variable, entonces te conviene usar un ArrayList
inicializandolo con la cantidad promedio de campos que esperas (por


defecto
inicia con espacio para 16 elementos). Si el ArrayList se queda sin


espacio
crece automaticamente para aceptar mas elementos. Ademas, For Each es mas
lento que una indexacion con enteros. Por ejemplo:

Dim lineas() As String = txtMensaje.Text.Split(Convert.ToChar(13))
Dim campos As New System.Collections.ArrayList

For i As Integer = 0 To lineas.Length - 1
campos.AddRange(lineas(i).Split("/"c))
Next

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo



https://mvp.support.microsoft.com/p...4EF5A4191C


Respuesta Responder a este mensaje
#7 Eduardo A. Morcillo [MS MVP VB]
29/03/2005 - 17:11 | Informe spam
Que significa la "c" de (Split("/"c))



Significa que "/" es un Char y no un String.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C
Respuesta Responder a este mensaje
#8 Mario
29/03/2005 - 17:28 | Informe spam
Gracias.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:%
> Que significa la "c" de (Split("/"c))

Significa que "/" es un Char y no un String.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo



https://mvp.support.microsoft.com/p...4EF5A4191C


Respuesta Responder a este mensaje
#9 Angel
29/03/2005 - 18:28 | Informe spam
Es bueno saberlo, así se tiene donde elegir.

Gracias Eduardo.

Saludos a todos.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
El codigo puede mejorarse un poco mas. Ya que un ReDim Preserve requiere
crear un nuevo array y copiar el contenido del viejo al nuevo conviene


fijar
el tamaño del array al principio si el numero de campos es fijo. Si el
numero de campos es variable, entonces te conviene usar un ArrayList
inicializandolo con la cantidad promedio de campos que esperas (por


defecto
inicia con espacio para 16 elementos). Si el ArrayList se queda sin


espacio
crece automaticamente para aceptar mas elementos. Ademas, For Each es mas
lento que una indexacion con enteros. Por ejemplo:

Dim lineas() As String = txtMensaje.Text.Split(Convert.ToChar(13))
Dim campos As New System.Collections.ArrayList

For i As Integer = 0 To lineas.Length - 1
campos.AddRange(lineas(i).Split("/"c))
Next

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo



https://mvp.support.microsoft.com/p...104EF5A419
1C


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