Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ нСбольшого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° длиною Π² Π΄Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ Π»Π΅Ρ‚ (ΠΎ BIRMA.NET Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΈ начистоту ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ€ΡƒΠΊ)

Π ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ идСю, ΠΏΠΎΡΠ΅Ρ‚ΠΈΠ²ΡˆΡƒΡŽ мСня Π³Π΄Π΅-Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ 2007 Π³ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ суТдСно Π±Ρ‹Π»ΠΎ обрСсти свой ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ лишь 12 Π»Π΅Ρ‚ спустя (Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ – ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, хотя ΠΈ тСкущая рСализация, ΠΏΠΎ мнСнию Π°Π²Ρ‚ΠΎΡ€Π°, вСсьма ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°).

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

Бпустя достаточно Π½Π΅ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я сразу ΠΆΠ΅ Π½Π°Ρ‡Π°Π» использовал Π² своСй повсСднСвной Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ отлаТивая Π΅Π³ΠΎ Π½Π° всСх ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠ½Π΅ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½Π° ΠΌΠΎΡ‘ΠΌ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС, Π³Π΄Π΅ я числился ΠΎΡ‚Π½ΡŽΠ΄ΡŒ Π½Π΅ программистом, ΠΌΠ½Π΅ Ρ‚ΠΎΠ³Π΄Π° Π΅Ρ‰Ρ‘ сходили с Ρ€ΡƒΠΊ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ «простои» Π² Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π° протяТСнии ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я усилСнно занимался ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ своСго Π΄Π΅Ρ‚ΠΈΡ‰Π° – практичСски нСмыслимоС Π΄Π΅Π»ΠΎ Π² Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΡ… рСалиях, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°ΠΆΠ΄ΠΎΠ΄Π½Π΅Π²Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹ ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Π·Π° дСнь Ρ€Π°Π±ΠΎΡ‚Π΅. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΡˆΠ»ΠΈΡ„ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ занял Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈ ΠΌΠ°Π»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π°, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈ послС этого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТно Π±Ρ‹Π»ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ – слишком ΡƒΠΆ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΌ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ Π²Ρ€Π°Π·ΡƒΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ: Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ; ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°ΡŽΡ‰ΠΈΠΉ просмотр элСмСнтов (для Ρ†Π΅Π»Π΅ΠΉ подстановки ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ поиска ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов); Π΄Π°ΠΆΠ΅ собствСнная ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ самобытный синтаксис). Надо ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎ этого я успСл нСсколько ΠΏΠΎΠ΄Π·Π°Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π»Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π° 8, Ссли Π½Π΅ большС), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ новая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΊ интСрСсной ΠΈ Π½ΡƒΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ всСцСло ΠΎΠ²Π»Π°Π΄Π΅Π»Π° ΠΌΠΎΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ исходный ΠΊΠΎΠ΄ – Π² отсутствиС с ΠΌΠΎΠ΅ΠΉ стороны ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ внятных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ – довольно быстро стал ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой Π½Π΅Π²ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠΌΡƒΡŽ ΠΌΠ΅ΡˆΠ°Π½ΠΈΠ½Ρƒ Ρ€Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π½Ρ‹Ρ… кусков Π½Π° языкС Π‘ΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ элСмСнтами Π‘ΠΈ++ ΠΈ аспСктами Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ систСму проСктирования, ΠΊΠ°ΠΊ Borland C++ Builder – β€œΠΏΠΎΡ‡Ρ‚ΠΈ Delphi, Π½ΠΎ Π½Π° Би”). Однако всё это Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² принСсло свои ΠΏΠ»ΠΎΠ΄Ρ‹ Π² Π΄Π΅Π»Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ повсСднСвной Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ нашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с этим я Ρ€Π΅ΡˆΠΈΠ» Π½Π° всякий случай ΠΏΡ€ΠΎΠΉΡ‚ΠΈ курсы ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ПО. НС знаю, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Ρ‚Π°ΠΌ Π½Π° самом Π΄Π΅Π»Π΅ с нуля Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Β«Π½Π° программиста», Π½ΠΎ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π²ΡˆΠΈΡ…ΡΡ Ρƒ мСня Π½Π° Ρ‚ΠΎ врСмя Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΠΊ C#, Visual Studio для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ .NET, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, относящихся ΠΊ Java, HTML ΠΈ SQL. Всё ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ заняло Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности Π΄Π²Π° Π³ΠΎΠ΄Π°, ΠΈ послуТило ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ для Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² Ρ€Π°ΡΡ‚ΡΠ½ΡƒΠ²ΡˆΠ΅Π³ΠΎΡΡ Π½Π° нСсколько Π»Π΅Ρ‚ – Π½ΠΎ это ΡƒΠΆΠ΅ Ρ‚Π΅ΠΌΠ° для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ умСстно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я сдСлал ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ имСвшиСся Ρƒ мСня Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎ описываСмому ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ для создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния Π½Π° C# ΠΈ WinForms, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² основу прСдстоящСго Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ данная идСя Π½Π°Ρ‡Π°Π»Π° ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΌΠ½Π΅ достойной Π±Ρ‹Ρ‚ΡŒ ΠΎΠ·Π²ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π° Ρ‚Π°ΠΊΠΈΡ… Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½Ρ‹Ρ… конфСрСнциях с участиСм прСдставитСлСй Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠ°ΠΊ Β«Π›Π˜Π‘ΠšΠžΠœΒ» ΠΈ «КРЫМ». ИдСя – Π΄Π°, Π½ΠΎ ΠΎΡ‚Π½ΡŽΠ΄ΡŒ Π½Π΅ моя Ρ‚ΠΎΠ³Π΄Π°ΡˆΠ½ΡΡ Π΅Ρ‘ рСализация. Π’ΠΎΠ³Π΄Π° Π΅Ρ‰Ρ‘ я надСялся Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Ρ‘ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, ΠΊ 2013 Π³ΠΎΠ΄Ρƒ я Ρ€Π΅ΡˆΠΈΠ»ΡΡ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΎ своСй ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠžΡ€Π³ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ с заявкой Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Π½Ρ‚Π° для участия Π² ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. К ΠΌΠΎΠ΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡŽ, моя заявка Π±Ρ‹Π»Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π°, ΠΈ я Π½Π°Ρ‡Π°Π» Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Π΅Π³ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ.

