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!
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]
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
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:
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.