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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  vb6 es tonto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: vb6 es tonto  (Leído 5,116 veces)
Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: vb6 es tonto
« Respuesta #10 en: 12 Octubre 2011, 07:10 am »

Gracias seba, y Tenient.. el mensaje "OK!" saldra SOLAMENTE si el la condicion es verdadera, y como dices es falsa entonces obvio que no entra, lo que estamos diciendo es que sea True o False la condicion, pasara uno por uno, en este caso tiene que mirar todos obligado por el xor que pusiste pero deciamos en caso como if true or true or true or true or true or true or true..., con el primero ya da True la condicion y no necesitaria comprobar todos los otros, pero si lo hace, pero en .net como dice seba existe el OrElse que no va a verificar el resto de las condiciones ya que no cambiaran el resultado.

Exactamente... solo con los OR pasa, y no con todas las condiciones o que sea algo común del VB, salu2  :D


En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: vb6 es tonto
« Respuesta #11 en: 12 Octubre 2011, 12:04 pm »

No estoy deacuerdo con ustedes....la visión de que si A es TRUE no deba leer B es errónea, lo que no seria lógico de parte del programador es:
Citar
If A = True Or A = False Then  [Siempre se cumple]

Lo que ustedes plantean:

Citar
If A = True Or B = False Then

Es válido totálmente y el compilador da igual si lo interpreta de izquierda a derecha o viceversa. Fíjense que A y B són independientes y el estado TRUE/FALSE simplemente es un boolean.

Lo que planteo esque quizá haya una situación que para que se de mediante el IF, A deba ser cierta y B falsa siendo entre ellas independientes. Si fueran dependientes entonces la construcción debe ser otra pero no es culpa del compilador, es del programador.

Por cierto:

Citar
Código:
If Calculo(1) Or Calculo(2) Or Calculo(3) Or Calculo(4) Or Calculo(5) Then
    '...
End If

Para algo inventaron el "SWITCH" o en el caso de vb el "CASE"


En línea

Killtrojan Syslog v1.44: ENTRAR
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: vb6 es tonto
« Respuesta #12 en: 12 Octubre 2011, 15:37 pm »

Tenient y skapunky, estan entendiendo mal.

Lo que hablamos es simple, no hablamos del resultado que da la condicion, sino simplemente hablamos que recorre todas ya sabiendo que no cambiara el resultado final.

Código
  1. If Calculo(1) Or Calculo(2) Or Calculo(3) Or Calculo(4) Or Calculo(5) Then
  2.    '...
  3. End If
  4.  

Si Calculo() es una funcion que devuelve True O False pero a la vez nos manda un msgbox para avisarnos del error o de la verificacion de que todo esta bien.. con que el primer Calculo(1) sea true, nos mostrara nuestro mensaje "OK" pero luego verifica los otros "en vano" ya que la condicion sera True de todos modos, y en que nos perjudica? en que nos mostrara en este caso 4 msgbox mas, ya sean de "OK" o de "Error". Pero esta bien eso, ya que a veces talvez necesitamos que lea esas funciones de todos modos, pero a veces no, y por eso en .net estan los "Or" y los "OrElse" que este ultimo, cuando ya 1 condicion se dio True, ya no lee las otras, entonces ahora con .net tenemos la opcion de cuando queremos que lea todas las condiciones y cuando no ;) Pero en vb6 tenemos el "Or" comun solamente :/

Lo mismo es para And, que en .net existe AndAlso para que si el primero ya da False, que no siga leyendo los demas.
En línea

Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
Re: vb6 es tonto
« Respuesta #13 en: 12 Octubre 2011, 16:42 pm »

Citar
Si Calculo() es una funcion que devuelve True O False pero a la vez nos manda un msgbox para avisarnos del error o de la verificacion de que todo esta bien.. con que el primer Calculo(1) sea true, nos mostrara nuestro mensaje "OK" pero luego verifica los otros "en vano" ya que la condicion sera True de todos modos, y en que nos perjudica? en que nos mostrara en este caso 4 msgbox mas, ya sean de "OK" o de "Error".
En absoluto. Nos perjudica en que tarda más tiempo comprobando la función. Es decir, tenemos el siguiente código:

Código
  1. If var0 = "1" Or var1 = "1" Or var2 = "1" Then
  2.    msgbox "El mensaje"
  3. End If
  4.  
Si únicamente var0 contiene el valor "1" nos mostrará el mensaje una sola vez pero también comprobará (malgastando tiempo) los valores de var1 y var2.

En cambio, si las tres variables contienen el valor "1", según tú nos mostrará el mensaje tres veces. Por el contrario, nos mostrará el mensaje una sola vez, insisto, esto nos afecta únicamente en que tarda más tiempo en comprobar la función.

Un saludo,
atte. Herio
« Última modificación: 12 Octubre 2011, 16:44 pm por Herio » En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: vb6 es tonto
« Respuesta #14 en: 12 Octubre 2011, 23:16 pm »

Me rindo, que alguien que me haya entendido que lo explique xDD o lee tranquilo desde el primer post hacia abajo, probando los codigos, etc xD
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algo muy tonto
Sugerencias y dudas sobre el Foro
sakio 5 2,460 Último mensaje 7 Septiembre 2005, 13:27 pm
por Za3LoT
Problema tonto pero tonto...
Sugerencias y dudas sobre el Foro
leucocito 7 4,094 Último mensaje 18 Noviembre 2009, 14:36 pm
por [u]nsigned
Problema tonto
PHP
Feedeex 2 2,881 Último mensaje 12 Mayo 2011, 13:48 pm
por Feedeex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines