Розділювальний (відмежовуючий) символ або роздільник (англ. delimiter) — у комп'ютерних мовах називають послідовність із одного або кількох символів, яка служить для означення незалежних фрагментів у текстовому файлі. Найпоширенішим прикладом є знак коми «,» у файлах даних розділених комами.
Альтернативою до вживання розділювальних символів є , яка використовує довжину фрагменту для визначення його межі.
Усі розділювальні символи можна умовно розділити на 2 великі групи:
- Парні
- Непарні
Парні розділювальні символи
Парні розділювальні символи служать для позначення початку і кінця фрагменту тексту і використовуються тільки парно. Найчастіше вживаються у комп'ютерних мовах, включаючи . До цієї групи відносяться різномані види дужок, найпоширеніші такі:
- Круглі дужки ( та )
- Фігурні дужки { та }
- Квадратні дужки [ та ]
- Кутові дужки < та >
- Подвійні лапки " та ", найчастіше служать для позначення
- Одинарні лапки ' та ', найчастіше служать для позначення рядкових літералів
- <? та ?>, використовуються для позначення інструкцій обробки у мові XML
- /* та */, використовуються для позначення коментарів у багатьох мовах програмування
- {| та |}, використовуються для позначення таблиці у Wikicode
- <% та %>, використовуються у деяких , для позначення меж коду, написаного іншою мовою
Непарні розділювальні символи
На відміну від попередньої, символи цієї групи можуть використовуватися, як парно так і поодиноко. Дуже поширеною є практика використання таких символів, у базах даних у файлах даних, для відокремлення даних в середині полів і записів.
Наприклад, у файлах CSV (даних, розділених комами), знак коми «,» служить для розділення полів, а символ закінчення рядка — для розділення записів.
ім'я,прізвище,вік,зарплата Марія,Коваленко,33,30000 Іван,Ковальчук,28,25250 Антон,Ковальський,35,287000
Слід зауважити, що один і той самий символ або послідовність символів, може використовуватись, як для розділення полів, так і для розділення записів.
Файл 1
Марія,Коваленко,33,30000;Іван,Ковальчук,28,25250;Антон,Ковальський,35,287000
У першому файлі символ «;» (крапка з комою) розділяє записи, а у другому «;» розділяє поля
Файл 2
Марія;Коваленко;33;30000/Іван;Ковальчук;28;25250/Антон;Ковальський;35;287000
Проте, якщо це відбувається у межах одного файлу, можливі колізії, див. розділ «Колізії»
Приклади
У популярних операційних системах традиційно використовують такі символи, що розділяють поля та записи:
Кінець поля | Кінець запису | Кінець файлу | |
---|---|---|---|
Unix (та Mac OS X) | Знак табуляції | відсутній | |
Windows | Знак табуляції | Знак повернення каретки і знак закінчення рядка | відсутній |
Класична Mac OS | Знак табуляції | Знак повернення каретки | відсутній |
У стандарті Unicode символи закінчення поля, запису та файлу кодуються так:
Код | |
---|---|
UNIT SEPARATOR | Position 31 (U+001F) |
RECORD SEPARATOR | Position 30 (U+001E) |
FILE SEPARATOR | Position 28 (U+001C) |
У таблиці нижче подано приклад як розділювальні символи застосовуються у мовах програмування Pascal та C.
Рядковий літерал | Кінець оператора | |
---|---|---|
Pascal | подвійні лапки | крапка з комою |
C | подвійні та одинарні лапки | крапка з комою |
Колізії
Розділювальні символи можуть стати причиною колізій тоді, коли оператор файлу даних (користувач), вставляє розділювальні символи не з метою виділення, фрагментів даних, у текстовому файлі, вставляє їх у неправильній послідовності або вживає символи недопустимі, для даного формату даних. Як приклад розглянемо формат даних розділених комами, найчастіше колізії виникають тоді коли користувач, використовує символ коми «,» як частину даних, наприклад у десяткових дробах (довжина = «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.
Ця стаття не містить . (березень 2017) |
Це незавершена стаття про мови програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Rozdilyuvalnij vidmezhovuyuchij simvol abo rozdilnik angl delimiter u komp yuternih movah nazivayut poslidovnist iz odnogo abo kilkoh simvoliv yaka sluzhit dlya oznachennya nezalezhnih fragmentiv u tekstovomu fajli Najposhirenishim prikladom ye znak komi u fajlah danih rozdilenih komami Alternativoyu do vzhivannya rozdilyuvalnih simvoliv ye yaka vikoristovuye dovzhinu fragmentu dlya viznachennya jogo mezhi Usi rozdilyuvalni simvoli mozhna umovno rozdiliti na 2 veliki grupi Parni NeparniParni rozdilyuvalni simvoliParni rozdilyuvalni simvoli sluzhat dlya poznachennya pochatku i kincya fragmentu tekstu i vikoristovuyutsya tilki parno Najchastishe vzhivayutsya u komp yuternih movah vklyuchayuchi Do ciyeyi grupi vidnosyatsya riznomani vidi duzhok najposhirenishi taki Krugli duzhki ta Figurni duzhki ta Kvadratni duzhki ta Kutovi duzhki lt ta gt Podvijni lapki ta najchastishe sluzhat dlya poznachennya Odinarni lapki ta najchastishe sluzhat dlya poznachennya ryadkovih literaliv lt ta gt vikoristovuyutsya dlya poznachennya instrukcij obrobki u movi XML ta vikoristovuyutsya dlya poznachennya komentariv u bagatoh movah programuvannya ta vikoristovuyutsya dlya poznachennya tablici u Wikicode lt ta gt vikoristovuyutsya u deyakih dlya poznachennya mezh kodu napisanogo inshoyu movoyuNeparni rozdilyuvalni simvoliNa vidminu vid poperednoyi simvoli ciyeyi grupi mozhut vikoristovuvatisya yak parno tak i poodinoko Duzhe poshirenoyu ye praktika vikoristannya takih simvoliv u bazah danih u fajlah danih dlya vidokremlennya danih v seredini poliv i zapisiv Napriklad u fajlah CSV danih rozdilenih komami znak komi sluzhit dlya rozdilennya poliv a simvol zakinchennya ryadka dlya rozdilennya zapisiv im ya prizvishe vik zarplata Mariya Kovalenko 33 30000 Ivan Kovalchuk 28 25250 Anton Kovalskij 35 287000 Slid zauvazhiti sho odin i toj samij simvol abo poslidovnist simvoliv mozhe vikoristovuvatis yak dlya rozdilennya poliv tak i dlya rozdilennya zapisiv Fajl 1 Mariya Kovalenko 33 30000 Ivan Kovalchuk 28 25250 Anton Kovalskij 35 287000 U pershomu fajli simvol krapka z komoyu rozdilyaye zapisi a u drugomu rozdilyaye polya Fajl 2 Mariya Kovalenko 33 30000 Ivan Kovalchuk 28 25250 Anton Kovalskij 35 287000 Prote yaksho ce vidbuvayetsya u mezhah odnogo fajlu mozhlivi koliziyi div rozdil Koliziyi PrikladiU populyarnih operacijnih sistemah tradicijno vikoristovuyut taki simvoli sho rozdilyayut polya ta zapisi Kinec polya Kinec zapisu Kinec fajluUnix ta Mac OS X Znak tabulyaciyi vidsutnijWindows Znak tabulyaciyi Znak povernennya karetki i znak zakinchennya ryadka vidsutnijKlasichna Mac OS Znak tabulyaciyi Znak povernennya karetki vidsutnij U standarti Unicode simvoli zakinchennya polya zapisu ta fajlu koduyutsya tak KodUNIT SEPARATOR Position 31 U 001F RECORD SEPARATOR Position 30 U 001E FILE SEPARATOR Position 28 U 001C U tablici nizhche podano priklad yak rozdilyuvalni simvoli zastosovuyutsya u movah programuvannya Pascal ta C Ryadkovij literal Kinec operatoraPascal podvijni lapki krapka z komoyuC podvijni ta odinarni lapki krapka z komoyuKoliziyiRozdilyuvalni simvoli mozhut stati prichinoyu kolizij todi koli operator fajlu danih koristuvach vstavlyaye rozdilyuvalni simvoli ne z metoyu vidilennya fragmentiv danih u tekstovomu fajli vstavlyaye yih u nepravilnij poslidovnosti abo vzhivaye simvoli nedopustimi dlya danogo formatu danih Yak priklad rozglyanemo format danih rozdilenih komami najchastishe koliziyi vinikayut todi koli koristuvach vikoristovuye simvol komi yak chastinu danih napriklad u desyatkovih drobah dovzhina 3 14 Yak rezultat dani interpretuyutsya nepravilno Oskilki pomilki takogo tipu ye duzhe poshirenimi isnuye kilka shlyahiv yih podolannya Escape simvoli Escape simvolami simvolami vidmini u nazivayutsya simvoli yaki stavlyat pered sluzhbovimi simvolami signalizuyuchi takim chinom sho nastupna kombinaciya interpretuyetsya ne yak sluzhbovij simvol Napriklad komanda rm u movi shell oznachaye vidaliti usi fajli u potochnomu katalozi ale yaksho skoristatisya simvolom vidmini escape simvolom to nastupna komanda oznachaye vidaliti usi fajli iz imenem rm Z analogichnoyu metoyu simvoli vidmini vzhivayutsya u fajlah danih todi koli rozdilyuvalnij simvol ye chastinoyu samih danih skasovuyuchi simvolom vidmini jogo sluzhbove znachennya Otzhe yaksho sistema znaye sho simvol vidmini todi koma u danih vidu dovzhina 3 14 bude chitatisya sistemoyu yak chastina danih a ne yak rozdilyuvalnij simvol U takogo pidhodu ye svoyi nedoliki Tekst perenasichenij simvolami vidmini vazhko sprijmayetsya lyudinoyu Neobhidnist mehanizmu vidmini simvoliv vidmini Escape poslidovnosti Golovnoyu vidminnistyu escape poslidovnostej poslidovnostej vidmini vid simvoliv vidmini ye te sho vikoristovuyetsya ne odin a kombinaciya simvoliv chasto mnemonichna Napriklad u movi programuvannya Perl vikoristannya poslidovnosti x34 u nastupnomu virazi print Nancy said x34Hello World x34 to the crowd daye takij samij rezultat yak i vikoristannya simvolu vidmini print Nancy said Hello World to the crowd Nedoliki cogo metodu taki sami yak u poperedngo a takozh te sho lyudina yaka stvoryuye fajli danih povinna pam yatati bagato takih poslidovnostej Parni rozozdilyuvalni simvoli Alternativoyu do vzhivannya simvoliv ta poslidovnostej vidmini ye vzhivannya parnih rozdilyuvalnih simvoliv Najbilsh chasto vikoristovuyutsya simvoli odinarnih ta ta podvijnih ta lapok dlya oznachennya Cej pidhid zastosovuyetsya u fajlah danih rozdilenih komami shirina dovzhina 2 71 3 14 Neparni rozdilyuvalni simvoli Vikoristannya neparnih rozdilyuvalnih simvoliv dlya oznachennya ryadkovih literaliv ye gnuchkishim zasobom dlya uniknennya kolizij U nastupnomu prikladi v usih troh vipadkih operator movi Perl qq lt rozdilyuvalnij simvol gt lt ryadkovij literal gt anymore lt rozdilyuvalnij simvol gt daye odin i toj samij rezultat 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 Hocha takij pidhid i duzhe gnuchkij odnak lishe deyaki mashinni movi jogo pidtrimuyut napriklad Perl abo Ruby Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2017 Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi