elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Ayuda] Como puedo validar esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Como puedo validar esto?  (Leído 7,808 veces)
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
[Ayuda] Como puedo validar esto?
« en: 28 Mayo 2010, 18:33 pm »

Hola a todos, estoy haciendo un programa para convertir palabras a palindromas, donde el código contiene 2 funciones:

Una llamada Verificar() que lo que hace es verificar si la palabra ya es palindroma: Por ejemplo, oro, oso, anana

Y otra llamada Convertir() que en el caso de que la palabra ingresada no sea palindroma, entonces la convierte, ejemplo:

Perro -> PerrorreP
Rata -> RatataR

Está validado para que si la palabra es palindroma, muestre en un label un mensaje diciendo "La palabra ingresada ya es palindroma", si no es entonces la convierte y la muestra

Lo que yo quiero hacer es que si el usuario ingresa numeros o cualquier otra cosa que no sean letras, por ej "*5846-!,,,.." y aprete el boton de Convertir, tire un mensaje al Label diciendo "La palabra ingresada no es válida o la caja de texto está vacía, por favor ingrese otro valor"

Se entiende? Me supongo que es sencillo pero no logro aclararme alguna idea de como hacerlo, les dejo el código principal:

Código
  1. Private Sub cmdConvertir_Click()
  2.  
  3. 'Declaracion de variables
  4.  
  5. Dim strPalabra As String
  6.  
  7. 'Asignacion de valor
  8.  
  9. strPalabra = txtValor1.Text
  10.  
  11. If strPalabra = Verificar(strPalabra) Then
  12.    lblResultado.Caption = "La palabra ya es palindroma" 'Si pasa la verificación de que es palindroma, entonces avisa al usuario de eso"
  13. Else
  14.    lblResultado.Caption = txtValor1.Text & Convertir(strPalabra) 'Si no, entonces la convierte en palindroma
  15. End If
  16.  
  17. End Sub

Está validado para lo que dije, lo que yo quiero es que diga lo otro en caso de que no sean letras lo que contiene la caja pero que tampoco pueda hacer trampa y poner "adsd5648"

Gracias, a ver si se les ocurre algo :huh:

PD: El problema es que ya probé poniendo con un Select case y los 3 casos, si es palindroma, si es distinto de palindromo (pero en este caso "*46541" como no es palindroma me la convertiría igual)


« Última modificación: 28 Mayo 2010, 18:40 pm por Dreamaker » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Ayuda] Como puedo validar esto?
« Respuesta #1 en: 28 Mayo 2010, 21:12 pm »

Podrías usar expresiones regulares. Como está:
Código
  1. [a-zA-Z]
Donde solo acepta Letras Minúsculas y Mayúsculas. En caso de ingresar un carácter especial o un numero no se cumpliría la RegExp.

Por ejemplo: (Aunque me falto la validación que mensionabas)
Código
  1. <?php /* #!/usr/bin/php
  2.  
  3. Autor: Shell Root
  4. Archivo: PoC.php
  5. Descripción: Verificación si una o varías palabra son palindromás
  6.  
  7. */
  8.  
  9.  
  10.    /* Verificamos la cantidad de parámetros */
  11.    if(sizeof($_SERVER['argv']) == 2){
  12.   $strOriginal = str_replace(' ', '', $_SERVER['argv'][1]);
  13.   $strInvertida = strrev($strOriginal);
  14.     if(strtolower($strOriginal) == strtolower($strInvertida)){
  15.   echo "Es palindroma \n";
  16. echo strtolower($_SERVER['argv'][1])."\n";
  17. echo strrev(strtolower($_SERVER['argv'][1]))."\n";
  18.   }else{
  19.   echo "No es palindroma \n";
  20. echo strtolower($_SERVER['argv'][1])."\n";
  21. echo strrev(strtolower($_SERVER['argv'][1]))."\n";
  22.   }
  23.    }else{
  24.        echo "\n  Modo de uso: php PoC.php [Oración o Palabra] \n";
  25.        echo "       PoC: php PoC.php hola \n";
  26.        echo "       PoC: php PoC.php 'anita lava la tina \n\n";
  27.    }
  28.  
  29. ?>
