PDA

Просмотр полной версии : без учета регистра


supernewbie
23.08.2010, 05:30
как сделать так, чтобы текстовая проверка шла без учета регистра?
чтобы на проверку в строке слова 'сейчас' он находил
сеЙчас Сейчас и тд
вообщем вы меня поняли) срочно хелп)

Breadfan
23.08.2010, 05:35
UPPERCASE(s: string)\lowercase(s: string)

supernewbie
23.08.2010, 09:40
а именно?

Sherman
23.08.2010, 10:16
Pascal для чайников на Google.com

Fer123
23.08.2010, 13:03
а именно?

Lowercase(s:string); опускает все символы строки в нижний регистр.
str:=QwErty;
if Lowercase(str)='qwerty' then ... условие выполнится

alexteam
23.08.2010, 13:14
небольшая такая ложечка дегтя.
реализация уппер\ловеркейс выглядит как то так.
function UpperCase(const S: string): string;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
if (Ch >= 'a') and (Ch <= 'z') then Dec(Ch, 32); //ложка дегтя.
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;

supernewbie
23.08.2010, 15:05
черт) да они же в фастскрипт встроены)
fail

alexteam
23.08.2010, 16:31
я про то что он так в делфе реализован. (во всяком случае в той на которой билдилсо)
т.е. тупо для "a..z" нет никаких "а..я"

Breadfan
23.08.2010, 17:02
Ну хз, прогнал пару раз код
a:='......';
SendMsg(Uppercase(a));
SendMsg(Lowercase(a));с такими результатами:


23.08.2010 15:58:36 Script: !А@б&В*г(Д)е"Ё;ж/З.иКлМнОпРсТ(LaT)AbCdEzYw$%^&*()__+=-0532;
23.08.2010 15:58:36 Script: !А@Б&В*Г(Д)Е"Ё;Ж/З.ИКЛМНОПРСТ(LAT)ABCDEZYW$%^&*()__+=-0532;
23.08.2010 15:58:36 Script: !а@б&в*г(д)е"ё;ж/з.иклмнопрст(lat)abcdezyw$%^&*()__+=-0532;Не знаю как ошибку вызвать...если вручную добавлять значения спец.символов - они просто обрезаются....

alexteam
23.08.2010, 18:18
знач встроено в ФС что-то свое.
прост когда диалоги с неписями скриптами у себя в проекте обвязывал (кодиццо на Д7 СП2) столкнулся с проблемой непониямания sysutils.uppercase русских букоф.