test_game.exe
└system
└scroll_player.dat
file_text_open_readで読み込むときは、working_directory等を付けなくても読み込むことが可能です。
▼マニュアル working_directoryについて
https://manual.yoyogames.com/GameMaker_Language/GML_Reference/File_Handling/File_Directories/working_directory.htm
dir = "system/";
fid = file_text_open_read(dir + "scroll_player.dat");
で読み込めます。
file_text_open_read実行時には、ゲームの実行ファイルのある場所が基準となりますので、事項ファイルのある場所以下のパスを入れることで読み込むことができます。デバッグ時も変わらないはずです。
上にあった、appdata等からも読み込むことができますが、優先順位があります。
file_text_open_readなどで読み込む際には、ファイルが存在するか?読み込めるか調べて無かった場合、順位が下のファイルが存在するか?読み込めるかを調べていくようです。
1.「%localappdata%<ゲーム名>」or「%appdata%<ゲーム名>」のパス以下
2.ゲームの実行パス以下
ビルド前に
dir = program_directory + "/system/";
を有効化する必要もないと思います。
fid = file_text_open_read("system/scroll_player.dat");
なら、実行ファイルのある場所以下systemフォルダのscroll_player.datを読み込めます。
datafilesに入れたフォルダやファイルは、exeのある場所にそのまま配置されるので、デバッグ時でもプログラムを変える必要はないと思います。デバッグ時もexeが出来たときと同じように読み書きできます。
datafiles(インクルードファイル)
└system
└scroll_player.dat
で実行ファイルを作成するとファイルの配置は
test_game.exe
└system
└scroll_player.dat
となります。
マニュアルのFile Systemページにファイルの仕組みが解説されていますので参考にしてみてください。
https://manual.yoyogames.com/Additional_Information/The_File_System.htm