Простенькая програмка по симбиан
От: JTOne  
Дата: 20.10.07 08:59
Оценка:
Подскажите как реализвать на первый взгляд очень примитивный пример, все что я хочу это просто прочитать из файл и вывисти сообщение

Вот так я читаю из файла, вроде все читаеться


HBufC8* ReadOpenFileL(const TDesC& aFile)
{        
RFs fs;
User::LeaveIfError(fs.Connect());
CleanupClosePushL(fs);

RFile file;
TInt iErr1=file.Open(fs,aFile,EFileRead);
if(iErr1==KErrNone)
{
    TInt iSize;
    file.Size(iSize);
    HBufC8* buffer = HBufC8::NewLC(iSize);
    TPtr8 ptr= buffer->Des();

    file.Read(ptr);
    file.Close();
    //CleanupStack::PopAndDestroy(buffer);
    return buffer;
}
fs.Close();
CleanupStack::PopAndDestroy(&fs); // destroy fs

}



потом я пытаюсь полученые данные вывисти в CAknInformationNote

CAknInformationNote* informationNote;
informationNote = new ( ELeave ) CAknInformationNote;

HBufC8* text= ReadOpenFileL(KMyFileName);



informationNote->ExecuteLD(*text); // но тут ошибка, типа не совпадение типов, оно хочет что бы я туда передал TDesC16, но я немогу понять как єто сделать.
Re: Простенькая програмка по симбиан
От: NewLC  
Дата: 20.10.07 13:18
Оценка:
Естественно не будет работать, потому что не совпадают базовые классы.

Location: UTF.H
Class CnvUtfConverter

Нужно сконвертировать в 16-битный дескриптор.
Re[2]: Простенькая програмка по симбиан
От: b_monkey Беларусь  
Дата: 22.10.07 16:52
Оценка:
Здравствуйте, NewLC, Вы писали:

NLC>Естественно не будет работать, потому что не совпадают базовые классы.


NLC>Location: UTF.H

NLC>Class CnvUtfConverter

NLC>Нужно сконвертировать в 16-битный дескриптор.

NLC>


или можешь сам написать

void DesConverter8to16(const TDesC8& from, TDes16& to )
{
    TInt i = 0;
    TInt j = 0;
    to.FillZ();
    while(j < from.Length() ){
        to[i++] |= from[j++] & 0xff;
    }
    to.SetLength( from.Length() );
}


а вообще используй RBuf вместо HBufC*
WBR,
vitaly voloshin
Re[3]: Простенькая програмка по симбиан
От: b_monkey Беларусь  
Дата: 22.10.07 17:00
Оценка:
а ещё проще ...
у дескрипторов есть вагон перегруженных фкнкций Copy — так что вообще можно ничего не конвертировать а просто подставить в Copy(TDesC8&) и всё
WBR,
vitaly voloshin
Re: Простенькая програмка по симбиан
От: Svat_  
Дата: 31.10.07 11:48
Оценка:
Вообще то тут все надо переделать.
Программа свалится после вызова функции.
1) зачем использовать HBuf буфер? Если нужно вывести в Info Note, значит размер данных маленький и
достаточно TBuf.
2) Return перенесите в конец функции. Вы не освобождаете cleanup stack.
Как минимум перед выходом за собой надо было оттуда убрать буфер и fs. Иначе программа закроется.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.