Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

MKN Reservas (Maro - Kayak Nerja)


Kayak Maro - Rutas y alquiler de kayak y tabla
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu inter�s (algunos de los avisos publicados)

01/feb./2019

Como te avisé, desde el 1 de febrero de 2019

No se podrán escribir nuevos mensajes ni editar los existentes

En breve solo se mostrarán los mensajes con respuestas.
Posiblemente para el 1 de marzo, solamente se mostrarán los que tengan respuestas y estén marcados como respuesta válida.

  Foro: VB6.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 40435 - problema con cadena de caracteres
IDAsuntoFechaNick 
40435 problema con cadena de caracteres15/04/08 22:38Ishito   
buenas, les cuento lo que quiero hacer a ver si me pueden ayudar porque sinceramente no puedo hacerlo. Quiero hacer lo siguiente quiero asignar un numero a cada letra del abecedario es decir a la a=01, b=02, y asi hasta la "z". Y en definitiva lo que quiero que haga la aplicacion es que lo que escriba en un text box me lo pase a otro textbox pero ya con los numeros que le corresponde a cada caracter. por ejemplo la palabra "mama" estaria conformado asi "13011301" eso es lo que necesito. Espero alguien pueda ayudarme desde ya muchas gracias. Espero haber sido claro en lo que necesito.
IDAsuntoFechaNick 
40443 Re: problema con cadena de caracteres (Resp: 40435)16/04/08 08:14Naiet   
Pues crea un bucle que recorra la cadena caracter a caracter y luego coges el valro ascii de la letra y le aplicas la conversión pertinente

Esta función recibe una cadena y la transforma como tu quieres, sólo acepta valores de la "a" a la "z". Omite el resto, para ellos puedes pensar otra conversión, las mayúsculas, números o signos varios. Es cuestión de ampliar la funcioncilla esta.

No lo he probado, lo mismo tiene alguna errata. tu mismo

Public Function
     conversion(ByVal sCadenaOrigen As String) As String

    Dim i As Integer, sLetra As String, sNum As String, sResultado As
         String
    sResultado = ""
    For i = 1 To Len(sCadenaOrigen)
        sLetra = Mid(sCadenaOrigen, i, 1)
        If Asc(sLetra) > Asc("a") And Asc(sLetra) <
             Asc("z") Then
            sNum = Format(Asc(sLetra) - Asc("a") + 1, "00")
            sResultado = sResultado & sNum
        End If
    Next

    conversion = sResultado
End Function



Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
40444 Re: problema con cadena de caracteres (Resp: 40435)16/04/08 08:26juanjoa   
También lo puedes hacer directamente en el evento KeyPress.
En este ejemplo, según escribes en el Text1 va pasando los números al Text2 y controlando que lo que se escribe sea siempre letras de la A a la Z (mayúsculas y minúsculas tienen el mismo número)

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Clave As Integer
Select Case KeyAscii
Case 65 To 90   ' caracteres A-Z (mayúsculas)
    Clave = KeyAscii - 64
    Text2 = Text2 & Format(Clave, "00")
Case 97 To 122  ' caracteres a-z (minúsculas)
    Clave = KeyAscii - 96
    Text2 = Text2 & Format(Clave, "00")
Case 8          ' tecla retroceso, eliminamos el último nº del Text2
    If Text2.Text <> "" Then Text2.Text = Left(Text2, Len(Text2) - 2)
Case Else       ' cualquier otro caracter no se imprime
    KeyAscii = 0
End Select
End Sub

Un saludo


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
40461 Re: problema con cadena de caracteres (Resp: 40444)16/04/08 14:43Ishito   
hola que tal? me fue espectacular con tu ayuda lo unico es que no puedo representar la letra "ñ" ¿me ayudarias con eso? muchisimnas gracias. Un saludo.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
40466 Re: problema con cadena de caracteres (Resp: 40435)16/04/08 15:29juanjoa   
El problema con la eñe sería, qué número tendría, ¿el último, o después de la ene? porque si es lo segundo el código no valdría.

Te propongo otra forma de hacerlo:

Option Explicit
Option Compare Text '
     instrucción para comparar a = A, b = B, c = C, etc..

Dim a() As String   ' Array donde guardaremos las letras

Private Sub Form_Load()
Dim Cadena As String
Cadena = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,ñ,o,p,q,r,s,t,u,v,x,y,z"
a = Split(Cadena, ",")  ' guardamos en el array cada una de las letras
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim i As Integer
Select Case KeyAscii
Case 8
    If Text2.Text <> "" Then Text2.Text = Left(Text2, Len(Text2) - 2)
Case 65 To 90, 97 To 122, 209, 241
    ' letras mayúsculas, minúsculas y ñ-Ñ
    For i = LBound(a) To UBound(a)
        ' recorremos el array de principio a fin
        If Chr(KeyAscii) = a(i) Then
            ' encontró el caracter, le sumamos una unidad al índice del
            ' array porque el primero es cero.
            Text2 = Text2 & Format(i + 1, "00")
            ' salimos del bucle
            Exit For
        End If
    Next i
Case Else       ' cualquier otro caracter no se imprime
    KeyAscii = 0
End Select
End Sub

Nota: Las vocales acentuadas no las vá a considerar.

Un saludo.
[Editado: juanjoa, 16/04/2008 15:35:22]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2026  - foros.elGuille v1.0.6.3 (01/Jun/2021 12:45 GMT +2)  - (ASP.NET v4.0.30319.42000)
 
La hora GMT del servidor es: 09/06/2026 13:57:02 GMT