From: Paul L. <sa2...@cy...> - 2011-03-20 17:03:03
|
I'd like to handle Unix-style as well as DOS-style line endings on the MinGW version of my code. Does anyone have any thoughts on this? The problem is that I'd prefer to open input files in text mode. When your open a NL-only file in text mode, however, fpos/fseek don't work on the file. If you get a file position, and then seek to it, you end up somewhere else in the file. This works for CR/NL files, of course, but not NL-only files. I've also tried fgetpos/fsetpos, but they have exactly the same problem. I've also tried _setmode, to set the file mode to binary before the fpos and back to text after the fseek. This works for NL-only files, but fails for CR/NL files. MSDN also says that you should call _setmode before doing any file I/O, so I wouldn't want to do this anyway. AFAICT, if I want to deal with "text" files that are NL-only, and I want to fpos/fseek on those files, then I must open them in binary mode. Unfortunately, when I do this, I get other errors in my code, which I haven't looked at yet. I guess I may just have to fix these instead. I suppose one point of view is that you shouldn't open NL-only files in "text" mode on Windows, because they're not what Windows considers to be "text". Now that I've written it down, I suppose that's the only logical answer. Thoughts? Thanks - Paul |