Noticias

¡Ayuda a la Comunidad GM, haz una donación!

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: LIMITADOR DE CARACTERES  (Leído 702 veces)

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

Desconectado nonoroman

en: Abril 30, 2019, 09:30:49 pm
Buenas familia, otra vez estoy por aqui.

Tengo la siguiente duda;

Quiero limitar los digitos al introducir un nombre, por ejemplo a 8 digitos.

El string_length(str); cuenta el numero de digitos del str, ok, pero mi pregunta es....como puedo recortar ese str??? para que solo sean 8 digitos?? en el caso que los supere??

Saludos, y espero ayuda, please.


PCNONOGames  www.pcnono.es
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado FridaFlowers

Respuesta #1 en: Abril 30, 2019, 11:26:53 pm
Te comparto un script que hice hace poco para un tutorial de UDP. Este sirve para recibir teclas, osea, algo asi como escribir en Word.
Te permite borrar con backspace, o eliminar todo con suprimir. Lo tenía para ingresar direcciones IP, por lo que tendrías que completarlo para todas las letras del alfabeto.


if (puede_escribir){
    var ultimo = string_length(contenido);
   
    if (keyboard_lastkey == vk_delete) //elimiar toda la cadena con suprimir
        contenido = "";
       
    if (keyboard_lastkey == vk_backspace) //elimiar el ultimo caracter
        contenido = string_copy(contenido, 0, ultimo-1);
       
    var caracter = keyboard_lastchar;
   
    switch(caracter){
        case "a":
        case "b":
        case "c":
        case "d":
        case "e":
        case "f":
        case "g":
        case "h":
        case "i":
        //rellenar hasta la z  XD
       case "z":
           
            if (ultimo < 8) //agregar solo cuando no exceda los 8 caracteres
                contenido = string_insert(caracter,  contenido, ultimo+1);

        break;
    }
}

if (keyboard_lastkey == vk_enter)
    global.cadena = contenido;



 
Los siguientes usuarios dieron las gracias a este tema: nonoroman


Desconectado nonoroman

Respuesta #2 en: Mayo 01, 2019, 12:01:12 am
Gracias Frida

Pero creo que eso no es lo que necesito. O no te entendi bien.

Sorry.

PCNONOGames  www.pcnono.es
 


Desconectado 3dgeminis

Respuesta #3 en: Mayo 01, 2019, 04:25:51 pm
En 2 lineas de codigo lo tienes:
nombre=string_copy(keyboard_string, 0, 8)
keyboard_string=nombre

 
Los siguientes usuarios dieron las gracias a este tema: nonoroman


Desconectado nonoroman

Respuesta #4 en: Mayo 10, 2019, 07:49:45 pm
Muchas gracias, es algo simple, pero que nunca habia realizado. Gracias 3dgeminis

PCNONOGames  www.pcnono.es
 


Desconectado 0m@R

Respuesta #5 en: Junio 26, 2021, 09:50:01 pm
Te comparto un script que hice hace poco para un tutorial de UDP. Este sirve para recibir teclas, osea, algo asi como escribir en Word.
Te permite borrar con backspace, o eliminar todo con suprimir. Lo tenía para ingresar direcciones IP, por lo que tendrías que completarlo para todas las letras del alfabeto.

if (puede_escribir){
    var ultimo = string_length(contenido);
    ...

Buen código Frida antes también lo hacía así, pero recomiendo que cambies el extenso switch por algo mas o menos así:

if ultimo < 8 { // agregar solo cuando no exceda los 8 caracteres
        if string_count(caracter, "abcdefg...ABCDEF...1234...$%&...etc") != 0 { // se puede modificar str mascara de caracteres permitidos
                contenido = string_insert(caracter,  contenido, ultimo+1);
        }
}

 


 


Warning: Parameter 1 to spoiler_buffer() expected to be a reference, value given in Unknown on line 0

Warning: Parameter 1 to custom_report_ob() expected to be a reference, value given in Unknown on line 0