Re[2]: fwrite BSTR
От: evjiii  
Дата: 27.01.10 23:35
Оценка: 3 (1)
может так?
    fprintf(stm, "%S", l);
ну и локаль там кошерную выставить перед этим.
fwrite BSTR
От: Xkirill Украина  
Дата: 27.01.10 22:10
Оценка:
Доброго времени суток.
Подскажите пожалуйста, как можно исправить такое.
получаем BSTR
пишем его в файл
хекс дамп:
59 00 71 00 61 00 70
......
...


MSHTML::IHTMLDocument2Ptr pDoc(GetHtmlDocument());
MSHTML::IHTMLElementPtr e(pDoc->Getall()->item
                         (_T("")));
BSTR p;
e = pDoc->Getbody();
e->get_tagName(&p);

FILE *stm;
if( !(stm = fopen( "c:\\ann.xml", "w+" )) == NULL ) 
{
    fwrite(l,sizeof(BSTR),SysStringLen(l),stm);
    fclose(stm);
}


Подскажите пожалуйста как можно сделать чтобы писалось в файл обычным char при этом приведя в нормальный вид строку, без 00 и без слияний строк
(исходный код может быть много строчным разделённым \r\n, а сейчас пишет всё в одну строчку)
причем идёт еще какое-то дописывание лишнего кода, примерно в два раза больше нормы, видимо где-то я замудрил
Re: fwrite BSTR
От: Xkirill Украина  
Дата: 27.01.10 22:21
Оценка:
Поправочка:

MSHTML::IHTMLDocument2Ptr pDoc(GetHtmlDocument());
MSHTML::IHTMLElementPtr e(pDoc->Getall()->item
                         (_T("")));
BSTR l;
e = pDoc->Getbody();
e->get_innerHTML(&l);

FILE *stm;
if( !(stm = fopen( "c:\\ann.xml", "w+" )) == NULL ) 
{
    fwrite(l,sizeof(BSTR),SysStringLen(l),stm);
    fclose(stm);
}
Re[3]: fwrite BSTR
От: Xkirill Украина  
Дата: 28.01.10 06:16
Оценка:
Здравствуйте, evjiii, Вы писали:

E>может так?

E>
E>    fprintf(stm, "%S", l);
E>
ну и локаль там кошерную выставить перед этим.

деёствительно .. отработало
только вот осталось один момент исправить.
это много тсрчоие сейчас всё отлично, и без лишних переменных,
но в одну строчку.
и я смотрю там пробелы вместо \r\n
как то это можно исправить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.