problemas con "and"

Iniciado por fede_cp, 14 Junio 2009, 18:22 PM

0 Miembros y 1 Visitante están viendo este tema.

fede_cp

bueno hace muy poco habia presentado un problema que decia algo asi como "exe final no recibe los datos"

pero nadie respondio  :huh:
pero ahora es distinto ya que no era que no recibía los datos,sino que las condiciones que habia no se cumplian asique no pasaba nada, pero enrealidad tendrian que cumplirse el codigo es asi

Código (vb) [Seleccionar]
If ((Split(datos, "|")(6)) = True) And ((Split(datos, "|")(5)) = False) Then
MsgBox Split(datos, "|")(1), vbOKOnly, Split(datos, "|")(3)
End If
''''
If ((Split(datos, "|")(6)) = True) And ((Split(datos, "|")(5)) = True) Then
res1 = MsgBox(Split(datos, "|")(1), vbOKOnly, Split(datos, "|")(3))
If res1 = vbOK Then ShellExecute hwnd, "open", (Split(datos, "|")(7)), vbNullString, vbNullString, conSwNormal Else: MsgBox "Posible mujer o algo rarito jaja"
End If
''''
If ((Split(datos, "|")(4)) = True) And ((Split(datos, "|")(5)) = False) Then
MsgBox Split(datos, "|")(1), vbYesNo, Split(datos, "|")(3)
End If
''''
If ((Split(datos, "|")(4)) = True) And ((Split(datos, "|")(5)) = True) And ((Split(datos, "|")(8)) = True) Then
res = MsgBox(Split(datos, "|")(1), vbYesNo, Split(datos, "|")(3))
If res = vbYes Then ShellExecute hwnd, "open", (Split(datos, "|")(7)), vbNullString, vbNullString, conSwNormal Else: ShellExecute hwnd, "open", (Split(datos, "|")(9)), vbNullString, vbNullString, conSwNormal
End If


el problema esta en los "and"!!, necesitaria saber si se puede reemplazar por otra cosa o si esta mal usado como usarlo correctamente!

adios y espero que alguien me ayude esta vez :P
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

EddyW

Ahora no estoy con VB, lo unico que se me ocurre....
Intenta asi haber que sale:
If (Split(datos, "|")(6)) = True And (Split(datos, "|")(5)) = False Then
MsgBox Split(datos, "|")(1), vbOKOnly, Split(datos, "|")(3)
End If

Asi pero en todos tus codes le quite unos "(" ")" a tus Ifs...
No se, cuando este con VB te aviso si encuentro algo mas..

SaluDOS!!!

fede_cp

muchas gracias pero ya probe asi tambien y no funciona, alguien mas tiene idea de porque pasa esto??


adioos
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

Karcrack

Creo que sobran paréntesis por todos los lados, ademas, Split()(x) devuelve String... no Boolean ... así lo pondría yo... prueba a ver...
Código (vb) [Seleccionar]
    If (CBool(Split(datos, "|")(6)) = True) And (CBool(Split(datos, "|")(5)) = False) Then
        MsgBox Split(datos, "|")(1), vbOKOnly, Split(datos, "|")(3)
    End If
    ''''
    If (CBool(Split(datos, "|")(6)) = True) And (CBool(Split(datos, "|")(5)) = True) Then
        If MsgBox(Split(datos, "|")(1), vbOKOnly, Split(datos, "|")(3)) = vbOK Then
            Call ShellExecute(hWnd, "open", Split(datos, "|")(7), vbNullString, vbNullString, conSwNormal)
        Else
            Call MsgBox("Posible mujer o algo rarito jaja")
        End If
    End If
    ''''
    If (CBool(Split(datos, "|")(4)) = True) And (CBool(Split(datos, "|")(5)) = False) Then
        Call MsgBox(Split(datos, "|")(1), vbYesNo, Split(datos, "|")(3))
    End If
    ''''
    If ((Split(datos, "|")(4)) = True) And ((Split(datos, "|")(5)) = True) And ((Split(datos, "|")(8)) = True) Then
        If MsgBox(Split(datos, "|")(1), vbYesNo, Split(datos, "|")(3)) = vbYes Then
            Call ShellExecute(hWnd, "open", Split(datos, "|")(7), vbNullString, vbNullString, conSwNormal)
        Else
            Call ShellExecute(hWnd, "open", Split(datos, "|")(9), vbNullString, vbNullString, conSwNormal)
        End If
    End If


Saludos ;D

raul338

Hola!

hace tiempo que no uso vb6 jeje...pero creo que estas comparando mal (CREO eh! ;D)

Código (vb) [Seleccionar]
Split(datos, "|")(6)
El split te devuelve un array de strings, que yo sepa no se puede comparar con True o False porque estos convertidos a string devuelven "Verdadero" y "Falso" Respectivamente, lo mejor seria convertir eso a ceros y unos (1 - verdadero, 0 - falso) entonces te quedaria algo asi y seria mas seguro

Código (vb) [Seleccionar]
If ((Split(datos, "|")(6)) = "1") And ((Split(datos, "|")(5)) = "0") Then
MsgBox Split(datos, "|")(1), vbOKOnly, Split(datos, "|")(3)
End If


por ultimo muestra el condicional y los condicionales por msgbox

Código (vb) [Seleccionar]
Msgbox Split(datos, "|")(6)
MsgBox ((Split(datos, "|")(6)) = True)


Saludos!!

EDIT: La respuesta de Karcrack tambien es otra solucion  :)

fede_cp

muchas gracias a los dos pero karcrack te gano de mano y posteo primero  ;D igualmente muhcas gracias a los dos!!
gracias che estaba parado mucho tiempo

saludos
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

Karcrack

Cita de: fede_cp en 15 Junio 2009, 16:40 PM
muchas gracias a los dos pero karcrack te gano de mano y posteo primero  ;D igualmente muhcas gracias a los dos!!
gracias che estaba parado mucho tiempo

saludos
De nada... de todas formas gastas mucho espacio para 4 Boolens... ademas de tener que usar Split (Detectado) y una subfirma "|"....

Mirate esto: (CREDITOS COBEIN)
VERSION 5.00
Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin VB.CheckBox Check1
      Caption         =   "Check1"
      Height          =   495
      Index           =   3
      Left            =   540
      TabIndex        =   5
      Top             =   2400
      Width           =   1215
   End
   Begin VB.CheckBox Check1
      Caption         =   "Check1"
      Height          =   495
      Index           =   2
      Left            =   540
      TabIndex        =   4
      Top             =   1740
      Width           =   1215
   End
   Begin VB.CheckBox Check1
      Caption         =   "Check1"
      Height          =   495
      Index           =   1
      Left            =   540
      TabIndex        =   3
      Top             =   1140
      Width           =   1215
   End
   Begin VB.CheckBox Check1
      Caption         =   "Check1"
      Height          =   495
      Index           =   0
      Left            =   540
      TabIndex        =   2
      Top             =   540
      Width           =   1215
   End
   Begin VB.CommandButton Command2
      Caption         =   "Read"
      Height          =   495
      Left            =   2760
      TabIndex        =   1
      Top             =   1320
      Width           =   1215
   End
   Begin VB.CommandButton Command1
      Caption         =   "Pack"
      Height          =   495
      Left            =   2760
      TabIndex        =   0
      Top             =   720
      Width           =   1215
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Const ANTI_VM  As Long = &H1
Private Const ANTI_Sand  As Long = &H2
Private Const ANTI_ETs  As Long = &H4
Private Const ANTI_All  As Long = &H8

Private lVal As Long '<-------- Holds the data

Private Sub Command1_Click()
    lVal = 0
    If Check1(0).Value = 1 Then lVal = lVal Or ANTI_VM
    If Check1(1).Value = 1 Then lVal = lVal Or ANTI_Sand
    If Check1(2).Value = 1 Then lVal = lVal Or ANTI_ETs
    If Check1(3).Value = 1 Then lVal = lVal Or ANTI_All
   
    Dim i As Long
    For i = 0 To 3
        Check1(i).Value = 0
    Next
End Sub

Private Sub Command2_Click()
    If lVal And ANTI_VM Then
        Check1(0).Value = 1
    End If
    If lVal And ANTI_Sand Then
        Check1(1).Value = 1
    End If
    If lVal And ANTI_ETs Then
        Check1(2).Value = 1
    End If
    If lVal And ANTI_All Then
        Check1(3).Value = 1
    End If
End Sub

Mételo en un Frm ;)

Fuente: hxxp://hackhound.org/forum/index.php?topic=8660.msg100588#msg100588

Saludos ;)

fede_cp

Graciaaaas de nuevoooooo ;-) buenisimo che(arg)

ejje adios
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!