![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заменить некоторые русские буквы на похожие из английского в текс
webSQLNeederr © (2008-04-24 15:18:00)Есть текст, необходимо заменить некоторые буквы, скажем "с", "к", "о", "р" на латинские. Подскажите как это сделать.
Первое что приходит на ум это AnsireplaceText(text,'o','o');
Но я подозреваю здесь нужно через их ASCII код менять ... Подскажите верный вариант ...
Sha (2008-04-29 13:45:00) [1]пишем антиантиплагиат? ))
han_malign (2008-04-24 17:13:00) [2]
> massiv [0..255] of char
- не вынесла душа поэта...
во - полная таблица simvolov в русской локали:
const
win1251: array[char] of Char =
^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_+
' !"#$%&''()*+,-./0123456789:;?'+
'@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'+
'`abcdefghijklmnopqrstuvwxyz{|}~'^?+
^А^Б^В^Г^Д^Е^Ж^З^И^Й^К^Л^М^Н^О^П^Р^С^Т^У^Ф^Х^Ц^Ч^Ш^Щ^Ъ^Ы^Ь^Э^Ю^Я+
^а^б^в^г^д^е^ж^з^и^й^к^л^м^н^о^п^р^с^т^у^ф^х^ц^ч^ш^щ^ъ^ы^ь^э^ю^я+
'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'+
'абвгдежзийклмнопрстуфхцчшщъыьэюя';
Игорь Шевченко (2008-04-24 16:44:00) [3]
> s[i] := tablica[ord(s[i])];
> где tablica представляет собой таблицу замен и имеет тип
> array [0..255] of char
нихрена. tablica представляет собой таблицу замен и имеет тип massiv [0..255] of char
han_malign (2008-04-24 15:54:00) [4]
const transcodWin1251ToLat: array[char] of char = (
#$00,#$01,#$02,#$03,#$04,#$05,#$06,#$07,#$08,#$09,#$0A,#$0B,#$0C,#$0D,#$0E,#$0F,
#$10,#$11,#$12,#$13,#$14,#$15,#$16,#$17,#$18,#$19,#$1A,#$1B,#$1C,#$1D,#$1E,#$1F,
#$20,#$21,#$22,#$23,#$24,#$25,#$26,#$27,#$28,#$29,#$2A,#$2B,#$2C,#$2D,#$2E,#$2F,
#$30,#$31,#$32,#$33,#$34,#$35,#$36,#$37,#$38,#$39,#$3A,#$3B,#$3C,#$3D,#$3E,#$3F,
#$40,#$41,#$42,#$43,#$44,#$45,#$46,#$47,#$48,#$49,#$4A,#$4B,#$4C,#$4D,#$4E,#$4F,
#$50,#$51,#$52,#$53,#$54,#$55,#$56,#$57,#$58,#$59,#$5A,#$5B,#$5C,#$5D,#$5E,#$5F,
#$60,#$61,#$62,#$63,#$64,#$65,#$66,#$67,#$68,#$69,#$6A,#$6B,#$6C,#$6D,#$6E,#$6F,
#$70,#$71,#$72,#$73,#$74,#$75,#$76,#$77,#$78,#$79,#$7A,#$7B,#$7C,#$7D,#$7E,#$7F,
#$80,#$81,#$82,#$83,#$84,#$85,#$86,#$87,#$88,#$89,#$8A,#$8B,#$8C,#$8D,#$8E,#$8F,
#$90,#$91,#$92,#$93,#$94,#$95,#$96,#$97,#$98,#$99,#$9A,#$9B,#$9C,#$9D,#$9E,#$9F,
#$A0,#$A1,#$A2,#$A3,#$A4,#$A5,#$A6,#$A7, 'Ё',#$A9,#$AA,#$AB,#$AC,#$AD,#$AE,#$AF,
#$B0,#$B1,#$B2,#$B3,#$B4,#$B5,#$B6,#$B7, 'ё',#$B9,#$BA,#$BB,#$BC,#$BD,#$BE,#$BF,
'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П',
'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я',
'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п',
'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю',#$FF
);
меняем буковки на нужные и:
for i:= 1 to length(text) do text[i]:= transcodWin1251ToLat[text[i]];
и хоть в транслитерацию, хоть в Koi-8r, et cetera, et cetera, et cetera...
Сергей М. (2008-04-24 15:50:00) [5]
> webSQLNeederr (24.04.08 15:48) [6]
Это точно же настолько, насколько точно утверждение:
2 *2 = 1 * 4
)
palva (2008-04-24 15:49:00) [6]Букв много, поэтому расточительно пользоваться функциями типа Replace. Для каждой буквы текст будет просматриваться снова и снова. Лучше просматривать строку один раз, а каждый символ заменять по правилу:
s[i] := tablica[ord(s[i])];
где tablica представляет собой таблицу замен и имеет типarray [0..255] of char
webSQLNeederr (2008-04-24 15:48:00) [7]Я повторяю вопрос - ЭТО ТОЧНО???
webSQLNeederr (2008-04-24 15:45:00) [8]
> А разница-то какая ? Оба правИльные.
Точно??
Palladin (2008-04-24 15:45:00) [9]:)) в орешник...
tesseract (2008-04-24 15:44:00) [10]
> Первое что приходит на ум это AnsireplaceText(text,'o','o');
> Но я подозреваю здесь нужно через их ASCII код менять ..
> . Подскажите верный вариант ...
А разница-то какая ? Оба правИльные.
webSQLNeederr (2008-04-24 15:31:00) [11]как угодно ... как правельно то !!?
Kolan (2008-04-24 15:26:00) [12]Да как угодно, работы на 5 минут