Если вы публикуете текст в эхоконференции, какое–то количество читателей может захотеть сохранить его у себя, но не в виде сообщений в почтовой базе, а в виде нормального текстового файла, каким он был до помещения его вами в эхоконференцию.
Когда текст небольшой, сделать это несложно. Но по мере увеличения его размеров, задача обрастает трудностями в геометрической прогрессии. Мало сохранить все секции в файл их надо ещё найти и состыковать в правильной последовательности, поскольку приходят они часто перемешанными. Также нужно удалить из них заголовки, элементы оформления и технические строки. Дело осложняется тем, что у разных людей это оформление совершенно разное, что сильно затрудняет какуюлибо автоматическую обработку. А теперь представьте, что вам нужно так обработать целую книгу на несколько сотен килобайт, пришедшую к вам в виде нескольких сотен же перемешанных секций, каждая из которых снабжена «бородой» из оформления. 8-) Понятно, что приведение её в исходный нормальный вид — задача совсем не тривиальная. Сохранить же секции просто одну за другой в файл — значит получить нелепого уродца, в котором через каждые 3–4 экрана текст будет прерываться неуместной порцией почтовой белиберды. Словом, тот, кто хоть раз не только постил, но и пытался сам извлекать запощенное кем–то другим, до «посинения» подбирая секции и вырезая в редакторе технический мусор из получившегося, уже понял, о чём идёт речь...
Если вы у в а ж а е т е тех, кто будет читать помещаемый вами текст и захочет превратить его в нормальный файл, вы должны п о м о ч ь им в этом, снабдив текст техническими строками в специальном формате. Тогда задачу по извлечению текста из базы сообщений смогут взять на себя п р о г р а м м ы , и она из муки сведётся к нажатию пары кнопок.
Для корректной публикации текстов в эхоконференциях известный программист sergey korowkin разработал в 1998 г. специальный формат, поддерживаемый, вчастности, программами UUE Wizard и FastPost/FastUUE. Эти программы обеспечивают как автоматическое извлечение пришедшего текста, так и постинг его в эхоконференцию. При этом они полностью берут на себя все функции по дроблению/сборке секций и их оформлению.
Однако, формат этот настолько прост, что даже не имея упомянутых программ, вы с а м и можете привести в соответствие с ним отправляемые секции, добавив к каждой из них всего по 3 строки.
Процедура по корректной подготовке текста к публикации следующая:
1. Подробите текст на части, примерно по 13К — как показывает опыт, такой размер обычно свободно пропускается большинством программного обеспечения сетей. Не забудьте заменить в нём везде заглавную русскую букву "Н" на латинскую "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