К Ρ‚ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½ΠΎΠ²ΠΎΠ΅ имя BIRMA, ΠΎΠ±Ρ€Ρ‘Π» Ρ€Π°Π·Π½Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅, сколько ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹Π΅) возмоТности – всС подробности ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΌΠΎΡ‘ΠΌ Π΄ΠΎΠΊΠ»Π°Π΄Π΅.

ΠŸΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒΡΡ чСстно, BIRMA ΠΎΠ±Ρ€Π°Π·Ρ†Π° 2013 Π³ΠΎΠ΄Π° слоТно Π±Ρ‹Π»ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ; ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎ говоря, ΠΎΠ½Π° прСдставляла собой Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ Π½Π° ΡΠΊΠΎΡ€ΡƒΡŽ Ρ€ΡƒΠΊΡƒ вСсьма Ρ…Π°Π»Ρ‚ΡƒΡ€Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΅Π»ΠΊΡƒ. По ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ части Π²ΠΎΠΎΠ±Ρ‰Π΅ практичСски Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… особых Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ, Π½Π΅ считая довольно Π±Π΅ΡΠΏΠΎΠΌΠΎΡ‰Π½ΡƒΡŽ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ создания Π½Π΅ΠΊΠΎΠ³ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ синтаксиса для парсСра, ΠΏΠΎ своСму Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ язык форматирования Π˜Π Π‘Π˜Π‘ 64 (Π° ΠΏΠΎ сути, Π΅Ρ‰Ρ‘ систСмы ISIS – с ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΌΠΈ скобочками Π² Ρ€ΠΎΠ»ΠΈ цикличСских структур; ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΌΠ½Π΅ казалось, Ρ‡Ρ‚ΠΎ это выглядит вСсьма ΠΊΡ€ΡƒΡ‚ΠΎ). БинтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π±Π΅Π·Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ спотыкался Π½Π° этих круговСртях ΠΈΠ· скобок ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π° (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки выполняли Ρ‚Π°ΠΌ ΠΆΠ΅ ΠΈ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Ρ€ΠΎΠ»ΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ – ΠΈΠΌΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΈΡΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ структуры Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ). ВсСх ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ с Ρ‚ΠΎΠ³Π΄Π°ΡˆΠ½ΠΈΠΌ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ прСдставимым, Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΌ синтаксисом BIRMA, я ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΎΡ‚ΡΡ‹Π»Π°ΡŽ ΠΊ своСму Π΄ΠΎΠΊΠ»Π°Π΄Ρƒ Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Ссли Π½Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΎΡ€ΡŒΠ±Ρ‹ с собствСнным синтаксичСским Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‚ΠΎ ΠΏΠΎ части ΠΊΠΎΠ΄Π° этой вСрсии ΠΌΠ½Π΅ большС ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈ Π½Π΅Ρ‡Π΅Π³ΠΎ – Ссли Π½Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π²ΡˆΠΈΡ…ΡΡ исходников Π½Π° Π‘ΠΈ++ с сохранСниСм Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Ρ‚ .NET-ΠΊΠΎΠ΄Π° (чСстно говоря, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ»ΠΎ мСня пСрСнСсти всё ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ – Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π΄ΡƒΡ€Π°Ρ†ΠΊΠΎΠ΅ опасСниС Π·Π° ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚Π°ΠΉΠ½Π΅ своих исходных ΠΊΠΎΠ΄ΠΎΠ², словно это Π±Ρ‹Π»ΠΎ Π½Π΅Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ сСкрСтному Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρƒ Coca-Cola).

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² этом Π΄ΡƒΡ€Π°Ρ†ΠΊΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ кроСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° слоТностСй Π² сопряТСнии ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅ΠΉΡΡ DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с имСвшимся интСрфСйсом самопального АРМа для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² элСктронный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π΄Π°, я ΠΆΠ΅ Π½Π΅ упомянул Π΅Ρ‰Ρ‘ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠΌ Ρ„Π°ΠΊΡ‚Π΅: ΠΎΡ‚Π½Ρ‹Π½Π΅ вСсь ΠΊΠΎΠ΄ Β«Π΄Π²ΠΈΠΆΠΊΠ°Β» BIRMA Π±Ρ‹Π», ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ, ΠΎΡ‚Π΄Π΅Π»Ρ‘Π½ ΠΎΡ‚ интСрфСйсной части ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ DLL). Π—Π°Ρ‡Π΅ΠΌ понадобилось ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ АРМ для этих Ρ†Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всё Ρ€Π°Π²Π½ΠΎ ΠΏΠΎ своСму Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ ΠΈ способу взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ бСспардонно ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π» Ρ‚ΠΎΡ‚ ΠΆΠ΅ АРМ Β«ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·Π°Ρ‚ΠΎΡ€Β» систСмы Π˜Π Π‘Π˜Π‘ 64 – это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ вопрос. Если Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅: ΠΎΠ½ ΠΏΡ€ΠΈΠ΄Π°Π²Π°Π» Π΄ΠΎΠ»ΠΆΠ½ΡƒΡŽ ΡΠΎΠ»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΈΠΌ Ρ‚ΠΎΠ³Π΄Π°ΡˆΠ½ΠΈΠΌ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌ для Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π° Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ лишь Π½Π΅ΡƒΠ΄ΠΎΠ±ΠΎΠ²Π°Ρ€ΠΈΠΌΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° парсСра Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΌΠ°Π»ΠΎΠ²Π°Ρ‚ΠΎ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я Ρ‚ΠΎΠ³Π΄Π° столкнулся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ трудностями ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сопряТСния АРМ Β«ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·Π°Ρ‚ΠΎΡ€Β» с собствСнными модулями, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Ρ‚ΠΎ Π½Π° C++, Ρ‡Ρ‚ΠΎ Π½Π° C#, ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΡƒΠΆΠ΅ нСпосрСдствСнно ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ Π΄Π²ΠΈΠΆΠΊΡƒ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΠΊΠ°ΠΊ это Π½ΠΈ странно, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ этому довольно Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡƒ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ BIRMA.NET ΠΈ суТдСно Π±Ρ‹Π»ΠΎ ΡΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠ΅ΠΉ Β«Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ лошадкой» Π΅Ρ‰Ρ‘ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³ΠΎΠ΄Π°. НСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ я Π½Π΅ пытался хотя Π±Ρ‹ Π½Π°Ρ‰ΡƒΠΏΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΠΈ для Π½ΠΎΠ²ΠΎΠΉ, ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ давнишнСй Π·Π°Π΄ΡƒΠΌΠΊΠΈ. Π’Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² числС ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ цикличСскиС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты – ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ я собирался Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΡ‚ΡŒ Π² Тизнь идСю ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… шаблонов для библиографичСского описания ΠΈΠ·Π΄Π°Π½ΠΈΠΉ ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрСсных Π²Π΅Ρ‰Π΅ΠΉ. Однако Π² ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΠ³Π΄Π°ΡˆΠ½Π΅ΠΉ практичСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всё это Π±Ρ‹Π»ΠΎ слабо вострСбовано, Π° для Π²Π²ΠΎΠ΄Π° ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠΉ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Ρƒ мСня Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π΅ΠΊΡ‚ΠΎΡ€ направлСния развития нашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π°Ρ‡Π°Π» всё большС ΡƒΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒΡΡ Π² сторону ΠΎΡ†ΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ ΠΌΡƒΠ·Π΅ΠΉΠ½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ², формирования отчётности ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… малоинтСрСсных для мСня занятий, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² ΠΈ заставило мСня ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Ρ‘ ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ, уступив своё мСсто Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ всё это Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π±ΠΎΠ»Π΅Π΅ приятно.

