none
Bucle con arraylist RRS feed

  • Pregunta

  • Hola,

    Estoy usando un servicio web que pide como parámetro "parametros as string()" y tengo que hacer un bucle de uno a 100 para ir invocando al servicio con cada numero para que me devuelva los resultados.

    For i = 1 to 100

    next

    Mi problema es que no se como rellenar el array parametros con el valor de i

    Muchas gracias y un saludo,  

    miércoles, 17 de enero de 2018 18:02

Respuestas

  • "Daniel Palomero" escribió:

    > Estoy usando un servicio web que pide como parámetro "parametros as string()"
    > y tengo que hacer un bucle de uno a 100 para ir invocando al servicio con cada
    > numero para que me devuelva los resultados.
    >
    > For i = 1 to 100
    >
    > next
    >
    > Mi problema es que no se como rellenar el array parametros con el valor de i

    Hola, Daniel:

    Si la firma del procedimiento tiene un parámetro declarado como una matriz de valores String:

        Sub NombreProcedimiento(parametros As String())
    
        End Sub
    

    Entiendo que lo que le tienes que pasar es una variable declarada como una matriz de valores String:

     
        ' Declarar una matriz de valores alfanuméricos
        Dim parametros As String() = {"valor1", "valor2", "valor3", "valor2938"}
    
        ' Pasar la matriz al procedimiento
        NombreProcedimiento(parametros)
    

    ¿Que tienes que recorrer un bucle For ... Next para establecer los valores de los elementos de la matriz? Puedes recorrerlo de la siguiente manera:

        ' Declarar una matriz de 100 elementos.
        Dim parametros(99) As String
    
        For i As Integer = 0 To 99
            ' Al valor de la variable de iteración (i)
            ' sumarle una unidad.
            parametros(i) = (i + 1).ToString()
        Next
    
        NombreProcedimiento(parametros)
    

    En el ejemplo, he rellenado los valores con valores alfanuméricos del 1 al 100. Ahora lo que tienes que hacer es asignarle el valor que realmente deben contener los elementos de la matriz.

    Recuerda que en Visual Basic los índices de las matrices están en base cero, lo que significa que el primer elemento tiene el índice 0, el segundo el 1, el tercero el 2, etc., de ahí que la matriz la haya declarado con 100 elementos (99), ya que los índices van del 0 al 99, en total, 100 elementos.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    miércoles, 17 de enero de 2018 18:33
    Moderador

Todas las respuestas

  • "Daniel Palomero" escribió:

    > Estoy usando un servicio web que pide como parámetro "parametros as string()"
    > y tengo que hacer un bucle de uno a 100 para ir invocando al servicio con cada
    > numero para que me devuelva los resultados.
    >
    > For i = 1 to 100
    >
    > next
    >
    > Mi problema es que no se como rellenar el array parametros con el valor de i

    Hola, Daniel:

    Si la firma del procedimiento tiene un parámetro declarado como una matriz de valores String:

        Sub NombreProcedimiento(parametros As String())
    
        End Sub
    

    Entiendo que lo que le tienes que pasar es una variable declarada como una matriz de valores String:

     
        ' Declarar una matriz de valores alfanuméricos
        Dim parametros As String() = {"valor1", "valor2", "valor3", "valor2938"}
    
        ' Pasar la matriz al procedimiento
        NombreProcedimiento(parametros)
    

    ¿Que tienes que recorrer un bucle For ... Next para establecer los valores de los elementos de la matriz? Puedes recorrerlo de la siguiente manera:

        ' Declarar una matriz de 100 elementos.
        Dim parametros(99) As String
    
        For i As Integer = 0 To 99
            ' Al valor de la variable de iteración (i)
            ' sumarle una unidad.
            parametros(i) = (i + 1).ToString()
        Next
    
        NombreProcedimiento(parametros)
    

    En el ejemplo, he rellenado los valores con valores alfanuméricos del 1 al 100. Ahora lo que tienes que hacer es asignarle el valor que realmente deben contener los elementos de la matriz.

    Recuerda que en Visual Basic los índices de las matrices están en base cero, lo que significa que el primer elemento tiene el índice 0, el segundo el 1, el tercero el 2, etc., de ahí que la matriz la haya declarado con 100 elementos (99), ya que los índices van del 0 al 99, en total, 100 elementos.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    miércoles, 17 de enero de 2018 18:33
    Moderador
  • Muchas gracias, 

    Ya he conseguido que funcione. El array es de una única dimensión, lo he realizado de esta forma

    For i = 1 to 100

    parametros(0) = i.ToString

    Next

    Tenia un problema al convertir las variables

    miércoles, 17 de enero de 2018 18:45
  • "Daniel Palomero" escribió:

    > For i = 1 to 100
    >
    >    parametros(0) = i.ToString
    >
    > Next

    Te advierto que si recorres el bucle tal cual lo has indicado, el primer elemento del array tendrá el valor alfanumérico "100" al finalizar el bucle, y los 99 elementos restantes tendrán el valor alfanumérico "0". Ignoro por completo si esos son los valores que espera el procedimiento al cual llamas. ¿?


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.




    miércoles, 17 de enero de 2018 19:14
    Moderador