Форум: "Основная";
Текущий архив: 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
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c