Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 195, средняя оценка - 4.96
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
#1

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

01.03.2010, 07:10. Просмотров 26406. Ответов 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!
#include <iostream> #include <cmath> #include <stdlib.h> using namespace...

Конвертация кода программы с C++ на Паскаль
осуществить конвертацию текста программы с одного языка программирования в...

Подсчитать количество строк, имеющих длину меньше средней длины всех строк
6. Подсчитать количество строк, имеющих длину меньше средней длины всех строк....

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

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

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

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

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

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

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

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


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

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

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