// Definiujemy litera...
_LIT( KTekst1, "Tekst1" );
// i zapisujemy jego dugo.
TInt dlugosc = KTekst1().Length();    
// dlugosc = 6

// Tworzymy deskryptor.
HBufC* hbufc = HBufC::NewLC( dlugosc );
// Pobieramy skojarzony deskryptor wskanikowy.
TPtr ptr = hbufc->Des();
// Kopiujemy dane z literau.
ptr.Copy( KTekst1 );
// ptr = hbifc = "Tekst1"

// Definiujemy dwa kolejne literay.
_LIT( KSeparator, " " );
_LIT( KTekst2, "Tekst2" );
// Obliczamy dugo tekstu "Tekst1 Tekst2".
dlugosc += KSeparator().Length() + KTekst2().Length();
// dlugosc = 13

// Zmieniamy dugo deskryptora (ponownie
// uywamy wskanika hbufc).
hbufc = hbufc->ReAllocL( dlugosc );
// Poprzednia warto wskanika hbufc ley na
// stosie CleanupStack. Metoda ReAllocL() nie
// gwarantuje, e nowy deskryptor zostanie
// umieszczony w tym samym miejscu w pamici
// co deskryptor oryginalny. Bezpieczniej jest
// zaoy, e nowa lokalizacja rni si od
// pierwotnej.
CleanupStack::Pop();

// "Odwieamy" deskryptor wskanikowy. Aby wskaza
// nowe miejsce w pamici, uywamy metody Set(). Uycie
// operatora przypisania spowoduje prb skopiowania
// danych.
ptr.Set( hbufc->Des() );
// Dodajemy dane do powikszonego deskryptora.
ptr.Append( KSeparator );
ptr.Append( KTekst2 );
// ptr = hbufc = "Tekst1 Tekst2"

delete hbufc;
