DIV ARENA FORUMS » DIV GAMES STUDIO » Hardcore Coders » reading and writing files
Select A Forum
The Forum
» FORUM RULES
» Competitions
» Code Golf
» News
» User News
» DIV's future
DIV GAMES STUDIO
» General Discussion
» DIV
» Beginners
» Hardcore Coders
» Technical Q&A
» Remakes
» Code-along with Mike
» Tutor 0 - Space shooter!
» Tutor 1 - Platfom Game
» WIPS
» Code Snippets
» DLLs
» Finished Games
» Resource Sharing
» DIV 1 + 2 (DOS)
» DIV 2 (Modern)
» DIV 3 (DX)
» DIV Windows
» DIV Linux
» DIV OSX
» DIV Android
» DIV 3DS
» DIV Raspberry Pi
» DIV HTML/JS
» DIV iPhone / iPad (IOS)
» DIV GCW Zero
» DIV Pandora
» DIV PSP
» Screenshots
» Time Out
Casper
DIV Pro
Posts: 31
Registered: 18-10-2017
Member Is Offline
reading and writing files
Context: I'm writing a level editor for my game, I need to read and write some files.
Write:
Code:
function SaveObject(string fileName, a)
private
fileHandle;
begin
debug;
// open file handle
fileHandle = fopen(DATA_OBJECTS_PATH + fileName, "w");
// write object data
fwrite(offset a, sizeof(a), fileHandle);
// close file handle
fclose(fileHandle);
end
Read:
Code:
function LoadObject(string fileName)
private
fileHandle;
a;
begin
debug;
// open file handle
fileHandle = fopen(DATA_OBJECTS_PATH + fileName, "r");
// read object data
fread(offset a, sizeof(a), fileHandle);
// close file handle
fclose(fileHandle);
end
I read through the old DIV documentation. As I understand it, this code should write an integer to the file, and read that same integer from the file.
However, stepping through this code, the value of 'a' after fread() is some gigantic number:
The integer I pass to the SaveObject() function is 273, that is the expected value of 'a'.
Here are the contents of the written file:
Quote:
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377
400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400 80 640 377 400
All that just to write a single integer!
Any clues? I'm struggling to debug this. It feels as though the DIV documentation is inaccurate...
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
Hi Casper,
Please try the following test:
Code:
program test_fopen;
const
DATA_OBJECTS_PATH = "";
global
a;
begin
SaveObject("__test_fopen.dat", 273);
LoadObject("__test_fopen.dat");
write_int(0, 160, 100, 4, &a);
repeat
frame;
until(key(_esc));
end
function SaveObject(string fileName, a)
private
fileHandle;
begin
// open file handle
fileHandle = fopen(DATA_OBJECTS_PATH + fileName, "w");
// write object data
fwrite(offset a, sizeof(a), fileHandle);
// close file handle
fclose(fileHandle);
end
function LoadObject(string fileName)
private
fileHandle;
begin
// open file handle
fileHandle = fopen(DATA_OBJECTS_PATH + fileName, "r");
// read object data
fread(offset a, sizeof(a), fileHandle);
// close file handle
fclose(fileHandle);
end
Work as expected, at least on DIV build that i have on Linux 64 bit.
Casper
DIV Pro
Posts: 31
Registered: 18-10-2017
Member Is Offline
Hey CicTec, thanks for writing that! I should have done it myself, as it's more useful to test with. I tested with this:
Code:
program test_fopen;
const
DATA_OBJECTS_PATH = "assets/";
global
a;
b;
begin
debug;
SaveObject("__test_fopen.dat", 273);
LoadObject("__test_fopen.dat");
write_int(0, 160, 100, 4, &b);
repeat
frame;
until(key(_esc));
end
function SaveObject(string fileName, a)
private
fileHandle;
begin
// open file handle
fileHandle = fopen(DATA_OBJECTS_PATH + fileName, "w");
// write object data
fwrite(offset a, sizeof(a), fileHandle);
// close file handle
fclose(fileHandle);
end
function LoadObject(string fileName)
private
fileHandle;
begin
// open file handle
fileHandle = fopen(DATA_OBJECTS_PATH + fileName, "r");
// read object data
fread(offset b, sizeof(b), fileHandle);
// close file handle
fclose(fileHandle);
end
The first time I ran it and stepped through, this is the value I got for 'b':
After running a few times with minor edits, I saw '273' and I realized what's happening. I'm inspecting the value of the written file while running
the DIV program. When there is an open file handle and another program accesses the same file, it appears to corrupt it. If I don't inspect the file
while handling the file it works as expected
[Edited on 2018-1-7 by Casper]
Casper
DIV Pro
Posts: 31
Registered: 18-10-2017
Member Is Offline
edit: Nevermind. I'm going crazy. There are probably some unintuitive things going on with the DIV compile/run loop that are giving my debugging
skills a run for their money.
[Edited on 2018-1-7 by Casper]
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
Hi Casper,
I'm happy that the example helped you find the problem.
Yes, files should only be opened by one program at a time, in fact, many advanced editors recommend closing all programs that can access / use the
files before modifying them, to avoid data loss or corruption.
Quote: Originally posted by Casper edit: Nevermind. I'm going crazy. There are probably some unintuitive things going on with the DIV compile/run loop that are giving my debugging
skills a run for their money.
What do you mean exactly, do you have problems using the debugger, or does this present any possible bugs?
Casper
DIV Pro
Posts: 31
Registered: 18-10-2017
Member Is Offline
Well, I stopped opening/viewing the .dat file while stepping through with the debugger. After that, it appeared that the issue (crazy large integers
in debugger, and corrupted files) went away. Now in order to validate my assumptions I wish to force the same error to occur again... Unfortunately, I
can't reproduce it even though I'm doing the same things: 1) step through and observe the values while the file handle is open, and 2) open/view the
file while the file handle is open. So now I'm doubting my own conclusions. I don't understand what caused the error, so I can't prevent myself from
making it again.
edit: Again, nevermind. I tried again now and was able to replicate it three times. Stepping through after fopen(), I open the file in notepad (also a
few times with vim), and see the whole mess of integers there. Once that's happened it will save the corrupt file and reading it will give the wrong
result. I'm not (totally) insane
[Edited on 2018-1-8 by Casper]
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
Yes, you must keep in mind that opening a file in read only should not cause problems, the problem is that some editors automatically save the file
open after a certain period of time, and if you have made changes without saving you then find yourself with the changes file and possible data
corruption, if this is simultaneously open in another program for reading / writing, so not to go crazy, open the file with only one editor at a time.
DIV ARENA FORUMS » DIV GAMES STUDIO » Hardcore Coders » reading and writing files
Select A Forum
The Forum
» FORUM RULES
» Competitions
» Code Golf
» News
» User News
» DIV's future
DIV GAMES STUDIO
» General Discussion
» DIV
» Beginners
» Hardcore Coders
» Technical Q&A
» Remakes
» Code-along with Mike
» Tutor 0 - Space shooter!
» Tutor 1 - Platfom Game
» WIPS
» Code Snippets
» DLLs
» Finished Games
» Resource Sharing
» DIV 1 + 2 (DOS)
» DIV 2 (Modern)
» DIV 3 (DX)
» DIV Windows
» DIV Linux
» DIV OSX
» DIV Android
» DIV 3DS
» DIV Raspberry Pi
» DIV HTML/JS
» DIV iPhone / iPad (IOS)
» DIV GCW Zero
» DIV Pandora
» DIV PSP
» Screenshots
» Time Out