PoC:
Código
  1. shellroot@alex-laptop:~/Escritorio$ php PoC.php oso
  2. Es palindroma
  3. oso
  4. oso
  5. shellroot@alex-laptop:~/Escritorio$ php PoC.php 'Anita lava la tina'
  6. Es palindroma
  7. anita lava la tina
  8. anit al aval atina
  9. shellroot@alex-laptop:~/Escritorio$ php PoC.php 'No se que poner aqui'
  10. No es palindroma
  11. no se que poner aqui
  12. iuqa renop euq es on


« Última modificación: 28 Mayo 2010, 23:27 pm por Alex@ShellRoot » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Ayuda] Como puedo validar esto?
« Respuesta #2 en: 29 Mayo 2010, 00:55 am »

Pero estamos en visual basic, no sé programar en C :xD
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Ayuda] Como puedo validar esto?
« Respuesta #3 en: 29 Mayo 2010, 03:16 am »

No es C, es PHP, y solo te di un ejemplo.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda] Como puedo validar esto?
« Respuesta #4 en: 29 Mayo 2010, 11:50 am »

[b]lo peor que se puede hacer en un lugar de un tema fijado es relacionarlo con otro cuando este no le importa en lo absoluto al individuo sudicho, aquen que lo de expresiones regulares esta bien... pero el ejemplo esta pesimo en este subforo.[/b]

 * Aqui la liga a expresiones regulares en vb6.0.

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/166-expresiones-regulares.htm

Dulce Infierno Lunar!¡.
En línea

The Dark Shadow is my passion.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [Ayuda] Como puedo validar esto?
« Respuesta #5 en: 29 Mayo 2010, 13:13 pm »

Con un poco de logica y StrReverse() tienes mas que suficiente ;)
En línea

Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Ayuda] Como puedo validar esto?
« Respuesta #6 en: 29 Mayo 2010, 17:12 pm »

Claro Karcrack pero la idea no es usar funciones del vb (que yo se que hay muchas) sino crear mis propias funciones, ya que cuando te pasas a otro lenguaje las funciones no son todas igual y varían algunas, la idea es aprender a programar completamente para poder migrar a cualquier otro lenguaje apenas cambiando la sintaxis y aprendiendo unos detalles más (como punteros y todo eso) :laugh:

Todavía no me pude ingeniar una idea para hcerlo :-\
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda] Como puedo validar esto?
« Respuesta #7 en: 29 Mayo 2010, 20:48 pm »

lo que dices se entiende de por medio desde que empiesas a programar, solo que hay que saber que hace X funcion despues puedes recrearla sin problemas, si no sabes que hace entonces en C/C++ como ejemplos no migrarias tan facil.

En resumen solo hay que saber que hace X funcion lo demas es logica rudimentaria en la migracion a otro lenguaje X.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Ayuda] Como puedo validar esto?
« Respuesta #8 en: 29 Mayo 2010, 21:35 pm »

estoy aburrido asi que hice esto para vos nos vemos.

Son dos funciones para que compares que onda con lo que se te dice arriba un poco:

las funciones son similares como vez xP

Código
  1.  
  2. '
  3. ' ////////////////////////////////////////////////////////////////
  4. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  5. ' //                                                            //
  6. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  7. ' //                                                            //
  8. ' // |-> Pueden Distribuir Este Codigo siempre y cuando         //
  9. ' // no se eliminen los creditos originales de este codigo      //
  10. ' // No importando que sea modificado/editado o engrandesido    //
  11. ' // o achicado, si es en base a este codigo                    //
  12. ' ////////////////////////////////////////////////////////////////
  13.  
  14. Option Explicit
  15. Option Compare Text
  16.  
  17. Public Function vbReverse(ByVal StrInOri As String) As String
  18. Dim TmpChar             As String * 1   '   //  TmpChar = Space(1)
  19. Dim Stringhalf          As Long
  20. Dim StringLen           As Long
  21. Dim Index_String        As Long
  22. Dim index_StrInOri      As Long
  23.    If Not Len(StrInOri) <= 1 Then
  24.        StringLen = Len(StrInOri)
  25.        Stringhalf = StringLen / 2
  26.        For index_StrInOri = 1 To Stringhalf
  27.            TmpChar = Mid$(StrInOri, index_StrInOri, 1)
  28.            Index_String = StringLen - index_StrInOri + 1
  29.            Mid$(StrInOri, index_StrInOri, 1) = Mid$(StrInOri, Index_String, 1)
  30.            Mid$(StrInOri, Index_String, 1) = TmpChar
  31.        Next
  32.    End If
  33.    vbReverse = StrInOri
  34. End Function
  35.  
  36. Public Function EsPalidromoAlt(ByVal StrInOri As String) As Boolean
  37.    EsPalidromoAlt = StrInOri = vbReverse(StrInOri)
  38. End Function
  39.  
  40. Public Function EsPalidromo(ByVal StrInOri As String) As Boolean
  41. Dim TmpChar             As String * 1   '   //  TmpChar = Space(1)
  42. Dim Stringhalf          As Long
  43. Dim StringLen           As Long
  44. Dim Index_String        As Long
  45. Dim index_StrInOri      As Long
  46. Dim TmpStr              As String
  47.    If Not Len(StrInOri) <= 1 Then
  48.        StringLen = Len(StrInOri)
  49.        Stringhalf = StringLen / 2
  50.        TmpStr = Space(StringLen)
  51.        For index_StrInOri = 1 To Stringhalf
  52.            Index_String = StringLen - index_StrInOri + 1
  53.            Mid$(TmpStr, index_StrInOri, 1) = Mid$(StrInOri, Index_String, 1)
  54.            Mid$(TmpStr, Index_String, 1) = Mid$(StrInOri, index_StrInOri, 1)
  55.        Next
  56.    End If
  57.    EsPalidromo = StrInOri = TmpStr
  58. End Function
  59.  
  60.  

Código
  1.  
  2. Private Sub Form_Load()
  3. Const vConst As String = "peep"
  4.    MsgBox vbReverse(vConst)
  5.    MsgBox EsPalidromo(vConst)
  6.    MsgBox EsPalidromoAlt(vConst)
  7. End Sub
  8.  
  9.  

funciones alternativas

Código
  1.  
  2. Public Function EsPalidromo(ByVal StrInOri As String) As Boolean
  3.    EsPalidromo = StrInOri = StrReverse(StrInOri)
  4. End Function
  5.  
  6.  

P.D.: las funciones son similares como vez si hay dudas avisa.

Dulce Infierno Lunar!¡.
« Última modificación: 29 Mayo 2010, 21:44 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Ayuda] Como puedo validar esto?
« Respuesta #9 en: 29 Mayo 2010, 21:52 pm »

Cuando pones:

Código
  1. Dim TmpChar             As String * 1

Es para declarar que la variable contendrá un carácter y por eso se coloca el *1?

Para qué es necesario? Declarando que contendrá un sólo carácter ocupa menos memoria que si le pones un sólo caracter sin poner el *1?


En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como puedo validar el login « 1 2 »
PHP
geshiro 12 5,078 Último mensaje 8 Junio 2015, 01:45 am
por kaiserr
[Solucionado] num_rows me da error
PHP
venadHD 4 3,860 Último mensaje 18 Julio 2015, 12:18 pm
por venadHD
Cómo puedo cambiar esto? Ayuda!
Foro Libre
juan_1 5 1,929 Último mensaje 23 Noviembre 2015, 19:31 pm
por Minusfour_cierralo_o_baneamefull
Seguridad: Como puedo validar el filename en AJAX?
Desarrollo Web
Citrusl 5 3,940 Último mensaje 2 Diciembre 2019, 02:31 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines