我正在努力在使用循环时从文件初始化字符串的数组或arrayList,但我正在使用的每个函数 - put / enter / force似乎都没有用。尽管我正在访问我增加每次迭代的特定索引,但是数组一次又一次地填充了我读取的最后一个字符串。 (我试图添加常规常量字符串,但效果很好,我不明白其中的区别。
感谢所有愿意提供帮助的人。
tArray:ARRAY[STRING] -- declaring
create tArray.make_empty
readingFile() --function
local
k:INTEGER_32
do
from k:=0
until curFile.end_of_file
loop
curFile.read_line
curLine:=curFile.last_string
tArray.force (curLine, k)
--tArray.put(curLine, k)
--tArray.enter (curLine, k)
--tArray.at (k):=curLine
--tArray.force ("sara", k+1)
k:=k+1
end
end
答案 0 :(得分:0)
功能read_line
不会每次都创建一个新的字符串对象,而是重用最后一个。换句话说,last_string
总是指同一个对象。解决方案是在每次迭代时使用与last_string
关联的对象的克隆:
curLine := curFile.last_string.twin