Π Π°Π±ΠΎΡ‚Π° с тСкстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто ставит Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ форматирования Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ «новая строка» Π² контСкстС этой систСмы Π½Π΅ являСтся Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ зависит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‚ΠΈΠΏΠ° Π²Ρ‹Π²ΠΎΠ΄Π° (Ρ„Π°ΠΉΠ», экран, пСчатная Ρ„ΠΎΡ€ΠΌΠ°) ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сцСнария использования. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ слитным, Π° Ρ„Π°ΠΉΠ» Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ станСт Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ для сторонних систСм.

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

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим всС доступныС константы, ΠΈΡ… физичСский смысл ΠΈ области примСнСния. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² ΠΎΠ΄Π½ΠΈΡ… случаях Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… β€” Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš, ΠΈ ΠΊΠ°ΠΊ это влияСт Π½Π° ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ вашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ вопросы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ многострочных констант ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π°.

АрхитСктура тСкстовых Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом Π² 1Π‘ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹. Он прСдоставляСт доступ ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Для создания Π½ΠΎΠ²ΠΎΠΉ строки Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ основныС константы, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ своС историчСскоС ΠΈ тСхничСскоС обоснованиС. ПониманиС ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с тСкстовыми ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ самый распространСнный символ β€” это Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ (ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ). Он соотвСтствуСт символу Line Feed (LF, ΠΊΠΎΠ΄ 10). Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Linux ΠΈ macOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘, ΠΈΠΌΠ΅Π½Π½ΠΎ этот символ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† строки. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» этот символ заставляСт курсор ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ символ β€” Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš (Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠšΠ°Ρ€Π΅Ρ‚ΠΊΠΈ). Он соотвСтствуСт символу Carriage Return (CR, ΠΊΠΎΠ΄ 13). Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ этот символ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰ΡƒΡŽ Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ Π² Π½Π°Ρ‡Π°Π»ΠΎ строки, Π½Π΅ пСрСводя Π±ΡƒΠΌΠ°Π³Ρƒ Π²Π²Π΅Ρ€Ρ…. Π’ срСдС Windows для обозначСния ΠΊΠΎΠ½Ρ†Π° строки Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ связка CR+LF. Однако Π² самой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ использованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš Π±Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ПБ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ тСкст просто пСрСзаписываСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку Π² консольном Π²Ρ‹Π²ΠΎΠ΄Π΅.

πŸ’‘

Для максимальной совмСстимости ΠΏΡ€ΠΈ экспортС Π΄Π°Π½Π½Ρ‹Ρ… Π² Windows-срСды (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Excel ΠΈΠ»ΠΈ Notepad) рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, хотя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° часто Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски ΠΏΡ€ΠΈ записи Π² Ρ„Π°ΠΉΠ»Ρ‹.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.НП (Новая ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ). Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ абстрактный символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Π½ΠΎΠ²ΠΎΠΉ строки с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… настроСк окруТСния. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ΄Π° 1Π‘ ΠΎΠ½ Π²Π΅Π΄Π΅Ρ‚ сСбя Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ПБ, Π½ΠΎ Π΅Π³ΠΎ использованиС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС сСрвСра ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅

НаиболСС частая ситуация, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сталкиваСтся программист 1Π‘ β€” это Π²Ρ‹Π²ΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ΠŸΡ€ΠΈ использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ записи Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ тСкста Π½Π° строки Π΄Π΅Π»Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Π‘Π΅Π· явного указания Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ всС сообщСния ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΠΈΠΏΠ½ΡƒΡ‚ΡŒΡΡ Π² ΠΎΠ΄ΠΈΠ½ сплошной тСкст, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ поиск ошибки.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ формирования многострочного сообщСния ΠΎΠ± ошибкС. Если Π²Ρ‹ просто ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ строки, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ подряд. Для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ раздСлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ тСкста ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π³Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ сбоя Π² Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅.

  • πŸ“ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ для раздСлСния ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π² спискС ошибок Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сообщСния.
  • πŸ›  ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для открытия Π² Windows.
  • πŸ‘ Для Π²Ρ‹Π²ΠΎΠ΄Π° Π² консоль ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ (ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ’Ρ‹Π²ΠΎΠ΄Π°) достаточно ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эмулятор Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ LF.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° многострочного тСкста Π² Ρ„ΠΎΡ€ΠΌΠ΅ (Ρ‚ΠΈΠΏ ΠŸΠΎΠ»Π΅Π€ΠΎΡ€ΠΌΡ‹ с свойством ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉΠ Π΅ΠΆΠΈΠΌ), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ctrl+Enter для Π²Π²ΠΎΠ΄Π° Π½ΠΎΠ²ΠΎΠΉ строки. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ это Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ символ Π½ΠΎΠ²ΠΎΠΉ строки. Однако ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ поля ΠΈΠ· ΠΊΠΎΠ΄Π° Π²Ρ‹ обязаны сами Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ, ΠΈΠ½Π°Ρ‡Π΅ тСкст отобразится Π² ΠΎΠ΄Π½Ρƒ строку с Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ символами табуляции ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

