Hi all, I encountered some weird behaviour with readLines() recently, and I am wondering if this might be a bug, or, if it is not, how to resolve it. The issue is as follows:
If I have a text file where a line ends with just a carriage return (\r, CR) while the next line is empty and ends in a carriage return / linefeed (\r\n, CR LF), then the empty line is skipped when reading the file with readLines. The following code contains a test case: --- print(R.version) # platform x86_64-w64-mingw32 # arch x86_64 # os mingw32 # crt ucrt # system x86_64, mingw32 # status # major 4 # minor 4.0 # year 2024 # month 04 # day 24 # svn rev 86474 # language R # version.string R version 4.4.0 (2024-04-24 ucrt) # nickname Puppy Cup txt_original <- paste0("Line 1\r", "\r\n", "Line 3\r\n") # Write txt_original as binary to avoid unwanted conversion of end of line markers writeBin(charToRaw(txt_original), "test.txt") txt_actual <- readLines("test.txt") print(txt_actual) # [1] "Line 1" "Line 3" --- I included the output of this script on my machine in the comments. I would expect txt_actual to be equal to c("Line 1", "", "Line 3"), but the empty line is skipped. Is this a bug? And if not, how should I read test.txt in such a way that the empty 2nd line is left intact? Best regards, Guido van den Heuvel Statistics Netherlands ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.