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

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

Заменить все заглавные буквы в предложении на 'АБ' [D7, 95/98, XP]


DroNIX ©   (2005-11-02 18:23:00) 

Я сделал так:

function ReplaceUpperChar(const S, NewPattern: string): string;
var
i: integer;
sTemp: string;
begin
sTemp:=S; Result:='';
for i:=1 to length(s) do
           //  A         ..        Я
if (ord(S[i])>=192) and (ord(S[i])<=223) then
 sTemp:=StringReplace(sTemp, S[i], NewPattern,[rfReplaceAll]);
{Функция StringReplace заменяет OldPattern на NewPattern;
флаг rfReplaceAll - заменять все совпадения OldPattern на NewPattern}
Result:=sTemp;
end;


Но из-за того что StringReplace заменяет все буквы результат получается не такой какойбы хотелось


DroNIX   (2005-11-02 19:27:00) [1]

Спасибо


MBo   (2005-11-02 18:48:00) [2]

function ReplaceUpperChar(const S, NewPattern: string): string;
var
 i:Integer;
begin
 Result:='';
 for i:=1 to Length(s) do
   if IsCharUpper(s[i]) then
     Result:=Result+NewPattern
   else
     Result:=Result+s[i];
end;

Если быстродействие волнует, то надо по-другому будет делать.


Ega23   (2005-11-02 18:36:00) [3]

if ANSIUpperCase(S[i])=S[i] then .....  ?


Наверх

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