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

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

Impactor

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

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

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

Подскажите как выйти из ситуации. Если такой функции нет, то может кто то уже сталкивался с таким и есть готовая функция(процедура) такого преобразования?
 
09.11.2009
665
1
#2
Попробуй ето:
Код:
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;
Взято с http://delphid.dax.ru/www/exampl4.htm
 
09.11.2009
665
1
#4
если зайти на страницу с которой взята инфа то можно увидеть:
Код:
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

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

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

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

Impactor

Гость
#7
Единственное что наверное придется проверить это входит ли символ в множество 'A'..'Z' или 'А'..'Я'...