Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Dreamaker en 13 Abril 2010, 04:12 am



Título: [Duda] No entiendo el Val y Str
Publicado por: Dreamaker en 13 Abril 2010, 04:12 am
Hola chicos, bueno vengo a postear esta duda porque hoy en la clase del colegio de laboratorio en VB 6 hicimos una calculadora que constaba de 2 textboxes donde se ingresaban 2 números, un botón llamado sumar donde se insertaba el código, y un label donde se mostraba el resultado final de la operación, les dejo el código:

Código
  1. Private Sub cmdBoton1_Click()
  2. Dim sngX As Single, sngY As Single, sngResult As Single
  3. 'Carga de datos
  4.  
  5. sngX = Val(txtValor1.Text)  'El textbox Nº1 donde se ingresa el primer numero se llama txtValor1
  6. sngY = Val(txtValor2.Text)  'El textbox Nº2 donde se ingresa el primer numero se llama txtValor2
  7. 'Calculo de la suma
  8.  
  9. sngResult = sngX / sngY
  10. lblSalida.Caption = Str(sngResult)
  11. End Sub

Mi prof dijo que no era lo mismo poner sngX = Val (txtValor1.Text) que poner sngX = txtValor1.Text ya que en el 2do caso estaría guardando en la variable el cartel del contenido del textbox (el número) pero no como número sino como un string, y se le pone el val para que lo convierta en número

Después en lblSalida.Caption lo mismo, pone lblSalida.Caption = Str (sngResult) en vez de lblSalida.Caption = sngResult que dice que aunque llegue a funcionar no está bien, porque el resultado lo tiene que convertir a caracteres osea de tipo string

La verdad no le entendí nada por qué usa el Val y el Str ya que yo pensaba que era lo mismo sin ponerlos, les pido por favor si me pudieran explicar el por qué y la diferencia

Muchisimas gracias ;)


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Shell Root en 13 Abril 2010, 04:22 am
Supongamos que alguien realice estó:
Código
  1. Text1.Text = a + 1
Obviamente daria error, pero que pasa si realiza estó
Código
  1. Text1.Text = VAL(a)  + VAL(1)
Inmediatamente la función Val() deja de leer la cadena en el primer carácter que no puede reconocer como parte de un número. Así que por esté lado, seria como parte de algun mmm digamos verificación de datos.




Ahora que pasa con la función str(), seria al contrario, supongamos que estamos dando un parametro para un StoreProcedure, donde el parametro es obligatoriamente un String (Varchar), que pasa si por cosas de la vida, le ingresas un numero?, Daria error, por el tipo de dato.


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: GhostLT en 13 Abril 2010, 05:57 am
La función Val convierte una cadena en un número
Ejemplo:

cadena = "123456"
cadena = Val(cadena)

La función Str un número en una cadena.
Ejemplo:

'Ahora cadena vale 123456

cadena2 = 123456
cadena2 = Str(cadena2)

'Ahora cadena2 vale "123456"


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: BlackZeroX en 13 Abril 2010, 06:41 am
Text1.Text = a + 1

eso no da error eso da como resultado 1 y si a fuese asi un string que contiene algo solo lo concatena con el 1 al final.

Text1.Text = VAL(a)  + VAL(1)

No tiene caso poner val(1) 1 se etiende como numero siempre y cuando no este entre comillas o en una vairable tipo string variant o similar

Ducles Lunas!¡.


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Dreamaker en 13 Abril 2010, 16:47 pm
mmm todavía no lo termino de entender :-\ alguien tendrá con algún ejemplo para entenderlo mejor?

Muchas gracias! ;D


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Novlucker en 13 Abril 2010, 16:53 pm
Mi dios! Si entiendes que hay diferentes tipos de variables? :huh:

Piensa que no puedes sumar una letra y un número, y para eso tienes que convertirlos, así como también tienes que convertir las variables para poder utilizarlas en determinados lugares, ya que si tienes un lugar (el caption por ejemplo) que acepta letras y tu le quieres meter un número es lógico que se "parta".

Ahora queda claro verdad?
(http://img689.imageshack.us/img689/8711/armay.jpg)

Saludos




Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Dreamaker en 13 Abril 2010, 17:02 pm
Mi dios! Si entiendes que hay diferentes tipos de variables? :huh:

Piensa que no puedes sumar una letra y un número, y para eso tienes que convertirlos, así como también tienes que convertir las variables para poder utilizarlas en determinados lugares, ya que si tienes un lugar (el caption por ejemplo) que acepta letras y tu le quieres meter un número es lógico que se "parta".

Ahora queda claro verdad?
(http://r.i.elhacker.net/cache?url=http://s3.subirimagenes.com:81/otros/4353891arma.jpg)

Saludos




Tranquilo nov :xD

Si mal no entendí es para que si se pone "5" no lo tome como un string o cadena de caracteres si no como un número, ahora si el usuario ingresa una letra, ¿En qué lo transforma? Si no lo puede transformar en número...

Suponiendo que en las casillas donde hay que ingresar números, coloca X y en la otra Y y los tiene que sumar, si no estuviera el val los concatenaría como XY verdad??

Y si está el Val que haría al ingresar esas 2 letras?

Probé con este código y funciona igual :huh:

Código
  1. Private Sub Command1_Click()
  2. Dim sngX As Single, sngY As Single, sngresult As Single
  3. sngX = Text1.Text
  4. sngY = Text2.Text
  5. sngresult = sngX + sngY
  6. Label1.Caption = sngresult
  7. End Sub


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Novlucker en 13 Abril 2010, 17:14 pm
Eso mismo.

Ahora, eso que preguntas te lo puedes responder tu mismo, solo tienes que probar, y si, las letras sin el val se concatenan, y las letras que no pueden ser evaluadas como números valen cero.

X = "5"
Y = "a"

X + Y = 5a
val(X) + val(Y) = 5 + 0 = 5

Saludos



Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Dreamaker en 13 Abril 2010, 23:16 pm
Eso mismo.

Ahora, eso que preguntas te lo puedes responder tu mismo, solo tienes que probar, y si, las letras sin el val se concatenan, y las letras que no pueden ser evaluadas como números valen cero.

X = "5"
Y = "a"

X + Y = 5a
val(X) + val(Y) = 5 + 0 = 5

Saludos



Excelente! Ahora ya lo entendí!!

Y con el Str ()? :)


Título: Re: [Duda] No entiendo el Val y Str
Publicado por: Shell Root en 14 Abril 2010, 01:06 am
Ahora sí, lo que te decia con la manupulacion de datos, que pasan a la base de datos, tenes un campo que sea Varchar, es decir, String. Y quieres ingresar un numero en ese campo, pero que pasa si ingresar esté numero 1, al momento de ejecutar la Query, no te dejará (Eso creo), yá que el campo es Integer. Para lograr insertar ese campo en la base de datos, deberas convertir ese numero en String, asñi que usas la función Str().

Creo que eso seria un ejemplo de como usar esa función.

Saludos!