Decript Code Page
1 отговора
59 прегледа
Decript Code Page
Zdraweyte na wsichki ! Puwro iskam da se izwinq za towa che ne pisha na Cirilica no na towa PC nqma instalirana Cirilica !!
Iskam da zadam sledniqt wypros :
Imam *.TXT file koito e pisan na DOS(znam che weche w mnogo mesta ne se izpolzwa no :( ... ) pisan na Code Page ( CP 866 = Rusian 2 ). I trqbwa da go obrabotq s Delphi i da Exportna dannite .... .Opitah da convertna dannite s ACCESS i stana no nqmam i idea kak shte stane na Delphi???
Ima li nqkoi pone nqkakwa nasochwashta ideq!???
Blagodarq predwaritelno !!!!
Iskam da zadam sledniqt wypros :
Imam *.TXT file koito e pisan na DOS(znam che weche w mnogo mesta ne se izpolzwa no :( ... ) pisan na Code Page ( CP 866 = Rusian 2 ). I trqbwa da go obrabotq s Delphi i da Exportna dannite .... .Opitah da convertna dannite s ACCESS i stana no nqmam i idea kak shte stane na Delphi???
Ima li nqkoi pone nqkakwa nasochwashta ideq!???
Blagodarq predwaritelno !!!!
CP866 -> CP1251
Първо да вметна, че дори и да нямаш инсталирана кирилица пак можеш да пишеш в постингите. Обърни внимание на KREDOR-а над полето за текста на мнението ти.
А сега за твоя проблем:
Прочиташ си по някакъв начин текстовия ти файл (например в TStringList или побайтово). За да се чете кирилицата ти под Windows трябва да прекодираш символите. Обходи ги един по един и за всеки символ в интервала 128..175 прибави към кода му 64, а за тези в интервала 224..239 - прибави 16.
Ще ти дам прост пример с прекодиране на стринг, а ти ще си го адаптираш за своите нужди:
Успех!
А сега за твоя проблем:
Прочиташ си по някакъв начин текстовия ти файл (например в TStringList или побайтово). За да се чете кирилицата ти под Windows трябва да прекодираш символите. Обходи ги един по един и за всеки символ в интервала 128..175 прибави към кода му 64, а за тези в интервала 224..239 - прибави 16.
Ще ти дам прост пример с прекодиране на стринг, а ти ще си го адаптираш за своите нужди:
for i := 1 to Length(s) do
case Ord(s[ i ]) do
128..175: s[ i ] := Chr(Ord(s[ i ]) + 64);
224..239: s[ i ] := Chr(Ord(s[ i ]) + 16);
end;
Успех!
Редактирано от andrew_nikoloff на