Как Π½ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΎΠΊΡΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ послС этих драматичСских событий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ BIRMA, Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΠΆΠ΅ обладавший всСми Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Ρ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ долгостроя, казалось, Π½Π°Ρ‡Π°Π» ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ свою Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½ΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ Тизнь! Π£ мСня появилось большС свободного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° досуТиС Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ, я снова принялся ΠΏΡ€ΠΎΡ‡Ρ‘ΡΡ‹Π²Π°Ρ‚ΡŒ Π’ΡΠ΅ΠΌΠΈΡ€Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Π² поисках Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ (Π±Π»Π°Π³ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я ΡƒΠΆΠ΅ ΠΌΠΎΠ³ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΈΡΠΊΠ°Ρ‚ΡŒ всё это Π½Π΅ Π³Π΄Π΅ ΠΏΠΎΠΏΠ°Π»ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° GitHubβ€˜Π΅), ΠΈ Π³Π΄Π΅-Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅Π³ΠΎ Π³ΠΎΠ΄Π° я Π½Π°ΠΊΠΎΠ½Π΅Ρ† натолкнулся Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ΄Π΅Π»ΠΊΡƒ нСбСзызвСстной ΠΊΠΎΠ½Ρ‚ΠΎΡ€Ρ‹ Salesforce ΠΏΠΎΠ΄ ΠΌΠ°Π»ΠΎΠ·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Gorp. Она ΡƒΠΆΠ΅ сама ΠΏΠΎ сСбС ΠΌΠΎΠ³Π»Π° Π΄Π΅Π»Π°Ρ‚ΡŒ практичСски всё, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ парсСрного Π΄Π²ΠΈΠΆΠΊΠ° – Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΏΠΎ-ΡƒΠΌΠ½ΠΎΠΌΡƒ Π²Ρ‹Ρ‡Π»Π΅Π½ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ структурой тСкста, ΠΏΡ€ΠΈ этом обладая довольно ΡƒΠ΄ΠΎΠ±ΠΎΠ²Π°Ρ€ΠΈΠΌΡ‹ΠΌ интСрфСйсом для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π°ΠΊΠΈΠ΅ понятныС сущности, ΠΊΠ°ΠΊ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, шаблон ΠΈ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΈ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ синтаксис рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, становящийся нСсравнСнно Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π² силу разбиСния Π½Π° ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ смысловыС Π³Ρ€ΡƒΠΏΠΏΡ‹ для Ρ€Π°Π·Π±ΠΎΡ€Π°.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, я Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ этот самый Gorp (интСрСсно, Ρ‡Ρ‚ΠΎ сиё Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚? Π‘Ρ‹Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Β«general oriented regular parserΒ»?) – ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Π΄Π°Π²Π½ΠΎ ΠΈ искал. ΠŸΡ€Π°Π²Π΄Π°, Π΅Π³ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ для ΠΌΠΎΠΈΡ… собствСнных Π½ΡƒΠΆΠ΄ ΠΈΠΌΠ΅Π»ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» слишком Π½Π΅ΡƒΠΊΠΎΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ соблюдСния структурной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ исходного тСкста. Для ΠΊΠ°ΠΊΠΈΡ…-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° log-Ρ„Π°ΠΉΠ»ΠΎΠ² (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π² качСствС наглядных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°) это Π²ΠΏΠΎΠ»Π½Π΅ сгодится, Π° Π²ΠΎΡ‚ для Ρ‚Π΅Ρ… ΠΆΠ΅ тСкстов отсканированных ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠΉ – ΡƒΠΆΠ΅ вряд Π»ΠΈ. Π’Π΅Π΄ΡŒ Ρ‚Π° ΠΆΠ΅ самая страничка с ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ со слова «ОглавлСниС», Β«Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅Β» ΠΈ Π΅Ρ‰Ρ‘ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡŽΡ‰ΠΈΡ… описаний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ совсСм Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° (Π° ΠΎΡ‚ΡΠ΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ элСмСнтами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ имя Π°Π²Ρ‚ΠΎΡ€Π°, Π·Π°Π³Π»Π°Π²ΠΈΠ΅ ΠΈ Π½ΠΎΠΌΠ΅Ρ€ страницы, Π½Π° страницС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство мусора (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, рисунки, Π΄Π° ΠΈ просто случайныС Π·Π½Π°ΠΊΠΈ), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚ΡΠ΅ΠΊΠ°Ρ‚ΡŒ. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, послСдний аспСкт Π±Ρ‹Π» Π΅Ρ‰Ρ‘ Π½Π΅ Ρ‚Π°ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½, Π° Π²ΠΎΡ‚ Π² силу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ рСализация Π½Π΅ ΠΌΠΎΠ³Π»Π° Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры Π² тСкстС с ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ мСста, Π° вмСсто этого просто ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π° Π΅Π³ΠΎ с самого Π½Π°Ρ‡Π°Π»Π°, Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π° Ρ‚Π°ΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… шаблонов и… ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»Π° свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°, позволившая Π±Ρ‹ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ структурами, ΠΈ это заставило мСня вновь Π·Π°ΡΠ΅ΡΡ‚ΡŒ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Java, Π° я, Ссли ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π» Π² дальнСйшСм Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ срСдства сопряТСния Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ с ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ прилоТСниями для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π±Π°Π·Ρ‹ (Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ирбисовский Β«ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·Π°Ρ‚ΠΎΡ€Β»), Ρ‚ΠΎ ΡƒΠΆ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° C# ΠΈ .NET. НС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Java сам ΠΏΠΎ сСбС Π±Ρ‹Π» ΠΏΠ»ΠΎΡ…ΠΎΠΉ язык – ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ я Π΄Π°ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Ρ‘ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» нСбСзынтСрСсноС ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» отСчСствСнного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°). Π”Π° ΠΈ ΠΏΠΎ синтаксису ΠΎΠ½ вСсьма схоТ с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π‘ΠΈ-ΡˆΠ°Ρ€ΠΏΠΎΠΌ. Π§Ρ‚ΠΎ ΠΆ, это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ плюс: Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ ΠΌΠ½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Однако ΠΌΠ½Π΅ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ вновь ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π² этот довольно Π½Π΅ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠΈΡ€ ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… (Π²Π΅Ρ€Π½Π΅Π΅, дСсктопных) Java-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ – Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², сам язык Π½Π΅ Π±Ρ‹Π» Β«Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Β» Π½Π° Ρ‚Π°ΠΊΠΎΠ΅ использованиС, Π° я вовсС Π½Π΅ ΠΆΠ°ΠΆΠ΄Π°Π» повторСния ΠΏΡ€Π΅ΠΆΠ½Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ C# Π² связкС с WinForms Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ Delphi, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½ΡƒΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ нашлось довольно быстро – Π² Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° IKVM.NET, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Java Π² управляСмый ΠΊΠΎΠ΄ .NET. ΠŸΡ€Π°Π²Π΄Π°, сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΡƒΠΆΠ΅ Π±Ρ‹Π» Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ послСдняя рСализация ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΌΠ½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ дСйствия для исходных тСкстов Gorp.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я внёс всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ скомпоновал это всё Π² DLL ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³Π»ΠΈ Β«ΠΏΠΎΠ΄Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒΒ» Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для .NET Framework, создаваСмыС Π² Visual Studio. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Π΅Π»ΠΎΠΌ я создал Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ прослойку для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ прСдставлСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Gorp, Π² Π²ΠΈΠ΄Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии (ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ бСря Π·Π° основу ΠΊΠ°ΠΊ строки, Ρ‚Π°ΠΊ ΠΈ столбцы; ΠΊΠ°ΠΊ словарныС ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚Π°ΠΊ ΠΈ числСнныС индСксы). Ну, Π° сами Π½ΡƒΠΆΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ отобраТСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² написались ΡƒΠΆΠ΅ довольно быстро.

Π’Π°ΠΊ ΠΆΠ΅ особых ослоТнСний Π½Π΅ Π²Ρ‹Π·Π²Π°Π» ΠΈ процСсс Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ шаблонов для Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° с Ρ†Π΅Π»ΡŒΡŽ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ отсканированных тСкстов ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠΉ. По сути, ΠΌΠ½Π΅ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ своим ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°ΠΌ: я просто создал всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ с нуля. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ вСрсиСй систСмы, Π·Π°Π΄Π°Π²Π°Π»ΠΈ достаточно ΡƒΠ·ΠΊΠΈΠ΅ Ρ€Π°ΠΌΠΊΠΈ для тСкстов, ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·Π±ΠΎΡ€Ρƒ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΡƒΠΆΠ΅ позволял Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ достаточно ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, подходящиС для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ сразу. Π― Π΄Π°ΠΆΠ΅ попытался Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΉ шаблон для любого ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСкста оглавлСния, хотя, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ всСх ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ для мСня Π½ΠΎΠ²Ρ‹Ρ… возмоТностях, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ…, Π² частности, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всё Ρ‚Π΅Ρ… ΠΆΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ (Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ подряд), это оказалось ΡƒΡ‚ΠΎΠΏΠΈΠ΅ΠΉ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² дальнСйшСм ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΌΠ΅Ρ‚Π°ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ смогут ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ исходный тСкст Π½Π° соотвСтствиС сразу нСскольким ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ шаблонов, Π° Π·Π°Ρ‚Π΅ΠΌ Π² соотвСтствии с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ. Но мСня сСйчас большС Π²ΠΎΠ»Π½ΠΎΠ²Π°Π» Π΄Ρ€ΡƒΠ³ΠΎΠΉ вопрос. Π’Π°ΠΊΠΎΠΉ парсСр, ΠΊΠ°ΠΊ Gorp, нСсмотря Π½Π° всю свою ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ внСсённыС мною ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±Ρ‹Π» ΠΏΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ своСй Π½Π΅ способСн Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ, казалось Π±Ρ‹, ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΉ собствСнноручно написанный парсСр ΡƒΠΌΠ΅Π» Π΄Π΅Π»Π°Ρ‚ΡŒ с самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии. А ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π» ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· исходного тСкста всС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ шаблона Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС маской, ΠΏΡ€ΠΈ этом ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡΡΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ тСкст содСрТит Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π”ΠΎ сих ΠΏΠΎΡ€ я лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π» Π½ΠΎΠ²Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, позволяя Π΅ΠΌΡƒ ΠΈΡΠΊΠ°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π°ΠΊΠΈΡ… масок с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, оставляя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для наличия Π² тСкстС ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΡƒΡ‡Ρ‚Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… символов, Π·Π°ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ структурами. Однако это Π½Π΅ Π΄Π°Π²Π°Π»ΠΎ возмоТности Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ маску нСзависимо ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΅ΠΌΡƒ маскС: ΡΡ‚Ρ€ΠΎΠ³ΠΎΡΡ‚ΡŒ описываСмой структуры тСкста ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ оставляла мСста для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ нСрСгулярных символов.

И Ссли для ΠΏΠΎΠΏΠ°Π΄Π°Π²ΡˆΠΈΡ…ΡΡ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠΉ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΅Ρ‰Ρ‘ Π½Π΅ казалась Ρ‚Π°ΠΊΠΎΠΉ ΡƒΠΆ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠΉ, Ρ‚ΠΎ Π²ΠΎΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ примСнСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΊ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ ΠΏΠΎ своСй сути Π·Π°Π΄Π°Ρ‡Π΅ ΠΏΠΎ Ρ€Π°Π·Π±ΠΎΡ€Ρƒ содСрТимого Π²Π΅Π±-сайта (Ρ‚.Π΅. Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ самому парсингу), Π΅Π³ΠΎ ограничСния Ρ‚ΡƒΡ‚ ΠΆΠ΅ прСдстали со всСй своСй ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ. Π’Π΅Π΄ΡŒ довольно просто Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ маски для Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Π΅Π±-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ искомыС Π½Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Π΅ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ), Π½ΠΎ ΠΊΠ°ΠΊ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ парсСр сразу ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ, нСвзирая Π½Π° всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ тэги ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ HTML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ?

