forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   ebook reader (http://forum.boolean.name/showthread.php?t=15106)

RegIon 12.07.2011 15:20

ebook reader
 
Хочу читалкку написать на консоль,правда вот хотелось бы чтоб была с авто определением кодировки,как??
мой вариант:читаем байтов 6-8 с файла,
если все читабельны
ASCII
если размер файла кратен 2
unicode
конец
нет
UNICODE
конец
Код:

int i;
bool res=1;
for(i=0;i<8;i++)
{
if(string[i]>31)
if(res!=0) res=1;
}else{
res=0;
}
//хз как узнать четность размера файла
}
if(res==0) unicode


impersonalis 12.07.2011 15:23

Ответ: ebook reader
 
Цитата:

если все читабельны
коды более 31?
текст логически связан?

поясни.

RegIon 12.07.2011 15:28

Ответ: ebook reader
 
Цитата:

коды более 31?
текст логически связан?

поясни.
да,да

(импер умеет читать коды<31:-D)

impersonalis 12.07.2011 16:15

Ответ: ebook reader
 
Цитата:

Сообщение от Костян (Сообщение 195181)
Хочу читалкку написать на консоль,правда вот хотелось бы чтоб была с авто определением кодировки,как??
мой вариант:читаем байтов 6-8 с файла,
если все читабельны
ASCII
если размер файла кратен 2
unicode
конец
нет
UNICODE
конец
Код:

int i;
bool res=1;
for(i=0;i<8;i++)
{
if(string[i]>31)
if(res!=0) res=1;
}else{
res=0;
}
//хз как узнать четность размера файла
}
if(res==0) unicode


Код:

res=ВСЁ_ПУТЁМ;
for(i=0;i<8;i++){
if(string[i]<32){
res=ОШИБКА;
break;}
}


RegIon 12.07.2011 16:26

Ответ: ebook reader
 
Цитата:

Сообщение от impersonalis (Сообщение 195189)
Код:

res=ВСЁ_ПУТЁМ;
for(i=0;i<8;i++){
if(string[i]<32){
res=ОШИБКА;
break;}
}


а если попадется юникодный текст где будет символ кода 035 064???тоже сработает

Igor 12.07.2011 16:46

Ответ: ebook reader
 
Можно выбирать вручную. Книгу читаешь несколько часов, а подобрать кодировку - минуту.
В русском тексте часто встречаются буквы а,о,е. Попробуй проверить их количество каждой кодировкой.

Randomize 12.07.2011 16:59

Ответ: ebook reader
 
http://en.wikipedia.org/wiki/Byte_order_mark

http://msdn.microsoft.com/en-us/libr...72(VS.85).aspx

http://msdn.microsoft.com/en-us/netf.../aa569610.aspx

http://utfcpp.sourceforge.net/

http://icu-project.org/apiref/icu4c/...c915214a8e94fd
??

RegIon 13.07.2011 13:28

Ответ: ebook reader
 
НУ блин,сам почти все такое читал...

Randomize 19.07.2011 01:23

Ответ: ebook reader
 
Цитата:

Сообщение от Костян (Сообщение 195311)
НУ блин,сам почти все такое читал...

Если не помогло, то ситуация безнадёжна. Не находишь?

NitE 19.07.2011 01:30

Ответ: ebook reader
 
Человек, который прочитал всю википедию, изучил весь мсдн и проанализировал все исходники на СФ - не может попаст в безнадёжную ситуацию.

Nex 19.07.2011 01:31

Ответ: ebook reader
 
Цитата:

Сообщение от NitE (Сообщение 196119)
Человек, который прочитал всю википедию, изучил весь мсдн и проанализировал все исходники на СФ - не может попаст в безнадёжную ситуацию.

Это даже Онатолэ не ослит. :)


Часовой пояс GMT +4, время: 19:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot