Как правильно постить тексты в эхоконференции (формат постинга текстов sergey korowkin) (x) Copyleft, Marїnais, 11.04.2005 Если вы публикуете текст в эхоконференции, какое-то ко- личество читателей может захотеть сохранить его у себя, но не в виде сообщений в почтовой базе, а в виде нормального текстового файла, каким он был до помещения его вами в эхо- конференцию. Когда текст небольшой, сделать это несложно. Но по мере увеличения его размеров, задача обрастает трудностями в гео- метрической прогрессии. Мало сохранить все секции в файл ─ их надо ещё найти и состыковать в правильной последователь- ности, поскольку приходят они часто перемешанными. Также нужно удалить из них заголовки, элементы оформления и техни- ческие строки. Дело осложняется тем, что у разных людей это оформление совершенно разное, что сильно затрудняет какую- либо автоматическую обработку. А теперь представьте, что вам нужно так обработать целую книгу на несколько сотен кило- байт, пришедшую к вам в виде нескольких сотен же перемешан- ных секций, каждая из которых снабжена "бородой" из оформле- ния. 8-) Понятно, что приведение её в исходный нормальный вид ─ задача совсем не тривиальная. Сохранить же секции просто одну за другой в файл ─ значит получить нелепого уродца, в котором через каждые 3─4 экрана текст будет преры- ваться неуместной порцией почтовой белиберды. Словом, тот, кто хоть раз не только постил, но и пытался сам извлекать запощенное кем-то другим, до "посинения" подбирая секции и вырезая в редакторе технический мусор из получившегося, уже понял, о чём идёт речь... Если вы у в а ж а е т е тех, кто будет читать помеща- емый вами текст и захочет превратить его в нормальный файл, вы должны п о м о ч ь им в этом, снабдив текст технически- ми строками в специальном формате. Тогда задачу по извлече- нию текста из базы сообщений смогут взять на себя п р о г - р а м м ы , и она из муки сведётся к нажатию пары кнопок. Для корректной публикации текстов в эхоконференциях из- вестный программист sergey korowkin разработал в 1998 г. специальный формат, поддерживаемый, вчастности, программами UUE Wizard и FastPost/FastUUE. Эти программы обеспечивают как автоматическое извлечение пришедшего текста, так и пос- тинг его в эхоконференцию. При этом они полностью берут на себя все функции по дроблению/сборке секций и их оформлению. Однако, формат этот настолько прост, что даже не имея упомянутых программ, вы с а м и можете привести в соответ- ствие с ним отправляемые секции, добавив к каждой из них всего по 3 строки. Процедура по корректной подготовке текста к публикации следующая: 1. Подробите текст на части, примерно по 15К ─ как по- казывает опыт, такой размер обычно свободно пропускается большинством программного обеспечения сетей. Не забудьте за- менить в нём везде заглавную русскую букву "Н" на латинскую "H", иначе она неминуемо будет "съедена" программным обеспе- чением FTN, а ваш текст повреждён. Это распространённая ошибка, совершаемая многими по невнимательности и нередко приводящая к конфузам. :-) 2. В н а ч а л е каждой секции вставьте строку вида: textsection X of Y of file FILENAME где: X ─ номер данной секции; Y ─ общее количество секций; FILENAME ─ имя файла данного текста. Если текст состоит всего из одной секции, то X = Y = 1. Непосредственно з а н е й поместите ещё строку ви- да: textbegin.all ─ если это 1-я секция textbegin.section ─ если это прочие секции Эти строки указывают начало блока публикуемого текста. Всё, что находится до них, к тексту не относится, и там вы можете поместить предваряющие комментарии и всё остальное, что вам заблагорассудится. Извлечение секции начнётся только с этих строк. 3. В к о н ц е каждой секции вставьте строку вида: textend.all ─ если это последняя секция textend.section ─ если это прочие секции Эта строка обозначает конец блока публикуемого текста. Всё, что находится за ней, к тексту не относится, и точно так же будет пропущено при извлечении. Т.о. вы можете снабжать секции какими угодно коммента- риями в начале и в конце и даже вставлять ограниченные этими строками секции посреди своих писем ─ опираясь на эти строки программа аккуратно разыщет все секции в базе, в каком бы месте сообщения они ни находились, состыкует и отправит в готовый файл, подобно тому, как автоматически извлекается UUE-код, и ваш получатель будет избавлен от ненужных неу- добств и траты времени на ручную сборку. Собственно, на этом можно и закончить. Следуя 3 пунктам выше, вы можете приступать к постингу текстов, на порядок более ц и в и л и з о в а н н о м у , чем вы делали это раньше. Дальше, педантичности ради, следует упомянуть лишь ряд незначительных технических деталей. Стандарт sergey korowkin предусматривает ряд второсте- пенных строк между textsection и textbegin вида: textauthor имя автора textinfo какая-либо информация textstd версия стандарта (в данном случае 0.1) Вы можете придумать и какие-то свои аналогичные строки; программы, очевидно, их проигнорируют, но собственно нужны они больше не для программ, а для читателей. Стандарт также предусматривает инвалидацию ключевых по- следовательностей вышеперечисленных строк в самом тексте, если они там есть, чтобы извлекающая программа не приняла их по ошибке за настоящие. Т.е. если в самом вашем тексте встречаются строки, начинающиеся с последовательностей: begin section textbegin.all textbegin.section textend.all textend.section textsection \ их нужно заменить на: \begin \section \textbegin.all \textbegin.section \textend.all \textend.section \textsection \\ соответственно. Впрочем, как вы сами уже догадались, строки эти (за ис- ключением, разве, "begin" и "section" для текста на английс- ком) словами человеческого языка не являются и вероятность встретить их в обычном тексте близка к нулю, так что и с необходимостью думать об этом вы в реальной жизни, скорее всего, не столкнётесь. :-) Исключением явился только сам этот текст. Помещайте тексты в эхоконференции только в т а к о м виде. Имейте в виду, что простая вставка кусков текста в значительной мере с н и ж а е т ценность того, что вы за- постили т.к. "выдрать" его из базы сообщений для того, чтобы сохранить или передать кому-то другому, потом крайне сложно. Потрудившись чуть-чуть сами, вы сэкономите массу времени множеству других людей. Вот как выглядит реальный пример оформленного таким об- разом постинга текста, разбитого на 10 секций: textsection 1 of 10 of file navigator.txt textauthor Владимир Высоцкий textinfo пример оформления постинга текста textstd 0.1 textbegin.all Вот послал господь родителям сыночка; Люльку в лодку переделать велел: Мореплаватель родился ─ одиночка; Сам укачивал себя, сам болел. textend.section textsection 2 of 10 of file navigator.txt textbegin.section Не по году он мужал ─ по денёчку, ─ И уже из колыбели дерзал; К мореплаванью готовясь в одиночку, Из пелёнок паруса вырезал. textend.section textsection 3 of 10 of file navigator.txt textbegin.section Прямо по носу, глядите: То ли бочка, то ли яхта, то ли плот, то ли нет... Мореплаватель, простите, одиночка, Посылает вам салют и привет. textend.section textsection 4 of 10 of file navigator.txt textbegin.section Ой, ребята, не к добру проволочка. Сплюньте трижды все, кто на корабле: Мореплаватель на море, одиночка, ─ Вроде чёрного кота на земле. textend.section textsection 5 of 10 of file navigator.txt textbegin.section Вы откуда? Отвечайте нам и точка. Не могли же вы свалиться с небес. Мы слыхали, что какой-то одиночка, В треугольнике бермудском исчез. textend.section textsection 6 of 10 of file navigator.txt textbegin.section Это утка, это бред ─ всё до строчки. И простите, если резок и груб. Мореплаватели знают, одиночки, ─ Он совсем не треугольник, а куб. textend.section textsection 7 of 10 of file navigator.txt textbegin.section Вот добавил он в планктон кипяточку. Как орудует ─ хоть мал, да удал! Глядь, и есть деликатес в одиночку. А из нас таких никто не едал. textend.section textsection 8 of 10 of file navigator.txt textbegin.section Не искусственную ли оболочку Вы вокруг себя мой друг возвели? Мореплаванью, простите, в одиночку Наше общество предпочли. textend.section textsection 9 of 10 of file navigator.txt textbegin.section Он ответил: "Вы попали прямо в точку. Там, на суше, не пожать мне вам руки: В море плавая подолгу, в одиночку, Я по людям не скучал, моряки". textend.section textsection 10 of 10 of file navigator.txt textbegin.section Так поменьше им забот и отсрочек, И задорин на пути, и сучков! Жаль, что редко мы встречаем одиночек ─ Непохожих на других чудаков, Жаль, что редко мы встречаем одиночек ─ Славных малых, озорных чудаков. textend.all