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!
Visita mi proyecto: Space Cadet

#1 Febrero 13, 2016, 05:18:22 PM Ultima modificación: Febrero 13, 2016, 09:10:14 PM por NiuWeb
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]
alaberga regué el café.

BA:STFW&RTFM

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


Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


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:
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

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.
Vota nuestro proyecto en Steam Greenlight:

Estudios Naicura Ltda