Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal (Паскаль)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 195, средняя оценка - 4.96
Puporev
Модератор
52401 / 40248 / 13581
Регистрация: 18.05.2008
Сообщений: 93,046
#1

Конвертация строк - Pascal

01.03.2010, 07:10. Просмотров 25510. Ответов 0
Метки нет (Все метки)

Часто возникает необходимость преобразования текста, читаемого из файла в кодировке ANSI в кодировку ASCII, чтобы русский текст нормально отражался в программе, и наоборот, записать русский текст из программы в файл.
Кроме того бывает нужно перевести текст из одного регистра в другой. Из стандартных функций в Паскале есть только перевод в верхний регистр латинских букв, function UpCase(s);
Поэтому привожу пользовательские процедуры и функции для этих целей.
Pascal
1
2
3
4
5
6
7
8
9
10
procedure Convert(var s:string);
{ANSI -> ASCII}
var i:integer;
begin
for i:=1 to length(s) do
if ord(s[i]) in [192..239] then s[i]:=chr(ord(s[i])-64)
else if ord(s[i]) in [240..255] then s[i]:=chr(ord(s[i])-16)
else if ord(s[i])=168 then s[i]:=chr(ord(240))
else if ord(s[i])=184 then s[i]:=chr(ord(241));
end;
Pascal
1
2
3
4
5
6
7
8
9
procedure Convert1(var a:string);{ASCII->ANSI}
var i:integer;
begin
for i:=1 to length(a) do
if ord(a[i]) in [128..175] then a[i]:=chr(ord(a[i])+64)
else if ord(a[i]) in [224..239] then a[i]:=chr(ord(a[i])+16)
else if ord(a[i])=240 then a[i]:=chr(ord(168))
else if ord(a[i])=241 then a[i]:=chr(ord(184));
end;
Pascal
1
2
3
4
5
6
7
8
9
procedure UpCaseRus(var s:string);{приведение к верхнему регистру русских букв}
{русские в верхний регистр}
var i:integer;
begin
for i:=1 to length(s) do
if s[i] in ['а'..'п'] then s[i]:=chr(ord(s[i])-32)
else if s[i] in ['р'..'я'] then s[i]:=chr(ord(s[i])-80)
else if s[i]='ё' then s[i]:='Ё';
end;
Pascal
1
2
3
4
5
6
7
8
9
procedure MyUpCase(var s:string);{приведение к верхнему регистру всей строки}
var i:byte;
begin
for i:=1 to length(s) do
if s[i] in ['a'..'z'] then s[i]:=UpCase(s[i])
else if s[i] in ['а'..'п'] then s[i]:=chr(ord(s[i])-32)
else if s[i] in ['р'..'я'] then s[i]:=chr(ord(s[i])-80)
else if s[i]='ё' then s[i]:='Ё';
end;
Pascal
1
2
3
4
5
6
7
8
procedure LowCase(var s:string);{приведение к нижнему регистру}
var i:byte;
begin
for i:=1 to length(s) do
if s[i] in ['A'..'Z','А'..'П'] then s[i]:=chr(ord(s[i])+32)
else if s[i] in ['Р'..'Я'] then s[i]:=chr(ord(s[i])+80)
else if s[i]='Ё'then s[i]:='ё';
end;
57
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2010, 07:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конвертация строк (Pascal):

Конвертация кода на C++ в код на Pascal! - Pascal
#include <iostream> #include <cmath> #include <stdlib.h> using namespace std; int main() { const int n=10; int x; ...

Подсчитать количество строк, имеющих длину меньше средней длины всех строк - Pascal
6. Подсчитать количество строк, имеющих длину меньше средней длины всех строк. ПОМОГИТЕ ПОЖАЛУЙСТА!!

Дано число K (<10) и текстовый файл, содержащий более К строк. Удалите из файлу первые К строк - Pascal
Дано число K (&lt;10) и текстовый файл, содержащий более К строк. Удалите из файлу первые К строк.Люди помогите в долгу не останусь!

Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух - Pascal
Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строки, и...

Отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строки, и число таких строк - Pascal
Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строки, и...

Найти сумму элементов строк матрицы [A], размером NxM. Вывести на печать исходную матрицу и сумму строк. - Pascal
Найти сумму элементов строк матрицы , размером NxM. Вывести на печать исходную матрицу и сумму строк.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2010, 07:10
Привет! Вот еще темы с ответами:

Сформировать массив номеров строк, не имеющих нулевых элементов. Вычислить сумму элементов остальных строк - Pascal
Всем доброго времени суток. Помогите решить, кому не сложно. Так же, если можно блок схему составить. Заранее благодарен.

Создать матрицы А[n,m] и B[n,m]. Определить суммы строк каждой матрицы.Переставить строки по возрастанию сумм строк в каждой матрице. - Pascal
Создать матрицы А и B. Определить суммы строк каждой матрицы. Переставить строки по возрастанию сумм строк в каждой матрице. ...

Конвертация строк. - C++
Существует задача преобразования текста, читаемого из файла в кодировке ANSI в кодировку ASCII, чтобы русский текст нормально отражался в...

Конвертация строк - Программирование iOS
Коллеги, Никто не встречался с такой задачкой? Если строка в формате, который используется для пересылки параметров в GET-запросах:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru