Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: _-Caleb-_ en Febrero 13, 2016, 03:48:53 PM

Título: Duda con lectura de archivos de texto
Publicado por: _-Caleb-_ en Febrero 13, 2016, 03:48:53 PM
Buenas tardes,

A ver si alguien me echa un cable.

Quiero leer líneas concretas de un archivo de texto plano para mostrar información en pantalla, creo que la función que debería usar es file_text_readln() pero no me termino de aclarar, a ver, esto está tremendamente mal, no?

//Ejemplo de Gamemaker Studio
var num = 0;
// Se declaran las variables
file = file_text_open_read(working_directory + "\savedata.txt");
while (!file_text_eof(file))
// se abre el archivoyse lee hasta el final
    {
    str[num++] = file_text_readln(file);
    }
// Se crea una variable str[X] por línea ¿No?
file_text_close(file);


Pero luego para mostrar las líneas cómo lo haría? Porque es ahí donde me pierdo.

Eso es lo que me lía

Saludos!
Título: Re:Duda con lectura de archivos de texto
Publicado por: bygdle en Febrero 13, 2016, 05:18:22 PM
No. Estás leyendo mal el archivo puesto que estás usando la función file_text_readln() incorrectamente. Para hacer lo que quieres habría que hacerlo así:
[gml]
f = file_text_open_read(working_directory + "\savedata.txt");
var str, n = 0;
while(!file_text_eof(f))
{
str[n] = file_text_read_string(f);
file_text_readln(f);
n++;
}
[/gml]
Título: Re:Duda con lectura de archivos de texto
Publicado por: Jucarave en Febrero 13, 2016, 05:19:55 PM
Debes utilizar las funciones de "file_text_read_string" y "file_text_read_real" para leer correctamente. Las lineas quedaron almacenadas en el array llamado "str", entonces para acceder a las lineas simplemente puedes hacer:

[gml]
// Imprime la primera linea:
show_message(str[0]);
// Imprime la segunda linea
show_message(str[1]);
....
[/gml]

también lo puedes hacer con un for recursivo

[gml]
// En algún evento draw...
var length = array_length_1d(str);
for (var i=0;i<length;i++){
    draw_text(16, 16 + (16 * i), string(str));
}
[/gml]

Saludos

Título: Re:Duda con lectura de archivos de texto
Publicado por: kostra en Febrero 15, 2016, 02:52:30 PM
lo que yo no he visto en mi vida eso de [num++] ese plusplus dentro de una array? se puede? what?, ni idea, si se puede no sabía D:
Título: Re:Duda con lectura de archivos de texto
Publicado por: Markus en Febrero 15, 2016, 07:51:24 PM
Cita de: kostra en Febrero 15, 2016, 02:52:30 PM
lo que yo no he visto en mi vida eso de [num++] ese plusplus dentro de una array? se puede? what?, ni idea, si se puede no sabía D:

No se trata de arreglos, sino de asignación de variables. En vez de hacer esto:
[gml]
i = 0;
n = i;
i++;
[/gml]
Puedes hacer:
[gml]
i = 0;
n = i++;
[/gml]
Y te da el mismo resultado. Pero ten cuidado, que si haces esto:
[gml]
i = 0;
n = ++i;
[/gml]
Primero suma 1 a la variable i y luego la asigna a n. O sea que n sería 1 en vez de 0, como en los ejemplos anteriores.