Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 45

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… новостСй Usenet, ΠΊΠ°ΠΊ ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… HTTP 1.1. (ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ…), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² World Wide Web. Он вСсьма ΡƒΠ΄ΠΎΠ±Π΅Π½ для рСдактирования Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ срСдства поиска Π² Unix Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ сСбя Π² поискС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², хотя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ† записСй Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ нСсколько Π±ΠΎΠ»ΡŒΡˆΠΈΡ… усилий, Ρ‡Π΅ΠΌ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для построчного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° записСй.

НСдостатком Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° RFC 822 являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ситуации, ΠΊΠΎΠ³Π΄Π° нСсколько сообщСний ΠΈΠ»ΠΈ записСй Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ», Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ записСй ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ β€” ΠΊΠ°ΠΊ Π»ΠΈΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, Π³Π΄Π΅ заканчиваСтся нСструктурированноС тСкстовоС Ρ‚Π΅Π»ΠΎ сообщСния ΠΈ начинаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ? Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ слоТились нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… соглашСний для разграничСния сообщСний Π² ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиках. Π‘Ρ‚Π°Ρ€Π΅ΠΉΡˆΠΈΠΉ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ способ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сообщСниС начинаСтся со строки, содСрТащСй Π² Π½Π°Ρ‡Π°Π»Π΅ слово "From " ΠΈ свСдСния ΠΎΠ± ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅, Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² записСй. Он Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ строки Π² тСкстС сообщСния, начиная с " From ", Ρ€Π°Π·Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа >), Π° данная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… систСмах ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки, состоящиС ΠΈΠ· ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… символов, появлСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² сообщСниях маловСроятно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… символов ASCII 01 (control-A). Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ MIME ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΡƒΡ‚Π΅ΠΌ явного указания Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π΄Π»ΠΈΠ½Ρ‹ сообщСния, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ являСтся Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΈ, вСсьма вСроятно, ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠΈΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, Ссли сообщСния ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. НСсколько Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся ΡΡ‚ΠΈΠ»ΡŒ record-jar, описанный Π΄Π°Π»Π΅Π΅ Π² настоящСй Π³Π»Π°Π²Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° RFC 822 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² любом элСктронном ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΌ ящикС.

5.2.3. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Cookie-Jar

Π€ΠΎΡ€ΠΌΠ°Ρ‚ cookie-jar ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ fortune(1) для собствСнной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… случайных Ρ†ΠΈΡ‚Π°Ρ‚. Он ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для записСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой просто Π±Π»ΠΎΠΊΠΈ нСструктурированного тСкста. Π’ качСствС раздСлитСля записСй Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ примСняСтся символ Π½ΠΎΠ²ΠΎΠΉ строки, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ символы %% (ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° символ Π½ΠΎΠ²ΠΎΠΉ строки с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ символом %). Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ (5.3) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ„Π°ΠΉΠ»Π° Ρ†ΠΈΡ‚Π°Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… подписСй.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5.3. Π€Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ fortune

"Π‘Ρ€Π΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… злодСяний английского правлСния Π² Индии ΠΆΠ΅ΡΡ‚ΠΎΡ‡Π°ΠΉΡˆΠΈΠΌ история сочтСт Акт обСзоруТивания всСй Π½Π°Ρ†ΠΈΠΈ."

-- ΠœΠΎΡ…Π°Ρ‚ΠΌΠ° Π“Π°Π½Π΄ΠΈ (Mohandas Gandhi), "Автобиография", стр. 446

%

Π›ΡŽΠ΄ΡΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΈΠ½Ρ†ΠΈΠΉ строго воспрСщаСтся Π²Π»Π°Π΄Π΅Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‡Π°ΠΌΠΈ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΌΠ΅Ρ‡Π°ΠΌΠΈ, Π»ΡƒΠΊΠ°ΠΌΠΈ, копьями, ΠΎΠ³Π½Π΅ΡΡ‚Ρ€Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ€ΡƒΠΆΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΡ€ΡƒΠΆΠΈΠ΅ΠΌ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’Π»Π°Π΄Π΅Π½ΠΈΠ΅ излишним ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€Π΅ΠΌ услоТняСт сбор Π½Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π°Ρ‚Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ подстрСкаСт ΠΊ Π±ΡƒΠ½Ρ‚Π°ΠΌ.

-- Π’ΠΎΠΉΠΎΡ‚ΠΎΠΌΠΈ Π₯идСоши (Toyotomi Hideyoshi), Π΄ΠΈΠΊΡ‚Π°Ρ‚ΠΎΡ€ Π―ΠΏΠΎΠ½ΠΈΠΈ, август 1588

%

"Одним ΠΈΠ· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… способов, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΡ€Π°Π½Ρ‹ Π±Π΅Π· сопротивлСния достигали своих Ρ†Π΅Π»Π΅ΠΉ, являСтся ΠΎΠ±Π΅Π·ΠΎΡ€ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ людСй ΠΈ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π½Π³ прСступлСния Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ€ΡƒΠΆΠΈΠ΅ΠΌ."

