Witam, mam taki kod
//formatowanie bufora
void funkc::format(char *b)
{
temp2=new char[3*rozmiarpliku];
int x=0,p=0;
for (int i=0;i<rozmiarpliku;i++)
{
if((buf[0]>='a')&&(buf[0]<='z'))
{
buf[0]=buf[0]-32;
}
temp2[x]=buf[i];
if(buf[i]=='.')
{
temp2[x]=buf[i];
temp2[x+1]='\n';
x++;
while(buf[i+1]==' ')
{
i++;
}
if((buf[i+1]>='a')&&(buf[i+1]<='z'))
{
buf[i+1]=buf[i+1]-32;
}
}
if(buf[i]==',')
{
temp2[x]=buf[i];
temp2[x+1]=' ';
x++;
while(buf[i+1]==' ')
{
i++;
}
}
if(buf[i]=='\n')
temp2[x]=buf[i];
x++;
while(buf[i+1]=='\n')
{
i++;
}
}
x++;
}
}
Metoda wykonuje operacje na pliku tekstowym ( wczytanym do bufora -> buf znak po znaku),
i zapisuje znak po znaku do temp1, którego to zawartość jest zapisywana do pliku wynikowego.
Metoda ma na zadanie:
-
lzamienić małę litery tam gdzie język polski tego wymaga( na początku pliku tekstowego, chyba ze to znak to go kasuejemy).
-
Po znaku kropki przechodzić do następnej linii oraz jeżeli zajdzie taka potrzeba zamieni następną literę na dużą ( chyba że następnym znakiem jest nie litera i cyfra to usuwa). Jeżeli jest więcej znaków nowej linii to zostawia tylko 1 ( nie może być odstępu miedzy wierszami) oraz jeżeli zajdzie taka potrzeba zamieni następną literę na dużą ( chyba że następnym znakiem jest nie litera i cyfra to usuwa).
-
Po znaku przecinku wstawia spacje, jeżeli jest to zostawia, a jeżeli jest więcej niż jedna spacja to zostawia jedną, oraz jeżeli zajdzie taka potrzeba to usuwa inne znaki dopóki nie spotka cyfry lub litery.
4* Najbardziej mi zależy na usuwaniu odstępów miedzy wierszami. Nie więcej niż jeden znak nowej linii między wierszami.
Część jest zrobiona.
Zapraszam do wspólnej dyskusji na temat tego problemu :)