none
Mostrar mensaje en variación de texto según porcentaje RRS feed

  • Pregunta

  • Amigos necesito hacer que mi modulo me muestre un mensaje si el texto de un textbox frente al de otro tiene una variación mayor a un 40% por ejemplo, como podría hacer eso? se me ocurre con un IF pero no se como comparar la cantidad de texto,  necesito algo de ayuda con la codificación amigos, esto es en Windows Form con .Net

    Espero de su ayuda amigos por favor.

    miércoles, 1 de agosto de 2018 7:13

Respuestas

  • Hola Miguel:

    Primero ese cálculo del 40% creo que ya lo debes tener hecho, si es así lo mismo lo puedes guardar en una variable, supongamos que en la variable que muestra la diferencia ya tiene ese valor.

    Pues entonces simplemente hacemos el if.

    If Variable > 40 then

       msgbox("Es mayor del 40%")

    elseif  variable < 40 then

        msgbox("Es menor del 40%")

    end sub

    Si tienes algún problema en el cálculo del porcentaje del 40 lo indicas por favor.

    Un cordial saludo.

    Gemma

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    miércoles, 1 de agosto de 2018 8:54
  •  lo que busco es la función de como realizar esos cálculos

    Pero, ¿cuáles son "esos" cálculos? Vuelve a la primera respuesta que te dimos y examina los varios ejemplos que hay ahí acerca de cómo se podría interpretar tu "40%". Todos ellos son completamente distintos, arrojan resultados completamente diferente, y requieren una función completamente diferente. Por favor, para poderte ayudar necesitamos una mayor información acerca de qué es exactamente lo que quieres calcular.

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    miércoles, 1 de agosto de 2018 17:41
  • Ah, vale. Si te da igual cuáles son los caracteres y lo único que te importa es cuántos hay, entonces la diferencia en porcentaje se obtiene con este cálculo:

    Dim porcentaje as double = 100 * (textBox1.Length - textBox2.Length) / textBox1.Length

    Basta que compares ese número con 40 y presentes un mensaje según la comparación.

    Nótese que eso compara el porcentaje respecto a textbox1, que en general será distinto que si la base del porcentaje fuera el textbox2. Por ejemplo, si los dos textboxes tienen 1000 caracteres, esa fórmula da 0% (no hay diferencia). Si el 1 tiene 1000 y el 2 tiene cero, la diferencia es el 100%. Y si el 1 tiene 1000 y el 2 tiene 600, la diferencia es el 40%. Pero si es al revés, es decir, el 1 tiene 600 y el 2 tiene 1000, el porcentaje de variación es -67%, que es muy distinto del 40%. Por eso es muy importante matizar bien las cosas cuando se habla de porcentajes, ya que el porcentaje de A respecto a B no es el mismo que el porcentaje de B respecto a A.

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    jueves, 2 de agosto de 2018 7:09
  • Para saber la cantidad de caracteres tienes dos formas.

    Textbox1.TextLength o Textbox1.Text.Tostring

    y el resultado con una regla de 3
    Por ejemplo:
    Largo total del Textbox1.TextLength = 500 (que seria el 100%)
    Largo total del Textbox2.TextLength = 250 (a simple vista es el 50% pero lo calcularemos)

    Porcentaje = Textbox2.TextLength * 100 / Textbox1.TextLength

    El resultado de: 250 * 100 / 500 = 50%

    Significa que el TextBox2 tiene el 50% de cantidad respecto al TextBox1.

    Creo que eso era lo que buscabas

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    jueves, 2 de agosto de 2018 18:41

Todas las respuestas

  • Lo primero que tienes que hacer es definir con precisión qué es lo que entiendes por la "variación mayor que el 40%". Por ejemplo, "que el segundo textbox no tenga más de un 40% de sus caracteres que no existan en el textbox1", o "que el número de caracteres que existen en ambos textboxes sea al menos un 60% de la longitud del primer textbox", o lo mismo con palabras en lugar de caracteres, o lo mismo pero teniendo en cuenta que solo se consideran "los mismos" si están en el mismo orden, etc., etc.

    Una vez que tengas escrito con precisión cómo se mide ese 40%, entonces diseñamos un bucle o bucles anidados o cualquier otro código que sea necesario para implementar el criterio que hayas definido.

    Asegúrate de que la definición sea lo suficientemente precisa. Para ello, tienes que ser capaz de implementarla "a mano", es decir, imaginándote que no existiesen los ordenadores y que tuvieras dos cadenas de texto y tuvieras que decidir manualmente si cumplen o no cumplen el criterio, tendrías que ser capaz de hacerlo de conformidad con la definición que has escrito, de lo contrario no está suficientemente bien detallada.

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    • Desmarcado como respuesta Miguel Oyarzo lunes, 13 de agosto de 2018 14:05
    miércoles, 1 de agosto de 2018 8:52
  • Hola Miguel:

    Primero ese cálculo del 40% creo que ya lo debes tener hecho, si es así lo mismo lo puedes guardar en una variable, supongamos que en la variable que muestra la diferencia ya tiene ese valor.

    Pues entonces simplemente hacemos el if.

    If Variable > 40 then

       msgbox("Es mayor del 40%")

    elseif  variable < 40 then

        msgbox("Es menor del 40%")

    end sub

    Si tienes algún problema en el cálculo del porcentaje del 40 lo indicas por favor.

    Un cordial saludo.

    Gemma

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    miércoles, 1 de agosto de 2018 8:54
  • Hola amigo. Eso es lo que no tengo hecho amigo, mostrar mensajes es simple, lo que busco es la función de como realizar esos cálculos amigos, si me pueden ayudar con eso se los agradezco mucho.

    Muchas gracias

    miércoles, 1 de agosto de 2018 15:49
  •  lo que busco es la función de como realizar esos cálculos

    Pero, ¿cuáles son "esos" cálculos? Vuelve a la primera respuesta que te dimos y examina los varios ejemplos que hay ahí acerca de cómo se podría interpretar tu "40%". Todos ellos son completamente distintos, arrojan resultados completamente diferente, y requieren una función completamente diferente. Por favor, para poderte ayudar necesitamos una mayor información acerca de qué es exactamente lo que quieres calcular.

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    miércoles, 1 de agosto de 2018 17:41
  • Hola, a que te refieres al 40%? te refieres al 40% letras? Por Ejemplo

    Textbox1.text = "diezletras" (tiene diez caracteres y/o letras seria 100%)

    Textbox2.text = "otro" (tiene 4 caracteres es el 40% respecto a el textbox1)

    Supongo q te refieres a eso o a que exactamente?

    miércoles, 1 de agosto de 2018 18:20
  • mas menos a esto me refiero amigos, por ejemplo:

    textbox 1 podría tener 1000 caracteres o 1500 o 3000 o mas, eso seria el 100% de uno, 

    Textbox 2 podría no tener nada como podría tener 500, todos siempre variables.

    no se si lo mejor seria contar la cantidad de caracteres entre uno y otro y comparar la cantidad, y en caso de existir diferencias entre textbox 1 y textbox 2 que actualice, pero si la diferencia llega a superar un 40 o 50% que indique un mensaje, dentro de ese mensaje después podría ejecutar una acción en particular. 

    Es básicamente eso lo que no entiendo como poder realizar, no se como podría contar la cantidad de caracteres como un 100% ...Jamas hice eso, por eso mismo tengo toda esta duda amigos, ojala me puedan tirar una ayuda con eso si fuera posible, el calcular las cantidades de caracteres entre uno y otro.

    perdón si me explico mal, pero como esta parte es algo nuevo no se si se logra entender que es lo que deseo realizar, muchas gracias.

    miércoles, 1 de agosto de 2018 21:50
  • Ah, vale. Si te da igual cuáles son los caracteres y lo único que te importa es cuántos hay, entonces la diferencia en porcentaje se obtiene con este cálculo:

    Dim porcentaje as double = 100 * (textBox1.Length - textBox2.Length) / textBox1.Length

    Basta que compares ese número con 40 y presentes un mensaje según la comparación.

    Nótese que eso compara el porcentaje respecto a textbox1, que en general será distinto que si la base del porcentaje fuera el textbox2. Por ejemplo, si los dos textboxes tienen 1000 caracteres, esa fórmula da 0% (no hay diferencia). Si el 1 tiene 1000 y el 2 tiene cero, la diferencia es el 100%. Y si el 1 tiene 1000 y el 2 tiene 600, la diferencia es el 40%. Pero si es al revés, es decir, el 1 tiene 600 y el 2 tiene 1000, el porcentaje de variación es -67%, que es muy distinto del 40%. Por eso es muy importante matizar bien las cosas cuando se habla de porcentajes, ya que el porcentaje de A respecto a B no es el mismo que el porcentaje de B respecto a A.

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    jueves, 2 de agosto de 2018 7:09
  • Para saber la cantidad de caracteres tienes dos formas.

    Textbox1.TextLength o Textbox1.Text.Tostring

    y el resultado con una regla de 3
    Por ejemplo:
    Largo total del Textbox1.TextLength = 500 (que seria el 100%)
    Largo total del Textbox2.TextLength = 250 (a simple vista es el 50% pero lo calcularemos)

    Porcentaje = Textbox2.TextLength * 100 / Textbox1.TextLength

    El resultado de: 250 * 100 / 500 = 50%

    Significa que el TextBox2 tiene el 50% de cantidad respecto al TextBox1.

    Creo que eso era lo que buscabas

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 18:03
    jueves, 2 de agosto de 2018 18:41