none
Funcion en Visual Basic para generar un autoincrementable RRS feed

  • Pregunta

  • buenas tardes, necesito saber si puedo generar una funcion que haga esto:

    if correlativo >= 0 and correlativo <= 100 then
    
    Libro = "I"
    
    elseif correlativo >=101 and correlativo <= 200 then
    
    Libro = "II"
    
    End If 

    y asi sucesivamente

    agradecere mucho sus comentarios :)

    Gracias de antemano.


    Geovanny Murillo Rocha

    lunes, 4 de julio de 2016 18:21

Respuestas

  • georocha24,

    Por lo que veo lo que incrementas es las veces en que aparece un caracter dentro de la cadena por cada intervalo de 100 ¿verdad?. Puedes hacer lo siguiente:

    Private Function ConcatenarCaracteres(Numero As Integer) As String
    	Dim Intervalo As Integer = 100
    	Dim numeroVeces As Integer = If((Numero \ Intervalo) < 1, 1, Convert.ToInt32(Math.Floor(CDbl(Numero) / Intervalo)))
    	Return New String("|"C, numeroVeces)
    End Function
    
    Private Sub btnMultiplicarCaracteres_Click(sender As Object, e As EventArgs)
    	MessageBox.Show(String.Format("Resultado {0}", ConcatenarCaracteres(Convert.ToInt32(txtCorrelativo.Text))))
    End Sub

    Donde txtCorrelativo.Text contiene un número cualquiera según el rango que definas, por ejemplo, para el número 520 el resultado será |||||

    lunes, 4 de julio de 2016 19:26
  • georocha24,

    Verás lo importante que es indicar exactamente el requerimiento, no imagine que te referías a convertir números arábigos a números romanos. Te dejo un enlace donde se trata el mismo CONVERTIR NUMEROS A ROMANOS

    martes, 5 de julio de 2016 1:23

Todas las respuestas

  • georocha24,

    Por lo que veo lo que incrementas es las veces en que aparece un caracter dentro de la cadena por cada intervalo de 100 ¿verdad?. Puedes hacer lo siguiente:

    Private Function ConcatenarCaracteres(Numero As Integer) As String
    	Dim Intervalo As Integer = 100
    	Dim numeroVeces As Integer = If((Numero \ Intervalo) < 1, 1, Convert.ToInt32(Math.Floor(CDbl(Numero) / Intervalo)))
    	Return New String("|"C, numeroVeces)
    End Function
    
    Private Sub btnMultiplicarCaracteres_Click(sender As Object, e As EventArgs)
    	MessageBox.Show(String.Format("Resultado {0}", ConcatenarCaracteres(Convert.ToInt32(txtCorrelativo.Text))))
    End Sub

    Donde txtCorrelativo.Text contiene un número cualquiera según el rango que definas, por ejemplo, para el número 520 el resultado será |||||

    lunes, 4 de julio de 2016 19:26
  • muchas gracias por responder, el caracter que necesito que incremente es en numero romano por ejemplo:

    de 0 a 100 es libro I

    de 101 a 200 libro II

    de 201 a 300 libro III

    de 301 a 400 libro IV

    y asi sucesivamente 


    Geovanny Murillo Rocha

    lunes, 4 de julio de 2016 19:33
  • georocha24,

    Verás lo importante que es indicar exactamente el requerimiento, no imagine que te referías a convertir números arábigos a números romanos. Te dejo un enlace donde se trata el mismo CONVERTIR NUMEROS A ROMANOS

    martes, 5 de julio de 2016 1:23