Розділювальний символРозділювальний (відмежувальний) символ або роздільник (англ. delimiter) — у комп'ютерних мовах називають послідовність із одного або кількох символів, яка служить для означення незалежних фрагментів у текстовому файлі. Найпоширенішим прикладом є знак коми «,» у файлах даних розділених комами. Альтернативою до вживання розділювальних символів є декларативна нотація, яка використовує довжину фрагменту для визначення його межі. Усі розділювальні символи можна умовно розділити на 2 великі групи:
Парні розділювальні символиПарні розділювальні символи служать для позначення початку і кінця фрагменту тексту і використовуються тільки парно. Найчастіше вживаються у комп'ютерних мовах, включаючи Wikicode. До цієї групи відносяться різноманітні види дужок, найпоширеніші такі:
Непарні розділювальні символиНа відміну від попередньої, символи цієї групи можуть використовуватися, як парно так і поодиноко. Дуже поширеною є практика використання таких символів, у базах даних у файлах даних, для відокремлення даних в середині полів і записів. Наприклад, у файлах CSV (даних, розділених комами), знак коми «,» служить для розділення полів, а символ закінчення рядка — для розділення записів. ім'я,прізвище,вік,зарплата Марія,Коваленко,33,30000 Іван,Ковальчук,28,25250 Антон,Ковальський,35,287000 Слід зауважити, що один і той самий символ або послідовність символів, може використовуватись, як для розділення полів, так і для розділення записів. Файл 1 Марія,Коваленко,33,30000;Іван,Ковальчук,28,25250;Антон,Ковальський,35,287000 У першому файлі символ «;» (крапка з комою) розділяє записи, а у другому «;» розділяє поля Файл 2 Марія;Коваленко;33;30000/Іван;Ковальчук;28;25250/Антон;Ковальський;35;287000 Проте, якщо це відбувається у межах одного файлу, можливі колізії, див. розділ «Колізії» ПрикладиУ популярних операційних системах традиційно використовують такі символи, що розділяють поля та записи:
У стандарті Unicode символи закінчення поля, запису та файлу кодуються так:
КолізіїРозділювальні символи можуть стати причиною колізій тоді, коли оператор файлу даних (користувач), вставляє розділювальні символи не з метою виділення, фрагментів даних, у текстовому файлі, вставляє їх у неправильній послідовності або вживає символи недопустимі, для даного формату даних. Як приклад розглянемо формат даних розділених комами, найчастіше колізії виникають тоді коли користувач, використовує символ коми «,» як частину даних, наприклад у десяткових дробах (довжина = «3,14»). Як результат дані інтерпретуються неправильно. Оскільки помилки такого типу є дуже поширеними існує кілька шляхів їх подолання. Escape-символиEscape-символами (символами відміни) у машинних мовах називаються символи, які ставлять перед службовими символами, сигналізуючи таким чином, що наступна комбінація, інтерпретується не як службовий символ. Наприклад команда rm * у мові shell означає видалити усі файли у поточному каталозі, але якщо скористатися символом відміни «\» (escape-символом) то наступна команда означає, видалити усі файли із іменем «*» rm \* З аналогічною метою символи відміни вживаються у файлах даних тоді, коли розділювальний символ є частиною самих даних, «скасовуючи» символом відміни його службове значення. Отже, якщо система «знає», що «\» — символ відміни, тоді кома у даних виду (довжина = «3\,14») буде читатися системою, як частина даних, а не як розділювальний символ. У такого підходу є свої недоліки:
Escape-послідовностіГоловною відмінністю escape-послідовностей (послідовностей відміни) від символів відміни є те, що використовується не один а комбінація символів, часто мнемонічна. Наприклад у мові програмування Perl, використання послідовності «\x34» у наступному виразі print "Nancy said \x34Hello World!\x34 to the crowd."; дає такий самий результат як і використання символу відміни «\» print "Nancy said \"Hello World!\" to the crowd."; Недоліки цього методу такі самі як у попереднього, а також те що, людина, яка створює файли даних повинна пам'ятати багато таких послідовностей. Парні розозділювальні символиАльтернативою до вживання символів та послідовностей відміни є вживання парних розділювальних символів. Найбільш часто використовуються символи одинарних (' та ') та подвійних (" та ") лапок для означення рядкового літералу. Цей підхід застосовується у файлах даних розділених комами "ширина","довжина" "2,71","3,14" Непарні розділювальні символиВикористання непарних розділювальних символів, для означення рядкових літералів є гнучкішим засобом для уникнення колізій. У наступному прикладі в усіх трьох випадких оператор мови Perl qq<розділювальний_символ> <рядковий_літерал> anymore.<розділювальний_символ> дає один і той самий результат print qq^Nancy doesn't want to say "Hello World!" anymore.^; print qq@Nancy doesn't want to say "Hello World!" anymore.@; print qq§Nancy doesn't want to say "Hello World!" anymore.§; Хоча такий підхід і дуже гнучкий, однак лише деякі машинні мови його підтримують, наприклад Perl або Ruby.
|
Portal di Ensiklopedia Dunia