НСмного ΠΏΠΎΠ΄ΡƒΠΌΠ°Π², я Ρ€Π΅ΡˆΠΈΠ» ввСсти ΠΏΠ°Ρ€Ρƒ слуТСбных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² (%all_before) ΠΈ (%all_after), слуТащих ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ обСспСчСния пропусков всСго Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² исходном тСкстС Π΄ΠΎ любого ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Π½ΠΈΠΌΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° (маски). ΠŸΡ€ΠΈ этом Ссли (%all_before) просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π» всС эти ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‚ΠΎ (%all_after), Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², позволял Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ искомому Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°. Π—Π²ΡƒΡ‡ΠΈΡ‚ довольно просто, Π½ΠΎ Π²ΠΎΡ‚ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ снова Β«ΠΏΡ€ΠΎΡ‡Π΅ΡΠ°Ρ‚ΡŒΒ» gorpβ€˜ΠΎΠ²ΡΠΊΠΈΠ΅ исходники для внСсСния Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΏΠΎΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² это ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ (хотя Π΄Π°ΠΆΠ΅ самая-самая пСрвая, ΠΏΡƒΡΡ‚ΡŒ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π³Π»ΡŽΡ‡Π½Π°Ρ рСализация ΠΌΠΎΠ΅Π³ΠΎ парсСра Π±Ρ‹Π»Π° написана ΠΈ Ρ‚ΠΎ быстрСС – Π·Π° ΠΏΠ°Ρ€Ρƒ нСдСль). ΠžΡ‚Π½Ρ‹Π½Π΅ систСма приняла ΠΏΠΎ-настоящСму ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ – спустя Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈ ΠΌΠ°Π»ΠΎ 12 Π»Π΅Ρ‚ послС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

