Mam plik tekstowy - *.txt, jest to po prostu jakiś ebook w formacie *.txt -> duuużo znaków ;). Muszę teraz zrobić coś takiego : obliczyć rozmiar tego tekstu zakodowanego w ASCII oraz rozmiar tekstu zakodowanego w UTF8. Nie bardzo wiem, jak się za o zabrać ... myślałem o tym, aby czytać plik po znaku (char - to już mam), ale co z tym kodowaniem? Przykładowy pseudokod:
char c -> wczytany z pliku znak,
znakWASCII -> zakodowany w ASCII znak wczytany z pliku
znakWUTF8 -> zakodowany w UTF8 znak wczytany z pliku
rozmiarASCII += znakWASCII.rozmiar();
rozmiarUTF8 += znakWUTF8.rozmiar();
i powtarzać tak dla każdego znaku z pliku ... czy dobrze myślę? Używam Qt/C++, jak wyglądałoby to tam? Mógłby ktoś podać przykład (dla dowolnego znaku), zamiany jego na ASCII/UTF8 i pobranie rozmiaru? Z resztą sobie poradzę, tylko proszę o pomoc w starcie :)
Ok, wykombinowałem coś takiego (muszę czytać charami, nie mam niestety możliwości inaczej, jest to narzucone przez zadanie):
Kod:
ifstream plik("ebook.txt");
char c;
long rozmiar_w_ascii;
while(plik)
{
QString tmp = "";
tmp += c;
QByteArray tablicaBajtow = QString(c).toUtf8();
rozmiar_w_ascii += tablicaBajtow.size();
tmp = "";
}
I kompiluje się, fakt, tylko nie wiem, czy to jest poprawne i czy rzeczywiście osiągnę w ten sposób to, co chciałem (aaa, i ifstreamów/ofstreamów muszę używać ;/). Mógłby ktoś to zweryfikować?