Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.11;
Скачать: CL | DM;

Вниз

Изменение регистра символов   Найти похожие ветки 

 
Do№   (2002-01-24 19:27) [0]

Подскажите плз как поменять регистр символов в символьной переменной :
ааааа надо заменить на ААА

делфи командой UpperCase почемуто конвертирует тока английские символы в строке


 
Tosov ©   (2002-01-24 19:30) [1]

Попробуй CharUpper


 
Chris ©   (2002-01-24 19:34) [2]

Я использую свою процедуру:

const
FUpChar:="ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
FDnChar:="abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя";

function DownCase(Str: string): string;
begin
Result:="";
While Str<>"" do
begin
if pos(copy(Str,1,1),FUpChar)>0 then
Result:=Result+copy(FDnChar,pos(copy(Str,1,1),FUpChar),1)
else
Result:=Result+copy(Str,1,1);
Delete(Str,1,1);
end;
end;

function UpCase(Str: string): string;
begin
Result:="";
While Str<>"" do
begin
if pos(copy(Str,1,1),FDnChar)>0 then
Result:=Result+copy(FUpChar,pos(copy(Str,1,1),FDnChar),1)
else
Result:=Result+copy(Str,1,1);
Delete(Str,1,1);
end;
end;


 
Tosov ©   (2002-01-24 19:43) [3]

Chris
А не проще ли было заменять символы строки str[num] - имхо Delete и Copy это по ресурсам накладнее по сравнению с этим.


 
Chris ©   (2002-01-24 19:50) [4]

Согласен.
Так выглядит короче:

function TUCStr.DownCase(Str: string): string;
var i: integer;
begin
Result:=Str;
for i:=1 to length(Str) do
if pos(Str[i],FUpChar)>0 then
Result[i]:=FDnChar[pos(Str[i],FUpChar)];
end;

function TUCStr.UpCase(Str: string): string;
var i: integer;
begin
Result:=Str;
for i:=1 to length(Str) do
if pos(Str[i],FDnChar)>0 then
Result[i]:=FUpChar[pos(Str[i],FDnChar)];
end;



 
Юрий Зотов ©   (2002-01-24 19:50) [5]

Все замечательно, но простой вызов AnsiUpperCase избавляет от необходимости изобретать велосипеды.

А чтение справки по UpperCase избавляет от необходимости задавать вопросы и дожидаться ответов с этими велосипедами.


 
Chris ©   (2002-01-25 08:27) [6]

Точно, а изучение английского языка избавляет нас от форумов и приковывает наше внимание к кнопке F1. ;-)


 
Anatoly Podgoretsky ©   (2002-01-26 21:50) [7]

Do№ (24.01.02 19:27)

Надеюсь вопрос то ты правильно задал? Тогда

for I := 1 to Length[S] do
if S[I] = "a" then S[I] := "A";

Ну а если универсально, то с помощью таблицы преобразований, для локализированных систем можно использовать AnsiUpperCase



Страницы: 1 вся ветка

Текущий архив: 2002.02.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
1-32182
BorisM
2002-01-23 07:24
2002.02.11
Прокрутка при DragDrop


1-32243
Хлор
2002-01-23 07:59
2002.02.11
Мастера помогите....


3-32128
Олег Лаукарт
2002-01-15 12:35
2002.02.11
Помогите с запросом


7-32362
miamy
2001-11-04 15:40
2002.02.11
DirectShow


1-32220
ev
2002-01-24 20:04
2002.02.11
Есть ли платформно-независимый Object Pascal?