Re[2]: Чтение и запись в файл
От: dina89  
Дата: 09.01.12 12:27
Оценка:
Здравствуйте, GrayWolf, Вы писали:

D>> ....

D>> len=GetFileSize(hf,NULL);
D>> bufr=(PCTSTR*)malloc(len+1); /* доп. байт под символ-терминатор (0) */

GW>Не нравится мне выделение памяти чем-то, хоть убейте. Вероятно тем, что выделяется память под набор строк, а не символов.


Мне этот момент тоже не нравится. Но не знаю как правильно сделать. Никак не могу одолеть WinAPI. Может надо буфер сделать символьным (CHAR) и bufr=(CHAR)malloc(len+1);
Только при создании символьного буфера надо указать заранее размер, который я не знаю, пока файл не открыт.


D>> WriteFile(hf,bufw,sizeof(bufw)+1,NULL,&olw);


GW>И вот тут расхождение: читаете вы unicode, а записываете в ansi. Для unicode-файлов требуется в начало записать два байта-сигнала: 0xFF и 0xFE.


Как это делается? так:

WriteFile(hf,'0xFF',1 ,NULL,&olw);
WriteFile(hf,'0xFE',1 ,NULL,&olw);
WriteFile(hf,bufw,sizeof(bufw)+1,NULL,&olw);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.