|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Порядковый номер буквы
Что-то меня глючит... Писал-писал прогу, и вдруг бац! И я понял, что не знаю как вычислить порядковый номер буквы в алфавите.
Например: а = 1; b = 2; c = 3... etc и русскими: а = 1; б = 2; в = 3 ... итд KaKa |
#2
|
||||
|
||||
Запиши алфавит в массив
a: array[1..33] of char; a[1] := 'а'; и т.д. и работай с этим массивом. |
#3
|
||||
|
||||
Этот вариант я знаю, но помоему это глупо. Мот кто даст более умный совет???
KaKa |
#4
|
||||
|
||||
Поэксперементируй с процедурой Ord.
|
#5
|
||||
|
||||
Я тоже канечно глупо придумал
но так можно... например: Код:
//для русского: edit1.Text:=inttostr(ord('а')-223); //и для английского: edit2.Text:=inttostr(ord('a')-96); |
#6
|
|||
|
|||
Для английского может быть и типа этого пойдет :
Код:
function GetOrderChar(Ch : char) : byte; Var S : string; begin S:=Ch; S:=AnsiUpperCase(S); Ch:=S[1]; Result:=ORD(Ch)-ORD('A')+1; end; |
#7
|
|||
|
|||
Т.к. мы работаем обычно с 2мя алфавитами, а именно англ. и русским, то можно так:
Код:
function LetterNumber(Ch : Char) : Integer; function GetLN(C, F : Char) : Integer; begin Result := Ord(C) - Orc(F) + 1; end; begin Case Ch Of 'A'..'Z' : Result := getLn(Ch,'A'); 'a'..'z' : Result := getLn(Ch,'a'); 'А'..'Я' : Result :=getLn(Ch,'А'); 'а'..'я' : Result := getLn(Ch,'а'); Else Result := 0; // Ошибка, не буква end; end; |
#8
|
|||
|
|||
Нормально вы так тему "реинкарнировали" столько лет спустя)
|
#9
|
||||
|
||||
А что нормально всего 4 года прошло
Я заметил после того, как ответил |
#10
|
|||
|
|||
Нда. "Лопухнулись". :-)
|
#11
|
||||
|
||||
Сначала некропост, потом оффтоп... И *фанфары* среди этого всего модератор Imikle! O_o Как?!
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |