Программирование алгоритмов обработки символьных и строковых данных

Объявление и обработка символов

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

Известно, что наряду с числовыми данными компьютер может хранить и обрабатывать текстовую информацию. Это, например, тексты документов MS Word, текстовые поля форм VS, текстовые поля баз данных и др.

Наиболее часто используемой операцией, которая применяется, например, при упорядочивании данных, является сортировка, т. е. символьные данные сравниваются между собой. В программировании, прежде чем сравнить один символ с другим, он должен быть преобразован в число с помощью таблицы ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией). Поддерживает кодирование 128 буквенно-цифровых символов.

Первые 32 кода базовой таблицы, начиная с нулевого, отданы разработчикам аппаратных средств (в первую очередь производителям компьютеров и печатающих устройств). В этой области размещаются так называемые управляющие коды, которым не соответствуют никакие символы языков, и, соответственно, эти коды не выводятся ни на экран, ни на устройства печати, но используются для функций управления (например, возврата каретки или возврата на один символ).

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

Начиная с кода 32 по код 127 размещены коды символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов. Базовая таблица кодировки ASCII показана в табл. 9.1-1.

Базовая таблица кодировки ASCII

Таблица 9.1-1

ip

1

ft

S

%

A

'

(

)

*

4

>

-

.

/

3?

S3

34

95

36

3T

33

39

40

41

42

43

44

45

46

4T

0

1

2

3

4

5

6

7

8

9

:

I

<

=

>

*>

4i

49

50

51 !

52

54

55

56

ST

59

»

SO

61

62

69

@

A

В

C

D

E

F

G

H

1

J

К

L

M

N

0

«4

M

66

6T

«

69

TO

n

12

ТЗ

T4-

TS

T4

ГТ

ТЗ

ТЗ

P

Q

R

S

T

U

V

W

X

Y

z

t

i

/4

90

91

w

«

95

96

9T

99

99

90

91

92

99

94

95

%

a

b

c

d

e

f

g

h

i

i

k

1

m

n

0

Ж

9T

46

>5

100

101

802

I00

104

10S

106

101

100

103

110

111

P

q

Г

s

t

u

V

w

X

Y

z

(

1

»

iV

ГС

Its

m

1C

I*

ItT

119

120

121

122

123

124

125

126

Наиболее распространенной в настоящее время является кодировка Windows 1251 (табл. 9.1-2) с учетом широкого использования операционных систем и других продуктов этой компании в России.

Таблица кодировки Windows 1251

Таблица 9.1-2

ж

A

Ж

a

G9

  • (
  • 130

ё

ТЛ

н

132

133

Г

13*

i

os

136

%*

ЙТ

Ж

Е

ts®

<

tss

Ж

И

140

й

141

Ж

О

142

  • *
  • 1*3

Ж

a

t

t

it

п

-

с

W

ж

с

>

6

Г

И

Ж

О

У

44

145

146

147

145

143

150

Cl

152

153

С4

С5

С6

ст

се

со

rfcsp

У

bl

§

Н

Ь1

j

s

Ё

©

Й)

«

-1

shy

©

г

Я

160

191

«2

163

164

165

100

161

109

163

170

1Т1

то

173

174

175

±

Ы

i

W

М

И

*

ё

N!

ю

»

а

ю

а

Я

m

Ш

ITS

17B

Ж*

101

юг

юз

104

as

186

ют

tss

199

180

131

A

Б

в

Г

д

Е

Ж

3

И

й

К

Л

м

н

0

П

tH

1M

и

1ЭГ

юо

юз

200

201

202

203

204

?06

гот

p

C

T

У

ф

X

ц

Ч

ш

Щ

ь

Ы

ь

э

Ю

Я

200

200

210

2fl

212

213

21*

2(5

216

гит

219

220

221

222

223

a

6

В

Г

д

е

Ж

3

И

й

К

Л

М

н

0

П

224

225

220

22T

?29

223

230

гл

232

233

234

235

230

23Т

г»

233

P

c

T

У

Ф

X

Ц

ч

Ш

Щ

Ъ

Ы

ь

3

ю

Я

240

241

242

243

244

245

246

247

240

243

250

251

352

253

254

255

В 1991 г. появился новый международный стандарт Unicode - 16-разряд- ная система кодирования, совместимая с системой ASCII. В Unicode под один символ отводится не один байт, а два, поэтому с его помощью можно закодировать не 256, а 65536 различных символов. Полная спецификация стандарта Unicode охватывает символы различных письменностей - латинской, кириллической, греческой, а также языков, использующих иероглифы, например китайского и японского.

Каждый из символов, который содержится на клавиатуре, имеет свой код ASCII. Специальные «управляющие» символы, такие как табуляция, перевод строки и возврат каретки, имеют коды с 0 по 31, базовые символы клавиатуры имеют коды с 32 по 127. Например, буква а (латинская) в нижнем регистре соответствует ASCII-коду 97, а буква А (тоже латинская) в верхнем регистре соответствует ASCII-коду 65. В результате VB при сортировке или при выполнении других операций считает эти два символа различными. Коды с 128 по 255 в таблице ASCII содержат символы национальных языков, греческие символы, символы псевдографики и некоторые другие.

Для работы с символами в языке VB имеется ряд встроенных функций. Приведем ряд примеров.

Чтобы определить ASCII-код конкретной буквы, можно использовать функцию языка VB Asc( ). Например, следующий оператор присваивает целочисленной переменной «а» число 122 (ASCII-код строчной буквы «z»):

Dim a As Short

а = Asc ("z")_

С помощью функции Chr( ) можно преобразовать ASCII-код в букву. Например, следующий программный код присваивает символьной переменной букву Z:

Dim letter As Char

letter = Chr(122)_

Считается, что символ больше, чем другой символ, если его ASCII-код больше. Например, ASCII-значение буквы В больше, чем ASCII-значение буквы А, так что выражение "А" < "В" истинно, а выражение "А" > "В" - ложно.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >