Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: bygdle en Septiembre 09, 2017, 06:20:10 PM

Título: Convertir arreglo unidimensional a cadena de texto.
Publicado por: bygdle en Septiembre 09, 2017, 06:20:10 PM
Autor: NiuWeb.
Versión de GM: Studio 1.4.
Descripción: Crea una cadena de texto a partir de el arreglo y las propiedades dadas.
[gml]
///parse_array(array1d, open, pattern, separator, close)
var array     = argument0;
var opens     = argument1;
var pattern   = argument2;
var separator = argument3;
var close     = argument4;

var arrlen = array_length_1d(array);

var text, part;
var result = "";

for(var i = 0; i < arrlen; i++)
{
    text = string(array);
    part = split(pattern, "$n");
    parl = array_length_1d(part);
    for(var j = 0; j < parl; j++)
    {
        result += part[j];
        if(j < parl - 1) result += text;
    }
   
    if(i < arrlen - 1) result += separator;
}
return opens + result + close;
[/gml]
Para funcionar, este script requiere de éste: split() (http://www.comunidadgm.org/index.php?topic=26286.0)

Uso:
El argumento array1d es el arreglo original a convertir.

El argumento open es la cadena de texto que estará al inicio.

El arumento pattern es el que permite definir cómo se imprimirán los valores del arreglo. Se usa "$n" como base para insertarlos.

El argumento separator es un separador entre valores. No se inserta al final del último valor.

El argumento close es la cadena de texto que estará al final.

Ejemplo:
[gml]
arreglo[0] = "Elefante";
arreglo[1] = "Avestruz";
arreglo[2] = "Tiburón";
arreglo[3] = "Cocodrilo";

txt = parse_array(arreglo, "{", '"$n"', ",", "}");
show_message(txt);
[/gml]
Se muestra el siguiente mensaje:
(https://image.prntscr.com/image/FGg7eDyXQRGEcm5RuTChmA.png)