Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: HJZR4 en 31 Octubre 2007, 11:12 am



Título: Duda con "Split"
Publicado por: HJZR4 en 31 Octubre 2007, 11:12 am
Pos mi problema es el siguiente: Estoy separando una cadena por el caracter "_" y la cadena es la siguiente:
    "Hola_HJZR4_Quetal_bien"
Cómo puedo contar las separaciones que hay? En el caso de que no supiese cual es la cadena...

Si no se entiende, decidlo y me intento explicar mejor ^^

Muchas gracias. :p



Título: Re: Duda con "Split"
Publicado por: Tughack en 31 Octubre 2007, 11:29 am
Poenete a leer la documentacion y no hagas perguntas tontas.


Título: Re: Duda con "Split"
Publicado por: Spider-Net en 31 Octubre 2007, 13:17 pm
Recorre la cadena caracter a caracter y cuando encuentres un "_" suma uno a un contador, ejemplo:

Código
  1. Dim x As Integer
  2. Dim cadena As String
  3.  
  4. Public Function Contador()
  5. Dim i As Integer
  6. Dim c As String
  7. x = 0
  8. cadena = "Hola_HJZR4_Quetal_bien"
  9. For i = 1 To Len(cadena)
  10.    c = Mid(cadena, i, 1)
  11.    If c = "_" Then
  12.        x = x + 1
  13.    End If
  14. Next i
  15. End Function
  16.  
  17.  

Ahora solo tienes que hacer un for que haga el split desde 0 hasta x-1 y ya está ;)

Tughack tan simpático como siempre... ^^

Saludos.


Título: Re: Duda con "Split"
Publicado por: HJZR4 en 31 Octubre 2007, 13:24 pm
Tughack, si, puede que lleves razón. Pero tu crees que es necesario esa manera de decirlo? -.-


Título: Re: Duda con "Split"
Publicado por: Hans el Topo en 31 Octubre 2007, 14:32 pm
MSDN LIBRARY
Código:
Split(expresión[, delimitador[, cuenta[, comparación]]])

La sintaxis de la función Split tiene las siguientes partes:

Parte Descripción
expresión
 Requerido. Expresión de cadena que contiene las subcadenas y delimitadores. Si expresión es una cadena de longitud cero, Split devuelve una matriz vacía, es decir, una matriz sin elementos ni datos.
delimitador
 Opcional. Carácter de cadena que se usa para identificar los límites de las subcadenas. Si se omite, se asume que el carácter delimitador es el carácter de espacio (" "). Si delimitador es una cadena de longitud cero, se devuelve una matriz de un solo elemento que contiene toda la expresión.
cuenta
 Opcional. número de subcadenas que se va a devolver; -1 indica que se devuelven todas las subcadenas.
comparación
 Opcional. Valor numérico que indica el tipo de comparación que se va a usar al evaluar las subcadenas. Consulte la sección Valores para saber cuáles son los valores permitidos.


Valores
El argumento comparación puede tener los siguientes valores:
Constante Valor Descripción
vbBinaryCompare 0 Realiza una comparación binaria.
vbTextCompare 1 Realiza una comparación de texto.


Comentarios
El siguiente ejemplo usa la función Split para devolver una matriz a partir de una cadena. La función realiza una comparación de texto del delimitador y devuelve todas las subcadenas.
Dim MiCadena, MiMatriz
MiCadena = Split("VBScriptXisXfun!", "x", -1, 1)
' MiCadena(0) contiene "VBScript".
' MiCadena(1) contiene "es".
' MiCadena(2) contiene "divertido".



Título: Re: Duda con "Split"
Publicado por: Lambda en 31 Octubre 2007, 14:39 pm
MsgBox UBound(Split("Hola_Test1_test2_test3", "_"))

Resultado: 3


Título: Re: Duda con "Split"
Publicado por: elmaro en 2 Noviembre 2007, 02:21 am
Código:
CantidadRegistros = Ubound(Split("Hola_Que_Tal_?", "_"))
Text1.text = CantidadRegistros

algo muy parecido a lo anterior
un ejemplo de mas no viene mal ;)