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

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

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

АббрСвиатура DSV Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Delimiter-Separated Values (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с раздСлитСлями Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ). Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ рассматривался Ρ„Π°ΠΉΠ» /etc/passwd, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ DSV-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с символом двоСточия Π² качСствС раздСлитСля Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ являСтся стандартным Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ для DSV-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… значСния ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° /etc/passwd (ΠΎΠ΄Π½Π° запись Π² строкС, поля Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ двоСточиями) являСтся вСсьма Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π² Unix ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π΄Π°Π½Π½Ρ‹Ρ…, прСдставлСнных Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π”Ρ€ΡƒΠ³ΠΈΠ΅ классичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Ρ„Π°ΠΉΠ» /etc/group, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ Ρ„Π°ΠΉΠ» /etc/inittab, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ примСняСтся для управлСния запуском ΠΈ остановом слуТСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Unix Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… уровнях выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°ΠΊΠΎΠΌ стилС Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² поля Π΄Π°Π½Π½Ρ‹Ρ… символов двоСточия, ΠΏΡ€Π΅Π΄Π²Π°Ρ€Π΅Π½Π½Ρ‹Ρ… символами ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΌ смыслС оТидаСтся, Ρ‡Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ записи ΠΏΡƒΡ‚Π΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π½Π°ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для символов Π½Π°Ρ‡Π°Π»Π° Π½ΠΎΠ²ΠΎΠΉ строки ΠΈ позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, содСрТащиС Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π½Π°ΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² стилС Π‘.

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящим Π² ситуациях, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ, снабТСны ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ (ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅), Π° записи, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ (ΠΌΠ΅Π½Π΅Π΅ 80 символов). ΠžΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ обрабатываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Unix.

Иногда Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ символ ΠΊΠ°Π½Π°Π»Π° (|) ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ символ ASCII NUL. Π’ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Unix старой ΡˆΠΊΠΎΠ»Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ символы табуляции β€” Ρ„ΠΎΡ€ΠΌΠ° прСдставлСния, которая ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π° Π² установках ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ cut(1) ΠΈ paste(1). Однако постСпСнно данная Ρ„ΠΎΡ€ΠΌΠ° прСдставлСния измСнялась, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² осознавали мноТСство ΠΌΠ΅Π»ΠΊΠΈΡ… нСудобств, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π²Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ символы табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π΅Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌΡ‹.

DSV-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для Unix являСтся Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Π΅ΠΌ CSV (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ запятыми) для Microsoft Windows ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм Π²Π½Π΅ ΠΌΠΈΡ€Π° Unix. Π€ΠΎΡ€ΠΌΠ°Ρ‚ CSV (поля Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ запятыми, для Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния запятых ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ строки Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ) Π² Unix встрСчаСтся нСчасто.

Π’ сущности, Microsoft-вСрсия CSV прСдставляСт собой Π°Π·Π±ΡƒΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π΅ слСдуСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с Π½ΠΈΠΌ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ситуации, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ символ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС запятая) находится Π²Π½ΡƒΡ‚Ρ€ΠΈ поля. Π’ Unix Π² Ρ‚Π°ΠΊΠΎΠΌ случаС для Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния раздСлитСля ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π±Ρ‹Π» Π±Ρ‹ вставлСн символ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, Π° Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Π°Ρ обратная косая Ρ‡Π΅Ρ€Ρ‚Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ»Π°ΡΡŒ Π±Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹. Вакая конструкция создаСт СдинствСнный частный случай (Π·Π½Π°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²ΠΎ врСмя синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° Ρ„Π°ΠΉΠ»Π°, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ СдинствСнного дСйствия, ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΎΠΉ символ Π½Π°ΠΉΠ΄Π΅Π½, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β€” ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ. Π”Π°Π½Π½ΠΎΠ΅ дСйствиС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ символ, Π½ΠΎ ΠΈ прСдоставляСт способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π½Π°ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ символов Π½ΠΎΠ²ΠΎΠΉ строки Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ…ΠΈΡ‰Ρ€Π΅Π½ΠΈΠΉ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CSV Ρ†Π΅Π»ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π² случаС Ссли ΠΎΠ½ΠΎ содСрТит символ-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. Если ΠΏΠΎΠ»Π΅ содСрТит Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π΅Π³ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΏΠΎΠ»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π΄Π²Π°ΠΆΠ΄Ρ‹, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ΠΏΠΎΠ»Π΅.

БущСствуСт Π΄Π²Π° Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° роста числа частных случаСв. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, возрастаСт ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° (ΠΈ Π΅Π³ΠΎ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ ошибкам). Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° слоТны ΠΈ нСпрСдусмотрСны, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ расходятся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… случаСв. Иногда ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ строки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ Π½Π°Ρ‡Π°Π»Π° послСднСго поля строки с Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…. Microsoft ΠΈΠΌΠ΅Π΅Ρ‚ нСсовмСстимыС вСрсии CSV-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ своими собствСнными прилоТСниями, Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ вСрсиями ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния (ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Excel).

5.2.2. Π€ΠΎΡ€ΠΌΠ°Ρ‚ RFC 822

ΠœΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ RFC 822 происходит ΠΎΡ‚ тСкстового Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° сообщСний элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² Internet. RFC 822 являСтся основным Internet RFC-стандартом, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (впослСдствии Π·Π°ΠΌΠ΅Π½Π΅Π½ RFC 2822). Π€ΠΎΡ€ΠΌΠ°Ρ‚ MIME (Multipurpose Internet Media Extension β€” ΠΌΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Internet) обСспСчиваСт способ внСдрСния Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΡŒ сообщСний Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° RFC 822. (Web-поиск ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΈΠ· упомянутых Π½Π°Π·Π²Π°Π½ΠΈΠΉ прСдоставит ссылки Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ стандарты).

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ записСй хранятся ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π² строкС, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ сходство с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ сообщСния, ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ символом двоСточия с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ. ИмСна ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅ содСрТат ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ вмСсто ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ дСфис. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° являСтся вся ΠΎΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ строка Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ символа Π½ΠΎΠ²ΠΎΠΉ строки. ЀизичСская строка, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с символа табуляции ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ логичСской строки. ΠŸΡƒΡΡ‚Π°Ρ строка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ записи, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π»Π΅Π΅ слСдуСт нСструктурированный тСкст.

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ RFC 822 являСтся Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для классифицированных сообщСний ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π±Π»ΠΈΠ·ΠΊΠΎ сопоставимых с элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ. Π‘ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для записСй с ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΡΡ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»Π΅ΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ иСрархия Π΄Π°Π½Π½Ρ‹Ρ… проста (Π±Π΅Π· рСкурсии ΠΈΠ»ΠΈ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структуры).

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… новостСй 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

%

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