es posible...? (Consola)

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

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

WestOn

wenas, toy creando una consola y se me ocurrio empezar a añadirle ya comandos.
Mi pregunta es como puedo hacer esto:
Comando: RD /S /Q, bien al poner eso en la consola no soy capaz de hacer que interprete los modificadores /S /Q y encima tampoco reconoce RD ya que despues hay mas palabras.
mi idea esque cada vez que haya un espacio la palabra que siga sea una variable(ahora mismo lo tengo todo en una variable):
A=ConsoleReadLine asi es como funciona, y entonces una vez hecho eso ¿como puedo hacer que reconozca los espacios?  EJ:
Clean  _  /e  _  /r   (comandos fantasiosos)
   |      |      |
   v      v      v
Var1   Var2   Var3


_ = espacio

Por cada espacio seguido de una letra que lo identifique como una variable..

espero que se haya entendido...un saludo y grax de antemano

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

aaronduran2

Utiliza la función Split para separar el comando de los argumentos.

Saludos.

Spider-Net

Con la función Split.

Código (vb) [Seleccionar]
Dim A As String
Dim v As Variant

A = "Clean /e /r"
v = Split(A, " ")

'v(0) = Clean
'v(1) = /e
'v(2) = /r
'Ejemplo:
Dim i As Integer
For i = 0 To 2
   MsgBox v(i) & " es el parámetro " & i
Next


Saludos!

aaronduran2 ha posteado mientras lo hacia yo, pero bueno ya te dejo el ejemplo

WestOn

grax!!  :laugh: voy a probarlo yaaaa ;D
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

WestOn

#4
No entiendo bien el code  :(, lo he intentado poner en un form nuevo para probarlo pero me saltan errores.
si puedes poner un ejemplo mas explicado o algo asi...:xD

un saludo y grax  ;D

PD:cuando poneis un code sale con colores y muy bonito, ¿como lo haceis xD?(los q pongo yo noo :¬¬;)
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

aaronduran2

Imagínate que tienes una variable con el texto "Hola /a /b /c".

Pues para separarlo utilizas Split, de forma que quedaría así:

Código (vb) [Seleccionar]
Option Explicit

Dim i As Integer
Dim s_Texto As String
Dim v_Argumentos As Variant

s_Texto = "Hola /a /b /c"
v_Argumentos = Split(s_Texto, " ")

For i = 0 To 2
    MsgBox "Argumento: " & v_Argumentos(i)
Next


Es lo mismo que puso Spider-Net. El error posiblemente se deba a que tienes Option Explicit y no se declara la variable i.

Para poner el código coloreado, utiliza las etiquetas GeSHi. Cuando posteas algo, arriba a la derecha tienes un menú desplegable que te permite añadir las etiquetas para los diferentes lenguajes.

Saludos.

WestOn

Grax a los dos ;), ok lo he puesto y me detecta el primer argumento clear, pero al poner en la consola clear /q /u no me salta el mensaje, sera porq teng que declarar los parametros no?
xD donde los declaro¿?
Código (vb) [Seleccionar]
If a = "clear" Then
v = Split(a, " ")
For i = 0 To 2
MsgBox "Argumento: " & v(i)
Next
End If

asi es como detecta la consola los comandos que pongo, esta bien asi o creeis que hay mejores formas XD?

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

cassiani

#7
Bueno amigo, la cadena "clear" es diferente de la cadena "clear /q /u", en este caso lo que puedes hacer es buscar la cadena "clear" dentro de la cadena que recibes "Instr".

Y te sale hacer uso de "UBound".

Saludos!!

WestOn

wenas, ya se q es diferente ajaja :xD :xD , voy a hacer eso q has dicho de buscar la palabra dentro de la cadena y una vez encontrado que busque los modificadores ;) es buena

por ciero lo de "UBound" lo he buscado en el vb y no me sale ninguna referencia

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

WestOn

wenas de nuevo, he estado mirando y no tengo nada para buscar palabras (me sonaba que tenia alguna funcion en un modulo...) pero nose si no la tengo o esta perdida por alguna parte  :-\
alguien tiene algo a mano?

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