πŸ“Š Какой символ Π½ΠΎΠ²ΠΎΠΉ строки Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.НП
Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Char(10)

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ внСшними систСмами

ΠŸΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с внСшними систСмами вопрос ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ строк становится критичСским. Π€Π°ΠΉΠ»Ρ‹, создаваСмыС Π² 1Π‘, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ…: ΠΎΡ‚ стандартного Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚Π° Windows Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… IDE Π²Ρ€ΠΎΠ΄Π΅ VS Code ΠΈΠ»ΠΈ Notepad++. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°ΠΉΡ‚ для ΠΊΠΎΠ½Ρ†Π° строки ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ вСсь Ρ„Π°ΠΉΠ» откроСтся ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° бСсконСчная строка.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌ Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² экосистСмС Windows являСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 0D 0A (CR+LF). Если Π²Ρ‹ записываСтС Ρ„Π°ΠΉΠ» Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π°, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Однако, Ссли Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ строку Π² памяти, Π° Π·Π°Ρ‚Π΅ΠΌ записываСтС Π΅Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ куском, ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ CSV ΠΈ XML. Π’ CSV-Ρ„Π°ΠΉΠ»Π°Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ строк строго Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ спСцификациСй, ΠΈ использованиС Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ символа ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π² Excel ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ систСму. Π’ XML новая строка Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкстового ΡƒΠ·Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ экранирована ΠΈΠ»ΠΈ прСдставлСна допустимым символом, ΠΈΠ½Π°Ρ‡Π΅ парсСр ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², созданных Π² Linux-срСдС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… с сСрвСра 1Π‘ ΠΏΠΎΠ΄ Linux), Π² Windows-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² строк, Ссли Ρ„Π°ΠΉΠ» открываСтся ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° строка. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ LF (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ), Π° старый Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ Windows ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ CR+LF. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ соврСмСнныС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».

Для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ кроссплатформСнности ΠΏΡ€ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ² Π»ΡƒΡ‡ΡˆΠ΅ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов. Π­Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° скрипт, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° сСрвСрС Linux, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ пытаСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с Windows. Π―Π²Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ структурой Ρ„Π°ΠΉΠ»Π° β€” ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ качСствСнного программирования.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹

Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ (Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠžΠ±Π»Π°ΡΡ‚ΡŒΠœΠ°ΠΊΠ΅Ρ‚Π°) ΠΈΠΌΠ΅Π΅Ρ‚ свою спСцифику. Π’ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ понятиС «новая строка» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… дСйствия: ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π½ΠΎΠ²ΠΎΠΉ строкС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ячСйки ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π½ΠΎΠ²ΠΎΠΉ строкС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΈ дСйствия ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΈ Π½Π΅ всСгда взаимозамСняСмы.

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ многострочный тСкст Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ячСйки ΠΌΠ°ΠΊΠ΅Ρ‚Π°, использованиС Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ячСйки часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ тСкст просто пСрСносится Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ высота строки ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ измСняСтся автоматичСски. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свойство АвтоВысотаБтроки ΠΈΠ»ΠΈ явно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ высотой. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС тСкст ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π΅Π·Π°Π½.

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π³Π΄Π΅ структура строк динамичСская, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(). Однако, Ссли трСбуСтся Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π² строки Π²Π½ΡƒΡ‚Ρ€ΠΈ значСния ячСйки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² адрСсС: Β«Π³. Москва, <новая строка> ΡƒΠ». Π›Π΅Π½ΠΈΠ½Π°Β»), Ρ‚ΠΎ вставка Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ являСтся СдинствСнным Π²Π΅Ρ€Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ отрисуСт этот символ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π² интСрфСйс.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ использования Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ символ ОписаниС повСдСния
Π’Ρ‹Π²ΠΎΠ΄ Π² ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ’Ρ‹Π²ΠΎΠ΄Π° Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку Π² ΠΎΠΊΠ½Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.
Π—Π°ΠΏΠΈΡΡŒ Π² тСкстовый Ρ„Π°ΠΉΠ» (Windows) Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π² Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΈ Excel.
ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ тСкст Π² нСсколько строк Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнта Ρ„ΠΎΡ€ΠΌΡ‹.
Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ HTML <br> Π’ HTML-контСкстС символы 1Π‘ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π½ΡƒΠΆΠ΅Π½ Ρ‚Π΅Π³ br.

Π‘Ρ‚ΠΎΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΠ’ΠΎΠΏΡ€ΠΎΡ. Π’ этих ΠΎΠΊΠ½Π°Ρ… тСкст Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. ИспользованиС Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ позволяСт ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ тСкст прСдупрСТдСния, дСлая Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию «простыни» тСкста, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² HTML Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ?

Π’ языкС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ HTML ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ строки, ΡΡ…Π»ΠΎΠΏΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΏΡ€ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ пСрСноса строки Π² HTML Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π³
ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Π² Ρ‚Π΅Π³ΠΈ

ΠΈΠ»ΠΈ . Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ HTML-строку Π² 1Π‘ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° Π²Π΅Π±-страницу, Π·Π°ΠΌΠ΅Π½Π° Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ Π½Π°
β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ очистка тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ обратная Π·Π°Π΄Π°Ρ‡Π°: Π½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку, Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ лишниС Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ ΠΈΠ»ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкст, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΈΠ· внСшнСй систСмы. ВходящиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ «мусорныС» символы, ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ стили пСрСноса (Π³Π΄Π΅-Ρ‚ΠΎ LF, Π³Π΄Π΅-Ρ‚ΠΎ CR+LF), Ρ‡Ρ‚ΠΎ услоТняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ сравнСниС строк.

Для очистки тСкста ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… пСрСносов строк ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, привСдя тСкст ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ стандарту. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дублирования пустых строк ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Π’Π°ΠΊΠΆΠ΅ сущСствуСт Π·Π°Π΄Π°Ρ‡Π° опрСдСлСния количСства строк Π² тСкстовой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, подсчитав количСство Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ (Ссли тСкст Π½Π΅ пуст). Вакая ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» адрСс Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 5 строк.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БтрЧислоБтрок (Ссли ΠΎΠ½Π° доступна Π² вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ пустая строка Π² ΠΊΠΎΠ½Ρ†Π΅ тСкста послС послСднСго символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° подсчСта. ВсСгда провСряйтС Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” это Ρ€Π°Π±ΠΎΡ‚Π° с Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π°. ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ тСкста ΠΈΠ· 1Π‘ Π² Excel ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, символы Π½ΠΎΠ²ΠΎΠΉ строки ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Excel воспринимаСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки Π²Π½ΡƒΡ‚Ρ€ΠΈ ячСйки ΠΊΠ°ΠΊ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ. Если Π²Ρ‹ вставляСтС тСкст ΠΈΠ· 1Π‘, содСрТащий Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, Π² ΠΎΠ΄Π½Ρƒ ячСйку Excel ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ссли это Π½Π΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.

БпСцифичСскиС сцСнарии ΠΈ Ρ€Π΅Π΄ΠΊΠΈΠ΅ случаи

Π’ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° 1Π‘ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ситуации, выходящиС Π·Π° Ρ€Π°ΠΌΠΊΠΈ стандартного использования тСкстовых ΠΏΠΎΠ»Π΅ΠΉ. НапримСр, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ для ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, гСнСрация скриптов для PowerShell ΠΈΠ»ΠΈ Bash, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° payload для HTTP-запросов. Π’ этих случаях трСбования ΠΊ символам Π½ΠΎΠ²ΠΎΠΉ строки Π΄ΠΈΠΊΡ‚ΡƒΡŽΡ‚ΡΡ внСшнСй систСмой, Π° Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ 1Π‘.

ΠŸΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ bat-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ shell-скриптов ΠΈΠ· 1Π‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ строго ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ синтаксис Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ОБ. Для Windows-скриптов ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для Linux-скриптов достаточно Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ. Ошибка Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ скрипт Π½Π΅ выполнится ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅, выполнится Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, объСдинив Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΎΠ΄Π½Ρƒ.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠŸΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· HTTP-запросы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON ΠΈΠ»ΠΈ XML) символы Π½ΠΎΠ²ΠΎΠΉ строки Π²Π½ΡƒΡ‚Ρ€ΠΈ строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ экранирования. Π’ JSON новая строка прСдставляСтся ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ \n. Если Π²Ρ‹ просто вставитС Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ Π² строку JSON Π±Π΅Π· экранирования, парсСр Π½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ сторонС выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, символы Π½ΠΎΠ²ΠΎΠΉ строки β€” это просто Π±Π°ΠΉΡ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями (10 ΠΈ 13). ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Ρ‹Π²Ρ‹ строк, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚Π΅ Π±Π°ΠΉΡ‚Ρ‹ Π² строку с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ собствСнных парсСров Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².

