Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Вниз

кодировки((( koir-8 win   Найти похожие ветки 

 
xyz   (2002-07-05 16:54) [0]

Подскажите как перевести строку из вин в кои и обратно!
Буду очень благодарен


 
Anatoly Podgoretsky   (2002-07-05 17:03) [1]

Через таблицу перекодировка, функция koi := f(x), x = "win" код
разумеется, что "win" кодировка должна быть транспортабельной в лщи кодировку


 
yxz   (2002-07-07 00:10) [2]

Совершенно не понятно(((
Где эту таблицу взять?
Как это все устроено?


 
-=Sergeante=-   (2002-07-08 09:42) [3]


unit str_conv;

interface
uses
SysUtils;
const
cp1251:pChar =
#233#246#243#234#229#237#227#248#249#231#245#250#244#251#226
+#224#239#240#238#235#228#230#253#255#247#241#236#232#242#252
+#225#254#184#201#214#211#202#197#205#195#216#217#199#213#218
+#212#219#194#192#207#208#206#203#196#198#221#223#215#209#204
+#200#210#220#193#222#168#0;
koi8:pChar =
#202#195#213#203#197#206#199#219#221#218#200#223#198#217#215#193
+#208#210#207#204#196#214#220#209#222#211#205#201#212#216#194#192
+#163#234#227#245#235#229#238#231#251#253#250#232#255#230#249#247#225
+#240#242#239#236#228#246#252#241#254#243#237#233#244#248#226#224
+#179#0;

function koi82win(CString: PChar): PChar;
function win2koi8(CString: PChar): PChar;

implementation

function replace_it(CString: PChar;scr: PChar;dest: PChar):PChar;
var i,j:integer;
begin
i:=0;
while (i<length(CString)) do
begin
j:=0;
while (scr[j]<>#0) do
begin
if CString[i]=scr[j]
then
begin
CString[i]:=dest[j];
Break;
end;
inc(j);
end;
inc(i);
end;
result:=CString;
end;

function koi82win(CString: PChar): PChar;
begin
result:=replace_it(CString,koi8,cp1251);
end;

function win2koi8(CString: PChar): PChar;
begin
result:=replace_it(CString,cp1251,koi8);
end;

end.


 
Anatoly Podgoretsky   (2002-07-08 09:52) [4]

yxz (07.07.02 00:10)

Совершенно не понятно((( - это твоя проблема, надо было в школе учиться, мы можем расказать а уж понимать это только тебе подвластно.

Где эту таблицу взять? - самому создать, если лень то возьми готовую у других, только не вздумай брать -=Sergeante=- © (08.07.02 09:42), это же тихий ужас.

Как это все устроено? - простая замена по таблице, s[i] := Tbl[S[i]];
I - переменная цикла, S - строка, Tbl - таблица перекодировки.


 
-=Sergeante=-   (2002-07-08 11:15) [5]

Anatoly Podgoretsky © (08.07.02 09:52)

В чём, собственно, не устраивает? Таблица или реализация. Определение "тихий ужас" здесь, я думаю, неуместно.


 
Anatoly Podgoretsky   (2002-07-08 11:36) [6]

Хотя бы из декартова произведения, общая призводительность стремится к нулю, остальное можно не смотреть, такие вещи делаются через таблицу перекодировки в циеле


 
yxz   (2002-07-08 14:04) [7]

Anatoly Podgoretsky
Моя проблема в том, что меня в школе этому не учили. Приходится самому допирать. Но есть еще добрые люди которые мне помогают.)))
Подскажите тогда где взять эту таблицу? У кого?

Алгоритм хороший, а как String в PChar перевести?
strpos? но там тоже PChar...(((


 
xyz   (2002-07-09 12:29) [8]

Похоже я нашел решение!
Надо набрать клавиатуру в одной кодировке, посмотреть как глючно смотрится в другой и записать это все в две строковые константы. А потом поступающую строку сравнивать с глючной и переводить в нормальную кодировку.
Использовать вложенные цыклы.
function convert(str : string) : string;
const
koir8 = "одна кодировка";
win32 = "другая кодировка";
begin
for i := 1 to length(str) do
begin
for i2 := 1 to length(koir8) do
begin
if str[i] = koir8[i2] then
begin
result := result+win32[i2];
end;
end;
end;
end;


 
Anatoly Podgoretsky   (2002-07-09 12:40) [9]

yxz (08.07.02 14:04)
Таблицы и перекодировщик можешь взять у меня, а так их куча туева в Сети


 
Gandalf   (2002-07-09 12:43) [10]

"КОРОЛЕВСТВО ДЕЛЬФИ" - там ок 6 вариантов реализации сабжа, многие очень даже.


 
Anatoly Podgoretsky   (2002-07-09 12:51) [11]

Только не используй ни какие, кроме как через полнообъмную таблицу перекодировки, иначе большой тормоз и ограничения по возможностям



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
1-70756
Виталик
2002-07-09 17:41
2002.07.22
ToolBar.flat := true ?????


6-70841
mrcat
2002-05-13 13:11
2002.07.22
Сокетный клиент/сервер


3-70588
ANA
2002-06-27 11:36
2002.07.22
Поиск в форматированного текста


14-70863
Proton
2002-06-23 19:39
2002.07.22
контролы как в corel draw


1-70734
Петр Мельников
2002-07-10 23:32
2002.07.22
Как создать компонент, который бы имел все свойства Ttimer.....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский