Кіріспе
Делимитер – деректер ағынындағы бөлек, тәуелсіз аймақтар арасындағы шекараны белгілейтін бір немесе бірнеше таңбадан тұратын тізбек. Мысалы, үтірлі таңба үтірмен бөлінген мәндер тізбегіндегі өріс делимитері ретінде қолданылады. Тағы бір мысал – Морзе кодымен хабар берілгенде әріптер мен сөздерді бөлу үшін пайдаланылатын уақыт аралығы. Математикада делимитерлер операцияның қолданылу аясын көрсету үшін жиі қолданылады, олар жеке символдар түрінде (мысалы, «» ішіндегі екі нүкте) немесе қарама-қарсы символдар жұбы түрінде (мысалы, бұрышты жақшалар) кездесуі мүмкін. Делимитерлер деректер ағынындағы шекараларды белгілеудің бірнеше тәсілдерінің бірі болып табылады. Мысалы, декларативтік жазба – бұл деректер ағынының басындағы ұзындық өрісі арқылы деректер ағынындағы таңбалар санын анықтайтын, делимитерлерді қолданбайтын балама әдіс.
A delimiter is a sequence of one or more characters for specifying the boundary between separate, independent regions in plain text, mathematical expressions or other data streams. An example of a delimiter is the comma character, which acts as a field delimiter in a sequence of comma separated values. Another example of a delimiter is the time gap used to separate letters and words in the transmission of Morse code. In mathematics, delimiters are often used to specify the scope of an operation, and can occur both as isolated symbols (e. g., colon in "") and as a pair of opposing looking symbols (e. g., angled brackets in ). Delimiters represent one of various means of specifying boundaries in a data stream. Declarative notation, for example, is an alternate method (without the use of delimiters) that uses a length field at the start of a data stream to specify the number of characters that the data stream contains.
Шолу
Делимитерлер өріс және жазба делимитерлері, немесе жақша делимитерлері ретінде сипатталуы мүмкін.
Белгілеуші соқтығысу
Делимитерлік қақтығыс – автор немесе бағдарламашы мәтінге шекара белгілері ретінде қабылдау ниеті болмаса да, шекара белгілерін енгізген кезде туындайтын мәселе. Мысалы, XML жағдайында, автор бұрышты жақша белгісін көрсетуге тырысқанда мұндай жағдай тууы мүмкін. Көптеген файл түрлерінде өріс шекарасы және жазба шекарасы болады, екеуі де қақтығысқа ұшырауы мүмкін. Мысалы, үтірмен бөлінген мәндер файлында автор өріс мәнінің бір бөлігі ретінде үтірді қосуға тырысқанда өріс қақтығысы тууы мүмкін (мысалы, жалақы = "$30,000"), ал жазбада бірнеше жол болғанда жазба шекарасының қақтығысы тууы мүмкін. Жазба және өріс шекараларының қақтығысы мәтіндік файлдарда жиі кездеседі. Кейбір жағдайларда, қасақана зиянды пайдаланушы немесе шабуылшы осы мәселені пайдалануға тырысуы мүмкін. Осылайша, шекара белгілерінің қақтығысы қауіпсіздікке қатысты осал жерлерге және шабуылдарға себеп болуы мүмкін. Зиянды пайдаланушылар SQL және HTML сияқты тілдерде шекара белгілерінің қақтығысын пайдаланып, SQL инъекциясы және сайттар аралық скрипттер сияқты белгілі шабуылдарды жүзеге асыруы мүмкін.
Шешімдер
Делимитерлік соқтығысу өте жиі кездесетін мәселе болғандықтан, оны болдырмау үшін әртүрлі әдістер ойлап табылды. Кейбір авторлар дерек ағынында кездеспейтін сияқты делимитерлік таңбаны (немесе таңбалар тізбегін) таңдау арқылы осы мәселенің алдын алуға тырысуы мүмкін. Бұл ad hoc тәсіл пайдалы болуы мүмкін, бірақ ол дерек ағынында не пайда болатынын дұрыс болжауға тікелей байланысты және қасақана соқтығысуларға қарсы қорғаныш ұсынбайды. Сондықтан, басқа, формалды келісімдер де қолданылады.
ASCII-мен шектелген мәтін
ASCII және Unicode таңбалар жиынтығы осы мәселені шешу үшін, бөлігіштер ретінде қолданылатын баспаға шығарылмайтын таңбаларды ұсыну арқылы құрастырылды. Бұл ASCII 28-ден 31-ге дейінгі диапазонды қамтиды. ASCII Ондық Сан Символ Unicode Атауы Қолданылуы 28 Ақпараттық бөлігіш Төрт файлдық бөлігіш Файлдың соңы. Немесе әр түрлі жеке файлдардың біріктірілуі. 29 Ақпараттық бөлігіш Үш топтық бөлігіш Деректер бөлімдері арасында. Қарапайым деректер файлдарында қажеттілігі жоқ. 30 Ақпараттық бөлігіш Екі жазбалық бөлігіш Жазбаның немесе қатардың соңы. ASCII 31 бірлік бөлігішін өріс бөлігіші ретінде және ASCII 30 жазба бөлігішін пайдалану мәтіндік дерек ағынында кездесетін өріс және жазба бөлігіштерінің мәселесін шешеді.
Екілік баға белгілеу белгілері
Қашу тізбектері мен қашу таңбаларынан өзгеше, екі дөңгелек шекаралағыш шекаралағыштардың қақтығысуын болдырмаудың тағы бір жолын ұсынады. Мысалы, кейбір тілдерде жол мәнін көрсету үшін бір (') немесе екі (") тырнақша қолдануға болады. Мысалы, Perl-де:
print 'Нэнси "Hello World!" деп көпшілікке айтты.';
қажетті нәтижені шығарады, бұл үшін қашу таңбаларын қолдану қажет емес. Алайда, бұл тәсіл тек жолда екі түрлі тырнақша болмаған жағдайда ғана жұмыс істейді.
Конфигурацияланатын альтернативті баға белгілеу белгілері
Екі шектеуіштен өзгеше, көптеген шектеуіштер шектеуіштердің қақтығысуын болдырмау үшін одан да икемді.
Мазмұнның шекарасы
Мазмұн шекарасы – шекаралардың қақтығысуын болдырмау үшін арнайы жасалған, ерекше түрдегі айырғыш. Ол авторға көп бөлімді хабарламаның бөліктері арасындағы шекараны анық көрсететін таңбалар тізбегін белгілеуге мүмкіндік береді, оның басқаша түсіндірілу мүмкіншілігі жоқ. Айырғыш көбінесе мазмұнда кездесуі статистикалық тұрғыдан екіталай болатын таңбалардың кездейсоқ тізбегінен жасалады. Бұған UUID, уақыт белгісі немесе басқа да ерекше белгі сияқты идентификациялық белгі қоса берілуі мүмкін. Балама ретінде, мәтінде айырғыш кездеспейтініне кепілдік беру үшін мазмұн сканерленуі мүмкін. Бұл айырғышты қысқартуға немесе оңайлатуға және құжатты адамдар оқуын жеңілдетуге мүмкіндік береді. (Мысалы, MIME, Here құжаттарына қараңыз).
Ақ өрістер немесе телімдер
Кейбір бағдарламалау және компьютер тілдері мәтіндегі тәуелсіз бөліктердің шекараларын анықтау үшін бос орынды айырғыштарды немесе кіріктіруді пайдалануға рұқсат етеді.