πŸ’‘

ВсСгда явно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ символы Ρ€Π°Π·Ρ€Ρ‹Π²Π° строк ΠΏΡ€ΠΈ взаимодСйствии с внСшним ΠΌΠΈΡ€ΠΎΠΌ (Ρ„Π°ΠΉΠ»Ρ‹, HTTP, консоль). НС ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ зависят ΠΎΡ‚ ОБ сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.НП?

ЀизичСски Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ (8.3.x) эти константы часто ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠ΄ 10). Однако сСмантичСски Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.НП (Новая ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ) задумывался ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ абстрактноС понятиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это явный ΠΈ понятный Π°Π½Π°Π»ΠΎΠ³ LF.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ записи Π² Ρ„Π°ΠΉΠ» Ρ‡Π΅Ρ€Π΅Π· Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ символы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ?

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π° ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ() автоматичСски добавляСт Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ строк Π² ΠΊΠΎΠ½Π΅Ρ† записываСмой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ зависит ΠΎΡ‚ настроСк ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Если ΠΆΠ΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(), Ρ‚ΠΎ автоматичСского добавлСния Π½Π΅ происходит, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сами ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ пСрСнос строки Π² запросС ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

Π’ тСкстС запроса 1Π‘ (язык запросов) пСрСнос строки Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ синтаксичСского значСния для Π΄Π²ΠΈΠΆΠΊΠ° запросов, ΠΎΠ½ слуТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для удобства чтСния ΠΊΠΎΠ΄Π° программистом. Однако, Ссли Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ пСрСнос, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ с Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ прямо Π² тСкстС запроса.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Char(10) вмСсто Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ?

Π”Π°, функция Π‘ΠΈΠΌΠ²ΠΎΠ»(10) Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый символ, Ρ‡Ρ‚ΠΎ ΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ. Однако использованиС Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ константы Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ считаСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ (good practice), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ самодокумСнтируСмым ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π‘Ρ€Π°Π·Ρƒ понятно Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа, Π±Π΅Π· нСобходимости ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ASCII-ΠΊΠΎΠ΄ΠΎΠ².

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ "слиплись" строки послС Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· 1Π‘?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρ„Π°ΠΉΠ» Π±Ρ‹Π» записан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с использованиСм Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ (LF), Π° открываСтся Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π΅ΠΌ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ (CRLF). ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Notepad++, VS Code) ΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ½Ρ†ΠΎΠ² строк Π½Π° Windows (CRLF), Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² 1Π‘, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ²Π½ΡƒΡŽ вставку Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš ΠΏΠ΅Ρ€Π΅Π΄ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ.