Hola:
Tengo esto iValor = 23
StrValor = "Sector_" + string_format(i,4,0) +".jpg"
Necesito esto: "Sector_0023.jpg"
y aparece esto: "Sector_ 23.jpg"
Obviamente necesito rellenar con ceros antes del valor, alguna idea !!!
no se ven tus imagenes, no tiene icono de gm usas, pero bueno para mostrar ceros antes de un string seria asi
valor=2
if valor <9{
draw_text "000000"+string(valor)
}
if valor <99{
draw_text "00000"+string(valor)
}
lo puedes adecuar condicionando los demas valores
Hola, puedes resolverlo de una manera muy sencilla:
[gml]
counter = 83; //Valor a mostrar
text = "0000"; //Cantidad de digitos
text = string_copy(text,0,string_length(text)-string_length(string(counter))); //Cantidad de digitos ajustada
draw_text(16,16,text+string(counter)); //Imprimiendo el texto
[/gml]
Este código funciona para cualquier cantidad de dígitos, puedes cambiar
text = "0000";
por
text = "000000000";
y seguirá funcionando
Saludos.
ahhhh : Gracias
muy bueno si funciona ... vale !!!!
Hola, puesdes crear un script tipo tiempo, me explico:
n=23 -> d1=0, d2=0, d3=2, d4=3
d1=floor(23/1000);
d2=floor((n-1000*d1)/100);
d3=floor((n-1000*d1-100*d2)/10);
d4=floor((n-1000*d1-100*d2-100*d3)/1);
texto=string(d1)+string(d2)+string(d3)+string(d4);
Este es un proceso muy sencillo que se puede automatizar y reducir en mucho las operaciones, Saludos.
Hey la tengo,,, miren
i = 55 //. El Numero a Convertir 55
k = 4 //. la Cantidad de Ceros a Rellenar
kStr = string_format((i/10000),1, k) //. Resulta en "0.0055"
hStr = string_copy(kStr,3, k) //. Luego se copia el String después del Punto
Ahora una Sugerencia:
(i / 10000) es la división para que me de las milesimas, pero esta expresión en tablas matemáticas acá esta
fija, pero para que sea adaptada al valor de la variable k,,,
Tiene que expresarse como: 1 e4
Se dice: 1 exponente 4, prueben en sus calculadoras
entonces la expresión debe ser ...
Cincuenta y Cinco DIVIDIDO en Uno EXPONENTE 4
osea: 55 / 1 e4 //. YO No se como se hace el exponente en GML
sería i / 1 * elevado(exponente(4)) //. YO no se
pero esa es la expresión matemática,, y funcionaría con los ceros que queramos darle
Comentenme !!!
Los exponentes se calculan con la función power(x,n), así que quedaría power(1,4)
Igual no hace falta tanto cálculo, poner 10000 de llano es mejor que power(1,4), escribir código más corto no significa más óptimo, en casos como este es al revés
Me gustó el script, pero tiene fallas, no funciona con números decimales
Sería mejor usar
text="245"
largo=5
len=largo-string_length(text)
if len>0{
repeat(len){
text="0"+text}}
Gracias me gustaron mucho sus respuestas, para encontrar soluciones eficientes, pero en conclusión me
me quedare con este código, y les dejare acá el Script, como agradecimiento, por si alguien más
lo necesita ...
gracias a todos !!!
caso cerrado !!!
/*
Script : RellenarCeros
Llamada : RellenarCeros(245, 6)
Resultado: 000245
argument[0] = ElNumero Entrante
argument[1] = La Longitud de Ceros + Numero
by esbxp
*/
{
strNumero = string(argument[0])
Longitud = argument[1]
espacios = Longitud - string_length(strNumero)
strTexto = "0"
repeat (espacios -1) {
strTexto = strTexto + "0"
}
strTexto = strTexto + strNumero
return strTexto
}