РазумССтся, это Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΡ€Π΅Π΄Π΅Π» ΠΌΠ΅Ρ‡Ρ‚Π°Π½ΠΈΠΉ. МоТно Π΅Ρ‰Ρ‘ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ gorpβ€˜ΠΎΠ²ΡΠΊΠΈΡ… шаблонов Π½Π° C#, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ свободной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π― Π΄ΡƒΠΌΠ°ΡŽ, ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ этом Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒΡΡ, ΠΈ это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ наслСдия Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ исходников Π½Π° Java. Но ΠΈ с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ Π²ΠΈΠ΄ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ° Ρ‚ΠΎΠΆΠ΅ ΡƒΠΆΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ интСрСсныС Π²Π΅Ρ‰ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠΆΠ΅ упомянутых ΠΌΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚Π°ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½Π΅ говоря ΠΎ парсингС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… со всСвозмоТных Π²Π΅Π±-сайтов (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ спСциализированныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСдства подходят для этого большС – просто Ρƒ мСня Π΅Ρ‰Ρ‘ Π½Π΅ Π±Ρ‹Π»ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° ΠΈΡ… использования).

ΠšΡΡ‚Π°Ρ‚ΠΈ, этим Π»Π΅Ρ‚ΠΎΠΌ я ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π» ΠΏΠΎ своСй элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Salesforce (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Gorp), ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС – для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π ΠΈΠ³Π΅. К соТалСнию, Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ я Π½Π΅ Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ пСрСдислокациям.

Если Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ интСрСс, Ρ‚ΠΎ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ составлСния ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° шаблонов Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Salesforce Gorp (ΠΌΠΎΠΈ собствСнныС добавлСния, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Ρ‹ ΡƒΠΆΠ΅ описанных слуТСбных слов, практичСски Π½Π΅ вносят ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² сам синтаксис шаблонов, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ практичСски вся докумСнтация для ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ систСмы Gorp ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ для ΠΌΠΎΠ΅ΠΉ вСрсии).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com