Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Вниз

ФУНКЦИЯ ПЕРЕВОДА БУКВ РУССКОГО АЛФАВИТА В ВЕРХНИЙ РЕГИСТР   Найти похожие ветки 

 
Gelios ©   (2006-05-04 18:40) [0]

Подскажите как перевести буквы русского алфавита в верхний регистр (т.е из прописных в строчные)!!!!!?????


 
Jeer ©   (2006-05-04 18:42) [1]

Справку не пробовал читать ?
Есть такой SysUtils и string handling routines.


 
Anatoly Podgoretsky ©   (2006-05-04 18:45) [2]

И не надо так кричать.


 
Desdechado ©   (2006-05-04 18:51) [3]

> в верхний регистр (т.е из прописных в строчные)
чего-то противоречие какое-то
строчные = маленькие, прописные = заглавные = в верхнем регистре


 
Boris Marchenko ©   (2006-05-04 18:54) [4]


> чего-то противоречие какое-то
> строчные = маленькие, прописные = заглавные = в верхнем
> регистре

Все, срочно выкидываем ошибку и виснем =))


 
Loginov Dmitry ©   (2006-05-04 19:14) [5]

Ладно, так и быть, помогу

function ToUpperCase(C: Char): Char;
begin
 if C = "a" then C := "A";
 if C = "b" then C := "B";
.......
 if C = "z" then C := "Z;

 Result := C;
end;


P.S. Труд сделал из ... человека =)


 
@BraIN ©   (2006-05-04 19:19) [6]

AnsiUpperCase


 
ЛшдлуттнСфе   (2006-05-04 19:39) [7]


> [5] Loginov Dmitry ©   (04.05.06 19:14)


оптимизированный:

function ToUpperCase(C: Char): Char;
begin
if C = "a" then Result := "A" else
if C = "b" then Result := "B" else
.......
if C = "z" then Result := "Z;
end;

логично оптимизированный:

function ToUpperCase(C: Char): Char;
begin
 Case C of
  "a" : Result := "A";
  "b" : Result := "B";
.......
  "z" : Result := "Z;
 end;
end;

оптимизированный по количеству текста

function ToUpperCase(C: Char): Char;
begin
if C in ["A".."Z", "a".."z"] then Result := chr(ord(C) + 32);
end;


 
KilkennyCat ©   (2006-05-04 19:40) [8]

function ToUpperCase(C: Char): Char;
begin
if C in ["a".."z"] then Result := chr(ord(C) + 32);
end;

ошибся..


 
begin...end ©   (2006-05-04 19:44) [9]

> Loginov Dmitry ©   (04.05.06 19:14) [5]

Я извиняюсь, но вопрос был про русские буковки...


 
KilkennyCat ©   (2006-05-04 19:50) [10]


>  [9] begin...end ©   (04.05.06 19:44)


Эх, тогда с Ё проблемы...

Новая версия, исправленная и дополненная и оформленная...

function ToUpperCase(C: Char): Char;
begin
if C in ["а".."я"] then Result := chr(ord(C) + 32) else if C = "ё" then Result:= "Ё" else Result := C;
end;


 
KEHT ©   (2006-05-07 03:23) [11]

Не понимаю, чем вам ответ @BraIN"a не понравился? Зачем велосипед изобретать?

Вот так решают проблему умные люди, писавшие SysUtls:

function AnsiUppCase(const S: string): string;
var
 Len: Integer;
begin
 Len := Length(S);
 SetString(Result, PChar(S), Len);
 if Len > 0 then CharUpperBuff(Pointer(Result), Len);
end;


 
Джо ©   (2006-05-07 03:40) [12]

> [11] KEHT ©   (07.05.06 03:23)
> Не понимаю, чем вам ответ @BraIN"a не понравился?

Да в общем, тем, что еще в [1] уже всё было сказано :)


 
Gydvin ©   (2006-05-07 15:04) [13]

ansiuppercase


 
antonn ©   (2006-05-07 17:50) [14]

и тут пришел несравненный antonn... :)

function UpperNafigRusskiyText(ch: Char): Char;
asm
@@Rus:
 CMP   AL,"я"
 JA    @@Exit
 CMP   AL,"а"
 JB    @@yo
 SUB   AL,"я" - "Я"
 RET
@@yo:
 CMP   AL,"ё"
 JNE   @@exit
 MOV   AL,"Ё"
@@exit:
end;


 
KEHT ©   (2006-05-08 02:00) [15]

М-да. Чем же вы люди обкурильсь так, что всё успокоиться не можете? Я тоже такого хочу!! :)


 
DevilDevil ©   (2006-05-08 02:41) [16]

 function UpperCase(const S : string) : string;
begin
 Result := string(CharUpper(pchar(S)));
end;

 function LowerCase(const S : string) : string;
begin
 Result := string(CharLower(pchar(S)));
end;

Великолепно работают как с русскими, так и с английскими


 
Джо ©   (2006-05-08 03:12) [17]

Никто не убедит меня, что старые добрые таблицы не есть самый лучший и быстрый вариант:

var
 ConversionTable: array [0..255] of Char;
 I: Integer;

function UpperChar (Ch: Char): Char;
asm
 mov al,[eax+ConversionTable]
end;

initialization
 // можем сразу и константой объявить, но не будем такими пуристами :)
 for I := Low(ConversionTable) to High(ConversionTable) do
   ConversionTable[I] := ANSIUpperCase(Chr(I))[1]
end.


:-)


 
Anatoly Podgoretsky ©   (2006-05-08 09:09) [18]

Джо ©   (08.05.06 03:12) [17]
Так и есть, только зачем же ассемблером по воробьям?


 
begin...end ©   (2006-05-08 09:22) [19]

К тому же, в [17] есть ошибка. Причём именно в ассемблерной строке.


 
Virgo_Style ©   (2006-05-08 09:51) [20]

Раз пошла такая пьянка, предлагаю таблицу хранить в БД :o)


 
Джо ©   (2006-05-08 13:30) [21]

> [19] begin...end ©   (08.05.06 09:22)
> К тому же, в [17] есть ошибка. Причём именно в ассемблерной
> строке.

Тогда мы масочку...
 and eax, $000000FF
 mov al,[eax+ConversionTable]

:)


 
KilkennyCat ©   (2006-05-08 13:32) [22]


> [20] Virgo_Style ©   (08.05.06 09:51)


В какой-нить дико старой БД :) Или в листах екселя...


 
Anatoly Podgoretsky ©   (2006-05-08 20:03) [23]

Virgo_Style ©   (08.05.06 09:51) [20]
Слабо, даешь трехзвенку



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

Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.015 c
15-1145595332
MBo
2006-04-21 08:55
2006.05.28
Пятничные задачки для программистов.


1-1145334556
Layner
2006-04-18 08:29
2006.05.28
TChart > Axis > Scales > Automatic, но как показать график чуть


2-1147152625
Неуч
2006-05-09 09:30
2006.05.28
ширина текстового поля в Tmemo


15-1146326262
Adil
2006-04-29 19:57
2006.05.28
Драйвера для ВебКвмеры


2-1147448103
kester
2006-05-12 19:35
2006.05.28
Двумерный массив в константе





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