Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/172: Рейтинг темы: голосов - 172, средняя оценка - 4.95
Модератор
61725 / 46203 / 31874
Регистрация: 18.05.2008
Сообщений: 111,473
1

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

01.03.2010, 07:10. Просмотров 31257. Ответов 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;
60
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2010, 07:10
Ответы с готовыми решениями:

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

Конвертация строк (приведение русских и английских букв к верхнему регистру)
Здравствуйте. Данная тема уже обсуждалась на форуме, однако и после её прочтения, у меня не...

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

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2010, 07:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Конвертация строк в числа
#include "stdafx.h" #include <iostream> #include <string> int i ; string s; using...

Объединение строк, конвертация данных
Собственно пара глупых вопросов :-) Сам я в основном пишу на Perl. Тут понадобилось писать на...

Конвертация массива строк в int[]
как всегда всем здравствуйте. в следующем коде необходимо из массива типа стринг считать всё в...

Конвертация строк wstring -> LPTSTR
C++, VS2015, win32, unicode Имеется ветор строк: std::vector<std::wstring> v; При данной...


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

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

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