Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть задача из ул.ленина сделать ул.Ленина, я использую [D5, D6, Win95/98]


dimanew ©   (2002-08-15 05:52:00) 

процедуры Copy,Delete, Insert
как сделать тоже, но через указатели?


Alx2   (2002-08-15 08:40:00) [1]

>dimanew (15.08.02 05:52)
S - строка. S[k] - k-я буква в строке.
S[k] := UpCase(S[k]) - перевести S[k] в верхний регистр (для лат. варианта).
для русского надо переписать UpCase или использовать AnsiUpperCase, но это внесколько раз медленее.
S[k] := AnsiUpperCase(S[k])[1];

PS.
Написал, как сам интерпретировал вопрос. Но вообще-то он расплывчато сформулирован.


Skfi   (2002-08-15 07:16:00) [2]

Напиши по подробнее, что тебе требуется.


Leran2002   (2002-08-15 07:15:00) [3]

Вот когдато нашел в ФАКАХ такую функцию мож тебе и подойдет:

function UpCaseRus( ch : Char ) : Char;
asm
CMP AL,"a"
JB @@exit
CMP AL,"z"
JA @@Rus
SUB AL,"a" - "A"
RET
@@Rus:
CMP AL,"я"
JA @@Exit
CMP AL,"а"
JB @@yo
SUB AL,"я" - "Я"
RET
@@yo:
CMP AL,"ё"
JNE @@exit
MOV AL,"Ё"
@@exit:
end;


...
for i:=1 to Length(S)-1 do
if S[i]="." then S[i+1]:=UpCaseRus(S[i+1]);
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо