:GMS:

Buenas,

por ejemplo si tengo una cadena que sea "ACE09:09" me gustaría poder hacer dos cachos de la siguiente forma; querría por un lado tener la subcadena ACE y por otro la subcadena 09:09. ¿Cómo se puede hacer esto en GML?

Thanks

Hola empardopo

Claro que se puede, tu puedes establecer el criterio. Existe la función "string_copy" que toma una parte del texto tal como lo hace la función "EXTRAER" del Excel. También está "string_delete" que hace algo parecido, pero te borra el rango que le indicas y deja todo el resto.
var str_total = "ACE09:09"
var str1 = string_copy(str_total,1,3)
var str2 = string_delete(str_total,1,3)

En el ejemplo de arriba.
str1 = ACE
str2 = 09:09

Favor ten en cuenta que en las strings el primer caracter tiene índice "1" (y no cero como en la mayoría de listas, loops, arrays, etc)
También ten en cuenta que si usas esta función para extraer números, esos "números" quedan en formato de texto, no los puedes usar para operaciones matemáticas, primero debes convertirlos a números de nuevo mediante la función "real()".

Te recomiendo que leas la documentación, al final puedes encontrar la lista de funciones que te ofrecen las strings de Game Maker.
https://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/strings/index.html

Cita de: BssString en Septiembre 08, 2018, 08:59:39 PM
Hola empardopo

Claro que se puede, tu puedes establecer el criterio. Existe la función "string_copy" que toma una parte del texto tal como lo hace la función "EXTRAER" del Excel. También está "string_delete" que hace algo parecido, pero te borra el rango que le indicas y deja todo el resto.
var str_total = "ACE09:09"
var str1 = string_copy(str_total,1,3)
var str2 = string_delete(str_total,1,3)

En el ejemplo de arriba.
str1 = ACE
str2 = 09:09

Favor ten en cuenta que en las strings el primer caracter tiene índice "1" (y no cero como en la mayoría de listas, loops, arrays, etc)
También ten en cuenta que si usas esta función para extraer números, esos "números" quedan en formato de texto, no los puedes usar para operaciones matemáticas, primero debes convertirlos a números de nuevo mediante la función "real()".

Te recomiendo que leas la documentación, al final puedes encontrar la lista de funciones que te ofrecen las strings de Game Maker.
https://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/strings/index.html

Muy interesante. Muchísimas gracias compi!
Saludos

Si bien la respuesta de BssString puede servir si conocemos con antelación la cantidad de caracters que tiene el string, el caso es diferente cuando no conocemos esta variables
en estos casos lo que estas pidiendo se llama String split y aqui hay un script para ello

https://yal.cc/gamemaker-split-string/

el uso del script es
string_split("TEXTO COMPLETO AQUI", "DELIMITADOR")
este script corta el string cada vez que detecta el caracter limitador y devuelve un array con todos los cortes
Gracias Jhony por prestarme tu nick