подскажите пожалуйста winapi функцию конфертируюшую отвофрматированный под mac\linux текстовый файл (с концами строк \r либо \n) в стнадртное для win представление — \r\n. спасибо
Здравствуйте, fkRTTI, Вы писали:
RTT>подскажите пожалуйста winapi функцию конфертируюшую отвофрматированный под mac\linux текстовый файл (с концами строк \r либо \n) в стнадртное для win представление — \r\n. спасибо
Самый тупой способ — открыть файл на чтение как бинарный и записать как текстовый. Все \n заменятся на \r\n
FILE* in = fopen("src.txt", "rb");
FILE* out = fopen("dst.txt", "wt");
while(!feof(in)) fputc(fgetc(in), out); // unix -> родное для данной платформы
Продвинутый способ — открыть как бинарный, читать, находить \n, \r, \r\n и превращать в то, что требуется
FILE* in = fopen("src.txt", "rb");
FILE* out = fopen("dst.txt", "wb");
char c;
while(!feof(in))
{
c = fgetc(in);
if(c == '\r') fputs("\r\n", out); // mac -> dos
}
А ещё можно припахать шелл или перл
http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/
Здравствуйте, Кодт, Вы писали:
К>Самый тупой способ — открыть файл на чтение как бинарный и записать как текстовый. Все \n заменятся на \r\n
К>К>FILE* in = fopen("src.txt", "rb");
К>FILE* out = fopen("dst.txt", "wt");
К>while(!feof(in)) fputc(fgetc(in), out); // unix -> родное для данной платформы
К>
Более того, если вы всегда будете открывать файл как текстовый, и на чтение, и на запись, то вы будете совершенно спокойно читать и юниксовские и досовские текстовые файлы, а записывать всегда в досовском формате.
Однако сейчас это не круто. Круто — это записывать измененный файл в том же формате, в каком был оригинал. Все более-менее приличные редакторы текста так и делают.