es posible...? (Consola)

Iniciado por WestOn, 18 Octubre 2008, 11:02 AM

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

Spider-Net


WestOn

wenas, ya Spider-Net pero nunca he usado la funcion que has puesto, y he estado mirando la msdn online pero no soy capaz de hacerlo funcionar en la consola..

ttp://msdn.microsoft.com/es-es/library/8460tsh1(VS.80).aspx le falta una H al principio.
si me pones un pequeño ejemplo (q no parecido el de la pag, q ademas no me funciona xDD) te lo agradeceria ;)

bueno venga un saludo
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

seba123neo

Hola WestOn todas esas dudas Instr ,Ubound estan en un manual de visual basic...esa pagina es de visual basic .NET...digamos que es lo mismo..pero algunas funciones cambian y por eso es mejor mirar algo de visual basic 6...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

WestOn

ya decia yo  :-X, ok voy a mirar el tuto del guille que seguro estaran esas funciones.. ahora cuando lo haga dejare un pequeño ejemplo por si alguien lo quiere

un saludoo
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

WestOn

wenas, haber he hecho este ejemplo bien sencillo pero me salta un error ("se esperaba =")
Código (vb) [Seleccionar]
Option Explicit
Dim a As String
Private Sub Command1_Click()
InStr(a, "clear", vbTextCompare) 'Aqui salta el error
End Sub

Private Sub Form_Load()
a = "dgh ttdx tnh ck bd tbs xjthm cn clear rgtfc txvhtxv"
End Sub


si no entendi mal InStr lee desde el inicio la variable, busca la palabra 'clear', y la ultima opcion es para comparar texto, ¿que me falla?

un saludo y grax de antemano
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

seba123neo

pues claro..el Instr se le tiene qeu pasar a una variable o lo tenes que comparar con un if o con un msgbox lo podes mostrar..no lo podes poner asi nomas...el Instr devuelve un integer ..si es 0 no encontro la palabra y si es desigual a 0 te devuelve la posicion en la que la cadena que buscaste se encuentra..mira:

Código (vb) [Seleccionar]
Option Explicit
Dim a As String

Private Sub Command1_Click()
MsgBox InStr(a, "clear")
End Sub

Private Sub Form_Load()
a = "dgh ttdx tnh ck bd tbs xjthm cn clear rgtfc txvhtxv"
End Sub


ahi te devuelve 33 qeu es la posicion de la palabra "Clear" que buscas...en vez de un msgbox podes poner una variable y hacer un if asi:

Código (vb) [Seleccionar]
Option Explicit
Dim a As String
Dim i As Integer

Private Sub Command1_Click()
i = InStr(a, "clear")
If i = 0 Then
    MsgBox "no se encontro la palabra"
Else
    MsgBox "se encontro la palabra en la posicion " & i
End If
End Sub

Private Sub Form_Load()
a = "dgh ttdx tnh ck bd tbs xjthm cn clear rgtfc txvhtxv"
End Sub


saludos.

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

WestOn

grax seba123neo, yo creo que ya con esto puedo seguir con lo de la consola ;D

un saludo
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

WestOn

#17
Wenas, aqui esta este ejemplo q funciona  :xD, poner 1 commandbotton & un text :
Código (vb) [Seleccionar]
Option Explicit
Dim a As String, z
Dim i As Integer
Private Sub Command1_Click()
a = Text1
z = 0
If z = 0 Then
i = InStr(a, "clean /s")
If i = 0 Then
'no ta
Else
i = InStr(a, "/q")
If i = 0 Then
MsgBox "Clean /S", vbInformation, "info"
Else
MsgBox "Clean /S /Q", vbInformation, "info"
End If
End If
End If
End Sub

el problema esque no es capaz de reconocer el comando /q solo, ¿alguna idea?
saludoss
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

Spider-Net

¿Pero por qué no usas el split que es mucho más fácil? Y un consejo compañero, acostúmbrate a tabular (indentar) tu código porque es más fácil de comprender:

A ver, un ejemplo:

Código (vb) [Seleccionar]

'Ejemplo de uso de Split para separar comandos
'Por Auron
'Espero que lo entiendas bien esta vez
Option Explicit
Dim a, resultado As String
Dim i, contador As Integer
Dim v As Variant

Private Sub Command1_Click()
a = Text1.Text 'Se almacena en a la cadena
v = Split(a, " ") 'Se separa cada parametro con un split

'v(0) = primer parametro
'v(1) = segundo parametro
'v(2) = tercer parametro... etc


'Se cuenta el numero de espacios que hay en el texto, así sabremos
'cuantos parámetros hay, porque entre cada parámetro ha de haber un espacio
For i = 1 To Len(a)
    If Mid(a, i, 1) = " " Then
        contador = contador + 1 'contador almacena el número de espacios
    End If
Next

'Si el primer parametro es el comando clean entramos
If LCase(v(0)) = "clean" Then
    resultado = "clean" 'asignamos el resultado clean
   
    'Si contador es mayor o igual que 1 es que hay uno o más parámetros
    If contador >= 1 Then
        If LCase(v(1)) = "/q" Then
            resultado = resultado & " /q" 'Si el parámetro 1 es /q se almacena en resultado
        ElseIf LCase(v(1)) = "/s" Then
            resultado = resultado & " /s" 'Si el parámetro 1 es /s se almacena en resultado
        End If
    End If
   
    'Si contador es mayor o igual que 2 es que hay dos o más parametros
    If contador >= 2 Then
        If LCase(v(2)) = "/q" Then
            resultado = resultado & " /q" 'Si el parámetro 2 es /q se almacena en resultado
        ElseIf LCase(v(2)) = "/s" Then
            resultado = resultado & " /s" 'Si el parámetro 2 es /s se almacena en resultado
        End If
    End If
   
    'Mostramos el resultado
    MsgBox "El comando resultante es: " & resultado, vbInformation, "Resultado"
End If
End Sub

WestOn

wenas, esque lo del split tampoco lo he usado nunca y tenia que mirar tambien lo del InStr... :P
Lo de identar el code me ha sido imposible...(tenia otra idea en la cabeza, primer post) pero lo q vosotros decis esq esta mejor, voy a probar el ejemplo grax Spider-Net
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.