Главная страница
    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
6-32302
Мирон
2001-11-20 19:03
2002.02.11
Удаленный контроль за пользователем


14-32330
chajnyk
2001-12-21 09:13
2002.02.11
Запуск програм


3-32151
ТеньЛуны
2002-01-16 13:14
2002.02.11
CORBA


7-32351
Иван Шихалев
2001-11-02 20:57
2002.02.11
Перезагрузка из DOS


1-32265
Zuvom
2002-01-25 13:34
2002.02.11
Копирование из файла в файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский