converting TBuf16 to TBuf8

Login to reply to this topic.
Wed, 2005-08-24 23:47
Joined: 2005-08-04
Forum posts: 32

How to convert string between TBuf16 to TBuf8.
Becauase i want to read/write the 2 parameters :
TBuf<128> iMailboxName;
TBuf<128> iMailAddress ;

void TUEmailSettings::ExternalizeL(RWriteStream& aStream) const
{
   aStream.WriteL( Convert16To8BitLC(iMailboxName) );
   aStream.WriteL( Convert16To8BitLC( iMailAddress ) );
   aStream.WriteInt8L( iMailboxType );
   aStream.WriteInt8L( iSecurity );
}

void TUEmailSettings::InternalizeL(RReadStream& aStream)
{

   //aStream.ReadL( Convert8To16BitLC( iMailboxName) );
   //aStream.ReadL( Convert8To16BitLC( iMailAddress) );

                 TBuf8 buf8;
                 aStream.ReadL( buf8);
                iMailboxName.Copy(buf8);
                 
                buf8 =NULL;
                aStream.ReadL( buf8);
                iMailAddress.Copy(buf8);

   iMailboxType = aStream.ReadInt8L();
   iSecurity = aStream.ReadInt8L();

}



My convert code:

TBuf TUEmailSettings::Convert8To16BitLC(const TDesC8& aDes8)
{
   //HBufC* myBuf = HBufC::NewLC(aDes8.Length());
    //TPtr ptr = myBuf->Des();
   //ptr.Copy(aDes8);
    //return ptr;

         TBuf8<128> buf8( aDes8 );
         TBuf<128> buf16;
         buf16.Copy( buf8 );
         return buf16;

   //HBufC16* myBuf16 = HBufC16::NewLC(aDes8.Length());
   //TPtrC16 ptr16(reinterpret_cast<const TUint16*>(aDes8.Ptr()),(aDes8.Size()/2));
    //myBuf16=ptr16;
   //return myBuf16;


// Get a iBuf16 from a iBuf8 (data are not modified)
//TPtrC16 ptr16(reinterpret_cast<const TUint16*>(iBuf8.Ptr()),(iBuf8.Size()/2));
//iBuf16=ptr16;

}

TBuf8 TUEmailSettings::Convert16To8BitLC(const TDesC& aDes)
{
   //HBufC8* myBuf8 = HBufC8::NewLC(aDes.Length());
   //TPtr8 ptr8 = myBuf8->Des();
   //ptr8.Copy( aDes );
   //return ptr8;
   TBuf<128> buf16( aDes );
   TBuf8<128> buf8;
   buf8.Copy( buf16 );

   return buf8;

   //HBufC8* myBuf8 = HBufC8::NewLC(aDes.Length());
  // TPtrC8 ptrC8(reinterpret_cast<const TUint8*>(aDes.Ptr()),(aDes.Size() ));
   //myBuf8=ptr8;
   //return myBuf8;
   //TPtrC8 ptr8(reinterpret_cast<const TUint8*>(iBuf16.Ptr()),(iBuf16.Size()*2));
   //iBuf8=ptr8;
}

but  it seems  all are not perfect!   Could any body give me good advice for the TBuf converting for FileStream?

Thank you!

Thu, 2005-08-25 00:55
Joined: 2005-06-13
Forum posts: 68
Re: converting TBuf16 to TBuf8
You may want to have a look at my reply to your other post Wink.

Cheers,

Nikolas.

If we fall down it's so we can learn to pick ourselves up.

Thu, 2005-08-25 03:11
Joined: 2005-08-04
Forum posts: 32
Re: converting TBuf16 to TBuf8
Nikolas,

Thank you for replying!
  • Login to reply to this topic.