hmmm tengo algo así...
mapname = string_lettersdigits(get_string("Map name: ",""));
y lo que quiero es que solo pueda el usuario poner letras y numeros... y espacios... es decir, si escribe "[[[joselito66 el chulo!!]]]" con esa función me saldrá "joselito66elchulo", pero quiero que salga "joselito66 el chulo"
eso se puede? no encuentro función en la lista de "string_"
:/
Sí, yo te recomendaría que obtengas la longitud de la string introducida, metas un ciclo for y que el programa "inspeccione" cada caracter de la cadena, en caso de que sea una letra o espacio le dices que no haga nada pero si es otra cosa que sustituya ese caracter inspeccionado por "" (con string_replace), de esa forma la cadena resultante quedará limpia de polvo y paja ;)
EDIT: Te dejo un ejemplo de código que debería funcionar, se puede mejorar claro está ;)
cadena_base="" // Definimos algunas variables que utilizaremos
long=0
caracter=""
cadena_final=""
cadena_base=get_string("Dime lo que quieras que yo te lo traduzco:","")
long=string_length(cadena_base) // Tomamos la longitud de la cadena
for(i=1;i<=long;i=i+1) // Inspeccionamos cada caracter de la cadena
{
caracter=string_ord_at(cadena_base,i) // Número del caracter
if caracter=32{cadena_final=cadena_final+string_char_at(cadena_base,i)} // Si es un espacio, nos interesa, lo añadimos
if caracter>47 and caracter<58{cadena_final=cadena_final+string_char_at(cadena_base,i)} // Si es un número, nos interesa, la añadimos
if caracter>64 and caracter<91{cadena_final=cadena_final+string_char_at(cadena_base,i)} // Si es letra mayúscula, nos interesa, lo añadimos
if caracter>96 and caracter<123{cadena_final=cadena_final+string_char_at(cadena_base,i)} // Si es letra minúscula, nos interesa, la añadimos
}
show_message("La cadena ya traducida es: "+cadena_final)
okay, tengo esto... pero no sé si voy bien, además de que no sé cómo se detecta si el char es una letra o espacio :/
mapname = get_string("Map name: ","");
for (i=1;i<string_length(mapname);i++)
{
char = string_char_at(mapname,i);
if char != ????
string_replace(mapname,char,"");
}
Acabo de añadir mi código de ejemplo también, a ver si te vale.
De qué calidad quieres el jamón!!? muchísimas gracias, es ABSOLUTAMENTE P-E-R-F-E-C-T-O
bueno salvo el detalle de mi propio orden, todos tenemos manias jejeje, que agusto me he quedado acomodándolo a mi manera :B
mapname = "";
mname = get_string("Map name: ","");
for(i=1;i<=string_length(mname);i++)
{
char = string_ord_at(mname,i)
if char == 32
mapname = mapname+string_char_at(mname,i);
if char > 47
and char < 58
mapname = mapname+string_char_at(mname,i);
if char > 64
and char < 91
mapname = mapname+string_char_at(mname,i);
if char > 96
and char < 123
mapname = mapname+string_char_at(mname,i);
}
:B
Falta añadirle que detecte ñ minuscula , mayúscula y letras con acentos. Esos casos no creo que los detecte pero es sólo añadir esos códigos ASCII y listo ;)
tienes razón, si te apetece ponerlo eres libre jaja, pero en mi caso, no lo necesito, también quiero que se evadan, alfabeto internacional normalito jajaja