elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  como tomar la parte de un numero de dos digitos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como tomar la parte de un numero de dos digitos  (Leído 4,088 veces)
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
como tomar la parte de un numero de dos digitos
« en: 10 Febrero 2020, 18:35 pm »

Hola a Todos

Despues de algun tiempo he vuelto a este vicio de programar jeje pero ando muy quemado ;(

lo que quiero hacer es que a un número de dos dígitos tomar solo uno de ellos :

explico tengo unos texbox donde introdusco estos numeros:
Código
  1. ReadOnly Property Num1 As Int32
  2.        Get
  3.            Return CInt(TextBox1.Text)
  4.        End Get
  5.    End Property

se supone que de ahi va para la función que paso por estos números etc etc .lo que quiero es modificar que si pongo por ejemplo el numero 20 pueda solo tomar el de la derecha o sea el 0 o viceversa ,esto lo envio a una variable l:

Código
  1. Result1 = {Num1 + 1, Num1 + 3} _
  2.                  .Distinct().ToArray ' Elimino duplicados


He probado en propiedades del texbox pero no es lo que quiero ,quiero es fracionar el numero sea al derecho o la isquierda


saludos
Luis


« Última modificación: 24 Marzo 2020, 08:24 am por luis456 » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.041



Ver Perfil
Re: como tomar la parte de un numero de dos digitos
« Respuesta #1 en: 11 Febrero 2020, 00:30 am »

Saludos,

- Jeje acabo de descargarme el Visual Basic Express 2005 para hacer la prueba XD: http://go.microsoft.com/fwlink/?linkid=57033

- Lo cierto es que lo más habitual es ver que usan aritmética sencilla para obtener rangos numéricos si se están trabajando números, por ejemplo si tengo el número 32 y quiero el 2, pues le saco el módulo (resto) de 10:

2 = 32 % 10

- Si quiero el 3, divido el 32 entre 10 y le substraigo el módulo

3 = 32 / 10 - ( ( 32 % 10 ) / 10 )

-- Puedes ahorrarte la resta y simplemente dividir si conviertes el resultado a Entero

Código
  1. Public Class Form1
  2.    Private Sub btnCalc_Click(ByVal sender As System.Object, _
  3.    ByVal e As System.EventArgs) Handles btnCalc.Click
  4.        Dim num As Integer = txtNum.Text
  5.        txtDer.Text = num Mod 10
  6.        txtIzq.Text = num / 10 - ((num Mod 10) / 10)
  7.    End Sub
  8. End Class

- Otra opción es usar las funciones predefinidas para tratar texto, en este caso Substring:

Código
  1. Public Class Form1
  2.    Private Sub btnCalc_Click(ByVal sender As System.Object, _
  3.    ByVal e As System.EventArgs) Handles btnCalc.Click
  4.        txtDer.Text = txtNum.Text.Substring(1, 1)
  5.        txtIzq.Text = txtNum.Text.Substring(0, 1)
  6.    End Sub
  7. End Class


En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 668



Ver Perfil WWW
Re: como tomar la parte de un numero de dos digitos
« Respuesta #2 en: 11 Febrero 2020, 21:48 pm »

Facilmente Conviertes el texto del Textbox a un  Char Array y lo recorres con un For .

1) El textbox solo tendrá números de 2 dígitos? , si contiene mas de 2 dijitos entoces le metes un IF comprobando el ARRAY.COUNT.

te pongo un Ejemplo :

Código
  1. Dim NumerodeIzquierda As String = String.Empty
  2.        Dim NumerodeDerecha As String = String.Empty
  3.  
  4.        'Obtenemos Texto
  5.        Dim Numeros As String = TextBox1.Text
  6.        'Convertimos en un Array
  7.        Dim TextArray() As Char = Numeros.ToArray
  8.        Dim Check As Integer = 0
  9.        ' Recorremos.
  10.        For Each Numero As Char In TextArray
  11.            If TextArray.Count = 2 Then
  12.                If Check = 0 Then
  13.                    NumerodeIzquierda = Numero.ToString
  14.                    Check = 1
  15.                ElseIf Check = 1 Then
  16.                    NumerodeDerecha = Numero.ToString
  17.                    Check = 2
  18.                End If
  19.            End If
  20.        Next

Bueno esto seria un solución rapida, como especificaste Te separa los dos números .

Ej : Con el numero 32 te deja ;

Código:
NumerodeIzquierda = 3

 NumerodeDerecha = 2

Recuerda que esto es en caso de que el numero sea solo de 2 dígitos, bueno aunque si modificas un toke lo ajustas a tus necesidades.

Mi Forma de Hacer Fácilmente lo que pides seria esta:

