Hello! again...
Estabamos diseñando con un amigo un sistema de "texto inteligente" que hiciese un salto de linea antes de cierta cantidad de caracteres. Sin embargo tuvimos la incertidumbre de no saber porque nuestro código no funcionaba.
Según puedo llegar a entender, la explicación vá así:
Si A es menor a la longitud del texto original, entonces se copia caracter por caracter a "texto_cpc". Esto lo utilizo para poder dibujar el texto con una animación de letra por letra. Para ello incremento la variable A.
Luego tengo otra variable B, que en teoría si, encontrase un espacio en blanco luego de los primeros 60 caracteres, entonces debería insertar el salto de linea. Entonces la funcionalidad es: Si luego de los primeros 60 caracteres (o b mayor a 60) entonces la variable "caracter" es igual al caracter que se encuentra en la posicion de B. Ahora, Si, dicho caracter es un espacio en blanco, entonces inserta salto de linea y vuelve a colocar B en 0
Citar
if (A <= string_length(texto))
{
texto_cpc = string_copy(texto,0,a);
A += 1;
B += 1;
if (B > 60)
{
caracter = string_char_at(texto,B);
if (caracter == chr(255))
{
texto = string_insert("#",texto,B);
B = 0;
}
}
}
El problema es que no funciona y mi razonamiento no sabe porqué XD Haha
Me gustaría saber en dónde me estoy equivocando.
Nyan! :)
Porque estás metiendo el salto de línea en la posición de B cuando deberías hacerlo en la posición de A
if (A <= string_length(texto))
{
texto_cpc = string_copy(texto,0,A);
A += 1;
B += 1;
if (B > 60)
{
caracter = string_char_at(texto,A);
if (caracter == " ")
{
texto = string_insert("#",texto,A);
B = 0;
}
}
}
Muchas gracias por responder, tu respuesta funciona en efecto.
Y ahora noto la difetencia entre un chr(255) y un " ", es por ello que nisiquiera hacía salto de linea. Es decir, seguía todo derecho.
Luego de analizar cuidadosamente por no sé cuanta vez, comparando tu respuesta llegué por fin a entender la diferencia.
Muchas Gracias!
Saludos!
Nyan!