|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Транслитерация имен файлов
Привет, люди помогите поправить функцию, не предлагайте другую, мне именно надо исправить эту, ошибка ламерская, чет я тут намудрил, но выцепить ошибочку не могу
Код:
const CYRILLIC_SYMBOLS: array[1..66] of String = ('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я', 'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'); LATIN_SYMBOLS: array[1..66] of String = ('A', 'B', 'V', 'G', 'D', 'E', 'Yo', 'Zh', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'Ts', 'Ch', 'Sh', 'Chsh', '''''', 'Y', '''', 'E', 'Yu', 'Ya', 'a', 'b', 'v', 'g', 'd', 'e', 'yo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'chsh', '''''', 'y', '''', 'e', 'yu', 'ya'); function Transliterate(const Source: String): String; var I, M, Index: Integer; begin Result := ''; for I := 1 to Length(Source) do begin for M := 1 to 66 do begin Index := Pos(Source[i], CYRILLIC_SYMBOLS[M]); if Index > 0 then Result := Result + LATIN_SYMBOLS[Index] else Result := Result + Source[i]; end; end; end; |
#2
|
|||
|
|||
Код:
function Transliterate(const Source: String): String; var I, M, Index: Integer; begin Result := ''; for I := 1 to Length(Source) do begin M := 1; while M <= 66 do begin if Source[i] = CYRILLIC_SYMBOLS[M] then begin Result := Result + LATIN_SYMBOLS[M]; break; end; Inc(M); end; if M >= 66 then Result := Result + Source[i]; end; end; Не забывайте делать резервные копии |
#3
|
||||
|
||||
Спасибо, выручил
|
#4
|
|||
|
|||
Не за что. Только опечатку мою поправь:
вместо if M >= 66 then надо if M > 66 then Не забывайте делать резервные копии |