• Martes 21 de Mayo de 2024, 00:13

Autor Tema:  El For No Me Corre  (Leído 2222 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
El For No Me Corre
« en: Viernes 1 de Julio de 2005, 20:13 »
0
Hola chicos de SoloCodigo, miren tengo este código:
Código: Text
  1. Private Sub CmdCalc_Click()
  2. Dim iCont As Integer
  3. Dim sFrase As String
  4. Dim x, h, w
  5. x = Len(TxtWord.Text)
  6. sFrase = TxtWord.Text
  7. For h = 1 To x
  8.     w = Mid(sFrase, 1, h)
  9.     If w = " " Then
  10.        iCont = iCont + 1
  11.     End If
  12. Next h
  13. MsgBox iCont
  14. End Sub
  15.  
Y pues lo que pasa es que el for no me corre, cual es el error, me ayuda porfa'.

Gracias Chao.
El pasado son solo recuerdos, el futuro son solo sueños

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: El For No Me Corre
« Respuesta #1 en: Sábado 2 de Julio de 2005, 03:04 »
0
declara x, h, w, pro separado
Dim x as integer
Dim h as integer
Dim w as integer

'Asugura que x es entero y no un variant
nos vemos
 :comp:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: El For No Me Corre
« Respuesta #2 en: Sábado 2 de Julio de 2005, 17:21 »
0
Hola Radical.. :hola: ..mmm..pienso que tu error puede estar en que nunca incrementas la variable h dentro de tu for, tienes que incrementarla para que siga el ciclo..y ..la validacion que haces del espacio dentro del for no le pongas espacio ponle asi : w="" ...segun lo que me puedo dar cuenta es que quieres que en un text se ingrese algun texto y que si no se ingresa nada  te presente un uno.. :unsure: ..bueno.. :rolleyes:

Código: Text
  1. Private Sub Command1_Click()
  2. Dim iCont As Integer
  3. Dim sFrase As String
  4. Dim x, h, w
  5. x = Len(Text1.Text)
  6. sFrase = Text1.Text
  7. For h = 1 To (x + 1)
  8.    w = Mid(sFrase, 1, h)
  9.    If w = "" Then
  10.       iCont = iCont + 1
  11.    End If
  12.    h = h + 1
  13. 'MsgBox w
  14. Next h
  15. MsgBox iCont
  16. End Sub
  17.  

Espero que te sirva de guia..chaitos.. :hola:  nos vemos.. :hola:  :ph34r:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: El For No Me Corre
« Respuesta #3 en: Sábado 2 de Julio de 2005, 18:48 »
0
Hola de nuevo pues creo que el h esta bien pues es el que sirve de pivote(una manera de decile como indice) y este por la propia sintaxis de VB se autoincremente, ahora si lo que quieres compara son caracteres como espacio, etc. usa sus similares ej la letra A es chr(65), una la tabla ASCII

Chau
 :comp:  :hola:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: El For No Me Corre
« Respuesta #4 en: Sábado 2 de Julio de 2005, 19:12 »
0
Tenes toda la razon con lo de la variable h Kev..ya me estaba confundiendo con C ... :unsure: ...mmm..en todo caso..prueba sin lo de la h...y una preguntita....Radical...que necesitas hacer?.. :)  ...

Saluditos!.. :hola: .. :ph34r:  :comp:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: El For No Me Corre
« Respuesta #5 en: Sábado 2 de Julio de 2005, 19:16 »
0
Hola:
Lo que veo es lo siguiente:

Citar
w = Mid(sFrase, 1, h)

Si sólo quieres leer un caracter, debe ser:

Código: Text
  1. w=Mid(sFrase, h, 1)
  2.  

Es de esos momentos en que los árboles no dejan ver el bosque.

Salu2.
La luz que sólo se ilumina a sí misma, es oscuridad.

Shiquilla

  • Miembro MUY activo
  • ***
  • Mensajes: 188
  • Nacionalidad: es
    • Ver Perfil
    • http://www.songesoft.com
Re: El For No Me Corre
« Respuesta #6 en: Sábado 2 de Julio de 2005, 19:17 »
0
Buenas, el error simplemente está en la función Mid.

Código: Text
  1. Mid(Frase, Inicio, Cuantos)
  2.  
Mid(Frase,h,1) en vez de Mid(Frase, 1, h)

Código: Text
  1. Private Sub CmdCalc_Click()
  2. Dim iCont As Integer
  3. Dim sFrase As String
  4. Dim x, h, w
  5. x = Len(TxtWord.Text)
  6. sFrase = TxtWord.Text
  7. For h = 1 To x
  8.    w = Mid(sFrase, h, 1)
  9.    If w = " " Then
  10.       iCont = iCont + 1
  11.    End If
  12. Next h
  13. MsgBox iCont
  14. End Sub
  15.  

Saludos,  :P

PD: Juanolo se me ha adelantao por 1 minuto xD. Bueno, aún así lo dejo..
« §hÿqµïllæ »

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: El For No Me Corre
« Respuesta #7 en: Sábado 2 de Julio de 2005, 19:19 »
0
Saludos, Shiquilla.
La luz que sólo se ilumina a sí misma, es oscuridad.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: El For No Me Corre
« Respuesta #8 en: Sábado 2 de Julio de 2005, 20:02 »
0
Cita de: "Shiquilla"
Buenas, el error simplemente está en la función Mid.

Código: Text
  1. Mid(Frase, Inicio, Cuantos)
  2.  
Mid(Frase,h,1) en vez de Mid(Frase, 1, h)

Código: Text
  1. Private Sub CmdCalc_Click()
  2. Dim iCont As Integer
  3. Dim sFrase As String
  4. Dim x, h, w
  5. x = Len(TxtWord.Text)
  6. sFrase = TxtWord.Text
  7. For h = 1 To x
  8.    w = Mid(sFrase, h, 1)
  9.    If w = " " Then
  10.       iCont = iCont + 1
  11.    End If
  12. Next h
  13. MsgBox iCont
  14. End Sub
  15.  

Saludos,  :P

PD: Juanolo se me ha adelantao por 1 minuto xD. Bueno, aún así lo dejo..
Claro lo tenia al reves gracias a todos por resopnder .

PD. eliza, es un programa para C, pero lo estoy empezando el algoritmo en VB y de hay lo termino.

Gracias Chao.
El pasado son solo recuerdos, el futuro son solo sueños