Ruby-读写';EOF';性格
我遇到一个需要解析的文档,其中包含一个旧的MS-DOS EOF字符(请参阅)。问题是Ruby不能读取这个字符。但是,我需要做的是读取包含此字符的行,然后原封不动地写回。Ruby-读写';EOF';性格,ruby,io,eof,Ruby,Io,Eof,我遇到一个需要解析的文档,其中包含一个旧的MS-DOS EOF字符(请参阅)。问题是Ruby不能读取这个字符。但是,我需要做的是读取包含此字符的行,然后原封不动地写回。 我认为写这个字符应该不会太难,因为我知道ASCII码,主要问题是Ruby在遇到这个字符后会停止读取文件。 我使用类似于以下代码的代码: lineNumber = 0 File.foreach(sourcePath) do |li| lineNumber = lineNumber + 1 end puts lineNum
我认为写这个字符应该不会太难,因为我知道ASCII码,主要问题是Ruby在遇到这个字符后会停止读取文件。
我使用类似于以下代码的代码:
lineNumber = 0
File.foreach(sourcePath) do |li|
lineNumber = lineNumber + 1
end
puts lineNumber
你用什么来读取文件?我在Linux下读取该符号时没有遇到任何问题:
p File.read my_File.path#⇒“Content\u001A Content 2”
。顺便说一句,我甚至猜不出ruby为什么读不过去。@mudasobwa:添加了一段代码片段。使用windows作为编码环境。那么,读取整个文件、做任何你想做的事情并像我上面所说的那样将其写回有什么问题呢?foreach
的第二个参数是要使用的分隔符。我怀疑你是否想拆分字母r
上的文件。你的意思是“\r”,还是你想要:mode=>'r'
(或其他什么东西)?以二进制模式阅读有帮助吗(:mode=>'rb'
)?