• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Pascal Верхний и нижний регистры символов

  • Автор темы Impactor
  • Дата начала
I

Impactor

Доброго времени суток уважаемые.

Столкнулся с такой проблемой:

чтобы привести символ к верхнему регистру у TP7 есть функция UpCase, а вот к нижнему регистру что бы привести я не нашёл функции.
В PascalABC такова имеется LowCase. Но мне нужно именно для TP7.

Подскажите как выйти из ситуации. Если такой функции нет, то может кто то уже сталкивался с таким и есть готовая функция(процедура) такого преобразования?
 
D

Dock1100

Попробуй ето:
Код:
function MyLowCase(ch:char):char;
{ Переводит СИМВОЛ из верхнего регистра в нижний. }
var k:byte;
begin
k:=Pos(ch,s_u);
if (k>0) then MyLowCase:=s_l[k]
else MyLowCase:=ch;
end;

function StLowCase(st:string):string;
{ Переводит СТРОКУ из верхнего регистра в нижний. }
var L:byte absolute st;
i:byte;
begin
for i:=2 to L do
st[i]:=MyLowCase(st[i]);
StLowCase:=st;
end;

Взято с
 
I

Impactor

А что за s_l??
Код:
if (k>0) then MyLowCase:=s_l[k]
 
D

Dock1100

если зайти на страницу с которой взята инфа то можно увидеть:
Код:
uses Dos;
const MaxSN=220;
var f,event:text; { Входной и выходной файлы }
s1,s_win,s_dos:string; { s_win,s_dos строки для перекодировки WIN<=>DOS }
s2:array[1..MaxSN] of string; { Массив, в котором хранится блок текста (несколько строк) }
{ Правильнее было бы конечно организовать связанный список, но для упрощения используется массив }
i,k2:byte;
q:boolean;
search_st,st:string;
date,delim:string[20]; { delim содержит список разделителей слов } 
d,er_code:integer;
s_u,s_l:string; { строки для перевода в верхний/нижний регистры }
 
I

Impactor

У меня тут мысль возникла... А если просто сдвигать(увеличить) код символа на 32 относительно кодовой таблицы ASCII?

<!--shcode--><pre><code class='Pascal'>sim:=ord(sim)+32;[/CODE]

Как то так....
Как раз вроде и получается большая буква меняется на маленькую? Или это будет не этично и некрасиво(неправильно, некорректно)?
 
I

Impactor

Единственное что наверное придется проверить это входит ли символ в множество 'A'..'Z' или 'А'..'Я'...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!