【发布时间】:2020-07-08 15:56:19
【问题描述】:
我目前正在开发一个 Prolog 程序,从逻辑上讲,它具有某种“保存/加载”功能。我已经让保存部分开始工作,我现在(作为开始)创建三个 *.txt 文件,每个文件都包含一个二维数组/列表。但是,我在尝试将其加载回程序时遇到了一些问题。
我现在拥有的东西很简单:
% Initialize globals
?- nb_setval(aisles_global, []).
% Load all previously saved data from the given .txt files
load_all():-
exists_file('C:\\Users\\Xariez\\Desktop\\aisles.txt'),
open('C:\\Users\\Xariez\\Desktop\\aisles.txt', read, InAisles),
read_line_to_codes(InAisles, AisleString),
% read_line_to_string(InAisles, AisleString),
writeln(AisleString),
nb_setval(aisles_global, AisleString),
close(InAisles).
如前所述,每个文件都有一个二维数组,但作为示例:
aisles.txt
[["Beer", "Cider" ], [ "Milk", "Juice" ], ["Light Bread", "Dark Bread"]]
我尝试过同时使用read_line_to_codes/2 和read_line_to_string/2。虽然它在技术上在将其读入代码时有效,但我觉得重建 2D 列表/数组很快就会变得烦人,因为它现在将每个字符都作为代码。虽然在读取部分成功读入字符串,但我们现在有一个看起来像列表的字符串,但实际上并不是一个(如果我正确理解了这种情况?)。所以我在这里。
如果有人有任何想法/帮助,我们将不胜感激。谢谢!
【问题讨论】: