在J
,在读入文本文件后,如何摆脱那些CR
or LF
orCRLF
然后我可以使用".
而无需得到spelling error
?
问问题
171 次
2 回答
3
使用freads
动词将强制行尾为LF
. 如果您使用的是 J6 或更早版本,则需要先加载文件脚本( load 'files'
),否则freads
可作为标准库的一部分使用。然后正如 Eelvex 建议的那样,cut ;.
更具体地说;._2
可用于使用字符串中的最后一个字符(在本例LF
中为 )作为分隔符来划分文件的行:
_99&".;._2 freads 'myfile.txt'
最好使用Numbers (dyadic ".
) 将文字转换为数字而不是Do (monadic ".
)。这避免了文件中“执行”代码的潜在安全问题,并将正确转换更多变体,比较以下:
". '45 -34' NB. monadic ".
11
_99 ". '45 -34' NB. dyadic ".
45 _34
您可能会更快地发现以下内容:
_99 ". ];._2 freads 'myfile.txt'
Numbers
一次作用于整个数组,而不是单独在每一行上运行。
于 2013-09-28T21:49:03.457 回答
1
cut
;. 使用最后一项 (fret |2
) - 这应该是你的 CR/LF - 同时删除这个项目 (fret _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
于 2013-09-28T00:45:00.097 回答