Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.004 c
1-32186
AlexanderV
2002-01-29 10:45
2002.02.11
Регистрация пользовательского шрифта на время выполнения программы


1-32257
ТеньЛуны
2002-01-28 13:00
2002.02.11
Разнца между датами


3-32144
Doctor Vrach
2002-01-15 20:09
2002.02.11
Помогите плиз - надо чтобы во время сложного запроса основное окно программы реагировало


14-32337
vajo
2001-12-21 09:09
2002.02.11
Тестирование компьютера.


3-32174
ZeroA
2002-01-16 09:31
2002.02.11
Индексы для БД FoxPro





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский