Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];




Вниз

Изменение регистра символов 


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




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.023 c
3-32158           3asys                 2002-01-16 12:01  2002.02.11  
Key column information is insurficient or incorrect. Too many rows were affected by update


3-32133           Oleg Fomicheff        2002-01-14 20:59  2002.02.11  
Какая размерность у DBListBox?


4-32373           ikar                  2001-12-13 12:31  2002.02.11  
Необходимо скопировать текст выделенный в любом другом приложении.


3-32176           weak                  2002-01-16 17:04  2002.02.11  
QReport и StringGrid


1-32238           VovanV                2002-01-27 17:51  2002.02.11  
Ищу компонент типа TREE но, чтобы можно было свои иконки добавлять!