es posible...? (Consola)

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

0 Miembros y 3 Visitantes están viendo este tema.

Spider-Net

Cita de: WestOn en 18 Octubre 2008, 22:29 PM
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

Identar es tabularlo, sólo poner tabuladores para saber que instrucciones se ejecutan dentro de cada procedimiento.

Saludos

WestOn

#21
aaaaaa  :laugh:...pensaba q decias idear,crear o algo asi

Esta perfecto el code ::)

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

cassiani

#22
Como ya te dijeron, léete un manual básico sobre todo el manejo de cadenas (que te hace mucha falta) o caerás acá preguntando lo mismo una y otra vez.

Para lo que hacías, yo lo haría así:

Código (vb) [Seleccionar]
Option Explicit
Dim sCadena    As String
Dim sCacho()   As String
Dim sResultado As String
Dim I          As Integer

Private Sub Cmd_Click()
    sCadena = Trim$(Text1.Text)
    sCacho = Split(sCadena, " ")

    sResultado = ""
   
    For I = 0 To UBound(sCacho)
        Select Case (LCase$(sCacho(I)))
            Case "clean": sResultado = sResultado & sCacho(I) & " "
            Case "/q": sResultado = sResultado & sCacho(I) & " "
            Case "/s": sResultado = sResultado & sCacho(I) & " "
        End Select
    Next
   
    MsgBox sResultado
End Sub


Y hay, más case para más parámetros y dentro de los case las rutinas o funciones que se requieran.


http://www.elguille.info/vb/vb6/stringFunctions.htm


http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5.htm

saludos!!

Spider-Net

El ejemplo de cΔssiΔnі está mucho mejor que el mío. Además usó la función Trim para eliminar posibles espacios al final o al principio del comando introducidos por error.Así que te recomiendo que uses su ejemplo.

Un saludo!

WestOn

#24
wenas, esta bien el code, voy a ver como lo uso en el proyecto y cuando termine cuelgo el proyecto para que le echeis una ojeada (ya q el 'motor' del exe es vuestro ajajaj) aver si no tengo mas contratiempos y lo posteo hoy. un saludo y grax ;)

PD:los enlaces son bastante buenos (el de recursosvisualbasic no lo conocia)
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

WestOn

#25
Wenas, estuve cambiando el motor del proyecto por esto:
Esto es para que cambie la variable a 1 (todas estan en 0 desde el principio) y la que este en 1 se abre:
Código (vb) [Seleccionar]
Public Sub A1()
Dim x As String, z
Dim i As Integer

i = InStr(a, "clean")
If i = 0 Then
'no ta
Else
E = 1 'la cambia si se encuentra clean
End If

i = InStr(a, "jo")
If i = 0 Then

Else
F = 1
End If
End Sub


Hasta ahi todo perfecto(si se pone solo no funciona bien xDD) pero si dentro del if ponemos lo que puso cΔssiΔnі funciona mejor!! pero algo esta mal y solo detecta el comando solo (clean, jo) los modificadores no:
Código (vb) [Seleccionar]
If E = 1 Then 'comando clean
Dim sCacho()   As String
Dim sResultado As String
Trim$ (a) ' quita espacios al principio-final
sCacho = Split(a, " ")
sResultado = ""
For i = 0 To UBound(sCacho)
Select Case (LCase$(sCacho(i)))
Case "clean": sResultado = sResultado & sCacho(i) & " "
MsgBox "indicar parametro"
Case "clean /q": sResultado = sResultado & sCacho(i) & " "
MsgBox "clean /q"
Case "clean /s": sResultado = sResultado & sCacho(i) & " "
MsgBox "clean /S"
End Select
Next
MsgBox sResultado
End If


haber si se me ha entendido..  :laugh: un saludo y grax de antemano
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

Spider-Net

#26
De entrada, muchas gracias por NO hacerme caso con lo de indentar tu código  :¬¬, ya te lamentarás cuando programes códigos largos... en fin.

Estás muy perdido. Así en principio, deberías de leerte un manual de Visual Basic antes de intentar cosas más complicadas, porque te damos cosas hechas y que funcionan y te las cargas. xD

De entrada, no sé para que quieres esta parte del código:

Código (vb) [Seleccionar]
Public Sub A1()
Dim x As String, z
Dim i As Integer

i = InStr(a, "clean")
If i = 0 Then
'no ta
Else
E = 1 'la cambia si se encuentra clean
End If

i = InStr(a, "jo")
If i = 0 Then

Else
F = 1
End If
End Sub


¿Para saber si está clean?. Eso ya lo hace tanto el código de cΔssiΔnі como el mío. Comprueban si existe el comando clean con if o con select case pero ambos lo comprueban, no necesitas ningún if antes.

Y esto ya...

Código (vb) [Seleccionar]
If E = 1 Then 'comando clean
Dim sCacho()   As String
Dim sResultado As String
Trim$ (a) ' quita espacios al principio-final
sCacho = Split(a, " ")
sResultado = ""
For i = 0 To UBound(sCacho)
Select Case (LCase$(sCacho(i)))
Case "clean": sResultado = sResultado & sCacho(i) & " "
MsgBox "indicar parametro"
Case "clean /q": sResultado = sResultado & sCacho(i) & " "
MsgBox "clean /q"
Case "clean /s": sResultado = sResultado & sCacho(i) & " "
MsgBox "clean /S"
End Select
Next
MsgBox sResultado
End If


¿Pero qué lío has hecho ahí?. ¿Un msgbox para cada resultado? Por qué modificas el código de cΔssiΔnі si funcionaba bien?

Código (vb) [Seleccionar]
Private Sub Cmd_Click()
    sCadena = Trim$(Text1.Text)
    sCacho = Split(sCadena, " ")

    sResultado = ""

    For I = 0 To UBound(sCacho)
        Select Case (LCase$(sCacho(I)))
            Case "clean": sResultado = sResultado & sCacho(I) & " "
            Case "/q": sResultado = sResultado & sCacho(I) & " "
            Case "/s": sResultado = sResultado & sCacho(I) & " "
        End Select
    Next

    MsgBox sResultado
End Sub


El Msgbox sResultado va sólo al final, no uno por cada case, el case lo que hace es ir añadiendo los parámetros si se los encuentra y sino no añade nada, no tienes que poner un msgbox por cada case. Eso sobra.

Case "clean": sResultado = sResultado & sCacho(i) & " "
MsgBox "indicar parametro"

Y eso tampoco tengo idea para que lo has puesto. Si ese case lo que hace es si encuentra la cadena clean la almacena en sResultado, sobra ahí msgbox, igual que todos los demás, un msgbox al final y listo.

Por último decirte que no pegues todo el código, queda mucho más claro tabulado y con saltos de línea para separar algunas cosas tal y como lo tenemos cΔssiΔnі y yo. Así como tú lo pones no sé si es que lo ves más claro, pero lo que haces es hacerlo más ilegible. Quitando todo lo que tú pones y dejando sólo y exclusivamente lo de cΔssiΔnі el código funciona perfectamente. Así que no lo modifiques mejor. Y sobre todo intenta leer y aprender a programar en Visual Basic antes de meterte en proyectos que te vienen grandes, es sólo un consejo.

Saludos!

WestOn

#27
wenas, lo he tabulado un poco(lo tabulare mas el proximo ;)), me dejado alguna cosa porq pense que se entenderia, error mio :rolleyes:.La idea esta pues era porque con un code esta bien, pero ya cuando pongo mas de diez me parece un poco abultado y me lio yo solo con tanto code, de todas formas voy a usar lo de cΔssiΔnі y pondre todos los code dentro.
Lo de los mensajes lo puse por poner algo (en vez de poner consolewrite puse msgbox para que os fuera mas facil :P) y no me cargo el code jajaja pero no funciona cuando hago eso  :xD va es broma, venga un saludo y grax

PD:Lo modifique porq la variable era a, entonces sCadena sobraba no?(aver si toy metiendo la pata..) y luego lo de Trim$ a mas de lo mismo.
A bueno y lo de split tambien puse a.
enfin a sido una rayada mia xD
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

WestOn

#28
Wenas, tengo un problema con la consola, os cuento:
Cuando estoy con la consola ejecutandose, si escribo mas de 9 caracteres en la misma linea y presiono enter, se salta 1 linea(por darle a enter) + otra linea(por superar 9 caracteres)...
Nose si se me ha entendido bien, en ese caso decirmelo y posteo alguna foto voy a seguir mirando aver si lo arreglo.

PD:Bueno ya que estoy con este post comento:
Ya una vez solucionado ese problema lo he aumentado para que acepte como maximo 1000 (pero en realidad son 999 xD), pues bueno tengo ya 999 caracteres para pegarlos y probarlo, pero jeje q sorpresa que no vale usar el Control+V para pegarlos, y escribirlos es muy pesado ajajaj :laugh:, ¿como puedo añadir en la consola la opcion de pegar y copiar?

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