PDA

Ver la versión completa : Primer informe de resultados (para debuguear Fenix)



Drumpi
09/04/2007, 01:34
Bueno, supongo que tendré que volver a postearlo todo, menos mal que siempre guardo una copia de respaldo de las cosas importantes.
A ver donde lo he puesto... en este bolsillo no... aqui tampoco... aqui, en esta servilleta del bar, os la pongo con fiso, y no le hagais caso a la mancha de cafe.

************************************************** **
PRUEBA DE FOPEN, FWRITE Y FREAD
************************************************** **
CODIGOS USADOS:

program escribe_datos;

GLOBAL
byte dato1;
word dato2;
int dato3;
END
PRIVATE
id_fich;
END

BEGIN
dato1=23;
dato2=500;
dato3=101500;
id_fich=fopen("datos.txt",o_write);
fwrite(id_fich,dato1);
fwrite(id_fich,dato2);
fwrite(id_fich,dato3);
fwrite(id_fich,dato1);
fclose(id_fich);
frame;
while (!key(_enter)) frame; end
end


program lee_datos;

GLOBAL
byte dato1;
word dato2;
int dato3;
END
PRIVATE
id_fich;
END

BEGIN
id_fich=fopen("datos.txt",o_read);
fread(id_fich,dato1);
fread(id_fich,dato2);
fread(id_fich,dato3);
write(0,10,10,0,dato1);
write(0,10,20,0,dato2);
write(0,10,30,0,dato3);

fread(id_fich,dato1);
write(0,10,40,0,dato1);
fclose(id_fich);
loop
if(key(_enter)) break; end
frame;
end
end


OBJETIVOS: escribir un fichero binaro con tres valores: un byte, un word y un int:

Pruebas realizadas: ambos codigos en windows funcionan a la perfección. Probando escribe_fichero el archivo se ejecuta sin problemas y genera un fichero, a simple vista se ve que los datos guardados no son iguales. Al ejecutar lee_fichero el codigo tambien se ejecuta sin problemas, pero se leen los siguientes valores:
124
35964
25984000
124
Obviamente no son correctos. Además, el fichero no tiene datos de la fecha de creación, pero se presupone que es algo normal, pues la consola no dispone de reloj interno. Se intenta entonces con un fichero generado por el codigo escribe_fichero en version windows, con el siguiente resultado:
23
62487
32774012
23

************************************************** *************************
PRUEBA DE FPUTS Y FGETS
************************************************** *************************

CODIGOS USADOS:

PROGRAM escribefichero;

CONST

GLOBAL
texto;
LOCAL

PRIVATE
string cadena1;
string cadena2;
BEGIN
full_screen=false;
set_mode(m800x600);
set_fps(30,0);
texto=fopen("textos.txt",o_write);

//fputs(texto,"Cuñaao, esto no escribeee");
//fputs(texto," ¿O quizás si lo hace de 2 en 2?");
//fclose(texto);

cadena1="Cuñaao, esto no escribeee"+chr(13);//+chr(13);
cadena2="¿O quizás si lo hace de 2 en 2?"+chr(13);//+chr(13);
fputs(texto,cadena1);
fputs(texto,cadena2);
fclose(texto);
while (!key(_enter)) frame; end

END



PROGRAM leefichero;

CONST

GLOBAL
texto;
string primer;
string segun;
LOCAL

PRIVATE

BEGIN
full_screen=false;
set_mode(m320x240);
set_fps(30,0);
texto=fopen("textos.txt",o_read);
primer=fgets(texto);
segun=fgets(texto);
//segun=ucase(segun);
write(0,10,10,0,substr(primer,0,-2));
write(0,10,30,0,substr(segun,0,-2));
while (!key(_enter))
frame;
end

END

OBJETIVOS: crear un fichero de texto legible desde un visor de txt, con retorno de carro estilo windows (caracteres 10 y 13) y que se pueda leer posteriormente como textos por un juego.

Pruebas realizadas: Se comprobó primero el correcto funcionamiento en la versión windows, si bien el juego de caracteres no coincide con el del bloc de notas si que se puede leer, y los textos se muestran perfectamente en pantalla. A continuación se ejecutó escribefichero segido de leefichero en la consola: escribefichero se ejecutó sin problemas, y el fichero generado, visualmente (bloc de notas) es identico. Al ejecutar leefichero, este lo hizo sin problemas y el texto salió nítido y sin problemas por pantalla.