![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заменить все заглавные буквы в предложении на 'АБ' [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 ..... ?