在J
中,在阅读文本文件后,如何摆脱CR
或LF
或CRLF
然后我可以使用".
没有获得spelling error
?
答案 0 :(得分:3)
使用freads
动词会强制行结尾为LF
。如果您使用的是J6或更早版本,则需要先加载files script (load 'files'
),否则freads
可用作标准库的一部分。然后,正如Eelvex建议cut ;.
更具体地;._2
可以使用字符串中的最后一个字符(在本例中为LF
)来划分文件的行。定界符:
_99&".;._2 freads 'myfile.txt'
最好使用Numbers(二元".
)将文字转换为数字而不是Do(monadic ".
)。这避免了在文件中“执行”代码的潜在安全问题,并将正确转换更多变体,比较以下内容:
". '45 -34' NB. monadic ".
11
_99 ". '45 -34' NB. dyadic ".
45 _34
您可以更快地找到以下内容:
_99 ". ];._2 freads 'myfile.txt'
Numbers
一次作用于整个数组,而不是单独在每一行上运行。
答案 1 :(得分:1)
cut
;.使用最后一项(烦恼|2
) - 应该是您的CR / LF - 同时删除此项(烦恼_2
)。
a =: 0 : 0 NB. a =: (1!:1)<filename
1 2 3 4
5 6 7 8
)
*: ".;._2 a
1 4 9 16
25 36 49 64