-- Π‘ΡƒΠ΄ΡŒΡ Π’Π΅Ρ€Ρ…ΠΎΠ²Π½ΠΎΠ³ΠΎ суда Π”ΠΆΠΎΠ·Π΅Ρ„ Π‘Ρ‚ΠΎΡ€ΠΈ (Joseph Story), 1840

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° допускаСт использованиС ΠΏΡ€ΠΎΠ±Π΅Π»Π° послС символа % ΠΏΡ€ΠΈ поискС β€’ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ записСй. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ошибками, связанными с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π•Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов %% ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь тСкст ΠΎΡ‚ %% Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

Π‘ самого Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ cookie-jar Π±Ρ‹Π»Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ %%\n. Π― искал Π½Π΅Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅, Ρ‡Π΅ΠΌ символ %. По сущСству, всС послС %% интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, я Ρ‚Π°ΠΊ это писал)

КСн ΠΡ€Π½ΠΎΠ»ΡŒΠ΄

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ cookie-jar ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±Π»ΠΎΠΊΠΎΠ² тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ СстСствСнно упорядочСнной, Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌΠΎΠΉ структуры Π²Ρ‹ΡˆΠ΅ уровня слов ΠΈΠ»ΠΈ поисковых ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΡ‚ ΠΈΡ… тСкстового содСрТания.

5.2.4. Π€ΠΎΡ€ΠΌΠ°Ρ‚ record-jar

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ записСй Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° cookie-jar Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ с ΠΌΠ°Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ RFC 822 для записСй, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ называСтся "record-jar". Иногда трСбуСтся тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ мноТСствСнныС записи с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ явных ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»Π΅ΠΉ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΈ самым друТСствСнным ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ являСтся Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдставлСн Π½ΠΈΠΆΠ΅ (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 5.4).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5.4. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики Ρ‚Ρ€Π΅Ρ… ΠΏΠ»Π°Π½Π΅Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ record-jar

Planet: Mercury

Orbital-Radius: 57,910,000 km

Diameter: 4,880 km

Mass: 3.30e23 kg

%%

Planet: Venus

Orbital-Radius: 108,200,000 km

Diameter: 12,103.6. km

Mass: 4.8Π±9Π΅24 kg

%%

Planet: Earth

Orbital-Radius: 149,600,000 km

Diameter: 12,756.3. km

Mass: 5.972e24 kg

Moons: Luna

Π’ качСствС раздСлитСля записСй, нСсомнСнно, ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ пустая строка. Однако строка, содСрТащая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ "%%\n", являСтся Π±ΠΎΠ»Π΅Π΅ явной ΠΈ вряд Π»ΠΈ созданной Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΠ»ΠΎΡˆΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎ врСмя рСдактирования (Π΄Π²Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Ρ… символа Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ… появлСниС Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ). Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ β€” просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пустыС строки.

Если записи ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ record-jar Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ приблиТаСтся ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ способ отдСлСния раздСлитСля записСй, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΉ символ ΠΌΠΎΠ³ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² тСкстС. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ "задохнСтся" Π½Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ сформированной тСкстовой части. НиТС ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ заполнСнию Π±Π°ΠΉΡ‚Π°ΠΌΠΈ (byte-stuffing; описываСтся Π΄Π°Π»Π΅Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅).

Π€ΠΎΡ€ΠΌΠ°Ρ‚ record-jar ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π°Π±ΠΎΡ€ΠΎΠ² связСй "ΠΏΠΎΠ»Π΅-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚", ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… DSV-ΡΡ‚ΠΈΠ»ΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ состав ΠΏΠΎΠ»Π΅ΠΉ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, связанный с Π½ΠΈΠΌΠΈ нСструктурированный тСкст.

5.2.5. XML

Π―Π·Ρ‹ΠΊ XML прСдставляСт собой ΠΎΡ‡Π΅Π½ΡŒ простой синтаксис, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ HTML, β€” Ρ‚Π΅Π³ΠΈ Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобках ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с ампСрсанта. XML ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ прост, насколько ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ простой Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° простого тСкста, Π°, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ позволяСт Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ рСкурсивно Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…. XML β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ синтаксис, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ сСмантикой, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, XHTML) ΠΈ связанная Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

XML Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для слоТных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (для Ρ‡Π΅Π³ΠΎ Π² Unix-Ρ‚Ρ€Π°Π΄ΠΈ-циях старой ΡˆΠΊΠΎΠ»Ρ‹ использовался Π±Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ RFC 822, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° строфы), хотя для Π±ΠΎΠ»Π΅Π΅ простых структур ΠΎΠ½ являСтся ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ. Π•Π³ΠΎ особСнно цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², содСрТащих ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ RFC 822 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Книга "XML in a Nutshell" [32] являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΡ… трудностСй для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования тСкстового Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° слСдуСт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ использования ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ синтаксиса. НСстандартныС Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ нСсколько Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ синтаксиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ соотвСтствуСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ устраняСтся ΠΏΡƒΡ‚Π΅ΠΌ использования стандартного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддаСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŽ ΠΈ позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ синтаксичСский Π°Π½Π°Π»ΠΈΠ· срСдствами стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠšΠΈΡ‚ ΠŸΠ°ΠΊΠΊΠ°Ρ€Π΄.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 5.5. ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ простой ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° основС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° XML. Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ инструмСнта kdeprint, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поставляСтся с офисным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² Linux срСды KDE с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ Π½Π΅ΠΌ описаны ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² PostScript ΠΈ ΠΈΡ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² Π³Π»Π°Π²Π΅ 8 ΠΏΡ€ΠΈ описании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Glade.