
Untitled
By: a guest on
Apr 25th, 2012 | syntax:
C++ | size: 1.10 KB | hits: 13 | expires: Never
void dodaj(bufor& trgt,bufor& src)
{
char * pocz = trgt.poczatek, * kon = trgt.koniec;
char * nowy = new char[trgt.limit];
char * temp;
int i = 0;
while(pocz!=kon && i < trgt.rozmiar && i <= trgt.bajty)
{
int j = *pocz;
int k = 0;
while(k<=j)
{
#ifdef DEBUG
cout << "TARGET" << endl;
#endif
nowy[i] = *pocz;
i++;
pocz++;
k++;
}
if((*pocz == 0 && pocz > kon) || pocz >= trgt.bufortab + trgt.rozmiar ) pocz = trgt.bufortab;
}
pocz = src.poczatek;
kon = src.koniec;
int licz = 0;
while(pocz!=kon && licz < src.rozmiar && licz <= src.bajty)
{
int j = *pocz;
int k = 0;
while(k<=j)
{
#ifdef DEBUG
cout << "source" <<endl;
#endif
nowy[i] = *pocz;
i++;
licz++;
pocz++;
k++;
}
if((*pocz == 0 && pocz > kon) || pocz >= src.bufortab + src.rozmiar ) pocz = src.bufortab;
}
trgt.bajty = i;
trgt.rozmiar = trgt.limit;
trgt.poczatek = nowy;
trgt.koniec = &nowy[i];
temp = trgt.bufortab;
trgt.bufortab = nowy;
if(trgt.koniec > trgt.bufortab + trgt.limit - 1) trgt.koniec = trgt.bufortab;
delete []temp;
}