Форум: "Начинающим";
Текущий архив: 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.012 c