我想要阅读这个文本文件“test.txt”。它有几行:
line1
line2
trim(1255, 158597)
#712, 272, 4, 102
我使用以下代码:
itrimcmd = ""
secondline = ""
File.open("test.txt").each_line { |line|
puts "[8]... #{line}"
if line =~ /^trim/ then itrimcmd = line end
if line =~ /^#/ then secondline = line end
}
puts "itrimcmd: #{itrimcmd}"
puts "secondline: #{secondline}"
我的代码不适用于此文件。输出:
#712, 272, 4, 102)
itrimcmd:
secondline:
如果我重新输入具有完全相同内容的第二个文件,这一次,我得到了正确的结果:
line1
line2
trim(1255, 158597)
#712, 272, 4, 102
我认为这两个文本文件没有任何区别。正确的输出:
[2]... line1
[2]... line2
[2]... trim(1255, 158597)
[2]... #712, 272, 4, 102
itrimcmd: trim(1255, 158597)
secondline: #712, 272, 4, 102
我在Windows 7上使用Ruby 1.9.3。
答案 0 :(得分:2)
我现在唯一能想到的是文件test.txt
的两个版本可能有不同的换行符。有三种类型的换行符:\n
(linux),\r\n
(windows)和\r
(mac)。尝试以二进制模式和/或文本模式打开文件,也许您可以获得预期的结果。
关于评论的Notepad ++的CRLF配置,您可以进入菜单设置 - >偏好 - >新文档/默认目录 - >新文件 - >格式 - >视窗。 (这是版本5.8.6的路径)。