Código
  1. Dim Numeros As String = TextBox1.Text   ' Obtenemos Texto del textbox en este caso seria 32
  2.                    msgbox(Numeros(0))    ' Asi obtienes el Primer numero, en este caso es el 3
  3.                    msgbox(Numeros(1))    ' Asi obtienes el Segundo numero, en este caso es el 2
  4.  

en este caso es casi lo mismo que te puso el Compañero @EdePC . la diferencia es que ahi el esta tomando el numero en modo de rango (yo lo usaria para una gran cantidad de digitos ) :

Código:
txtDer.Text = txtNum.Text.Substring(1, 1)
        txtIzq.Text = txtNum.Text.Substring(0, 1)

Para aplicarlo a tan solo 2 dígitos solo tomo el numero por posición como te mostré anteriormente.



No mames @EdePC , Ahora le entras a vb.net .

« Última modificación: 11 Febrero 2020, 22:17 pm por **Aincrad** » En línea



luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: como tomar la parte de un numero de dos digitos
« Respuesta #3 en: 12 Febrero 2020, 13:32 pm »

Gracias a los dos por sus aporte ,probare los metodos,pero claro programo por ahora lo fines de semana,ya que trabajo fuera de casa toda la semana y este portatil no tira bien jeje y para programar no vale

Ya os contare como fue cuando llegue a casa

Saludos
Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.041



Ver Perfil
Re: como tomar la parte de un numero de dos digitos
« Respuesta #4 en: 12 Febrero 2020, 16:19 pm »

... y este portatil no tira bien jeje ...

- Por eso me descargué la versión 2005 XD. Al cabo es para hacer cositas sencillitas.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: como tomar la parte de un numero de dos digitos
« Respuesta #5 en: 12 Febrero 2020, 17:36 pm »

Veamos de entrada si tienes una cifra de 0 a 99, es decir de dos cifras, basta con usar un tipo de datos byte.

Segundo, obtener cualquier dígito de un número es algo trivial, ya son matemáticas de niños de 10 años.

La función módulo (resto de una división) en un valor decimal pué sse queda con la última cifra dle valor:
123 modulo 10 = 3
para quedarse con la cifra del medio. Primero hay que saber si queremos acceder a ella solo tras haber tomado el las unidades o directamente.
- Si ya hemos tomado las unidades, para tomar las decenas, recurridmoa las matemáticas, haciendo una división que se quede solo con la parte entera:
123 / 10 = 12'3
la parte entera en 12, que en programación (VB) puede hacerse con 123 \ 10 = 12
ahora como el 2 son las unidades, procedes igual que antes...

etc, etc... sea cual sea el número.
Las divisiones y módulos son operaciones muy rápidas, así que no convierta a string un número salvo que luego tengas hacer otras cosas de tipo string con ello...
Si directamente el dato es un string (caso del vaslor procedente de un control de texto, por ejemplo), puedes acceder direcamente al carácter en una posición dada, mediante alguno de los métodos que provee la clase string, o los métodos heredados  de antiguas versiones de Basic, como son Left, Mid y Right, que admeás te permiten tomar más de un carácter a la vez.

Sé eficiente, pensando en si toda la operación es de cadenas o de números. No alternes alegremente entre uno y otro caso contínuamente a la hora de resolver problemas, acaba en ineficiencia...
En línea

luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: como tomar la parte de un numero de dos digitos
« Respuesta #6 en: 13 Febrero 2020, 13:23 pm »

Bueno mientras espero el fin de semana a llegar a casa y pensando en esto  ::)

se me ocurre que ya que tengo lo del los tex echo ,es trabajar en la variable : explico

Código
  1. Result1 = {Num1 + 1, Num1 + 3} _
  2.                  .Distinct().ToArray ' Elimino duplicados


Num1 es la variable que trae los numeros ,mi idea es antes de pasarlo por esta funcion que venga ya con el numero unico ,me imagino que lo podria hacer con la funcion de estraer ??

Substring(1, 1) por ejemplo

saludos
Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: como tomar la parte de un numero de dos digitos
« Respuesta #7 en: 15 Febrero 2020, 16:55 pm »

Bueno chicos he resuelto mi problema de la forma mas fácil :

Código
  1. ReadOnly Property Num6 As Int32
  2.    ' Get
  3.    ' Return CInt(TextBox6.Text)
  4.    ' End Get
  5.    ' End Property
  6.  
  7.    ReadOnly Property Num6 As Int32
  8.        Get
  9.            Return CInt(TextBox6.Text.Substring(0, 1))
  10.            'TextBox6.Text.Substring(1, 1)
  11.        End Get
  12.    End Property

Gracias a todos por vuestro aporte :)
hasta la siguiente ves

Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines