R-Cite БАЗА БИБЛИОГРАФИЧЕСКИХ ССЫЛОК версия 1.1 Евгений Рудный (c) 1993, All rights reserved 119899, Москва Московский государственный университет Химический факультет e-mail RUDNYI@MCH.CHEM.MSU.SU Назначение: программа предоставляет пользователю удобный интерфейс для работы с литературными ссылками (ввод и редактирование ссылок, отбор интересующих ссылок из базы и их печать в необходимом формате). Главные черты: - переменный размер полей (вы можете вводить сколь угодно длинные комментарии, сколько угодно авторов в одной статье и т.д.) - на диске хранится только полезная информация (количество ненужных пробелов сведено к минимуму). Если у вас нет лишнего места на диске, то эта программа для вас. - быстрый поиск нужной ссылки Требования: программа работает под управлением СУБД Paradox (версия 3.5; может будет работать и с более ранними версиями, но я не пробовал) на IBM-совместимых персональных компьютерах, операционная система MS-DOS (годятся те компьютеры и те версии операционной системы, где работает Paradox). Требуется 640 Кб памяти, дополнительная память желательна. Чем более быстрый жесткий диск и чем больше памяти, тем быстрее будет работать R-Cite. БЛАГОДАРНОСТИ Написание данной программы было частично финансировано конкурсным центром по фундаментальному естествознанию при Санкт-Петербургском университете (грант N 2-93-10-60). ПРАВА И ОБЯЗАННОСТИ Я тщательно тестировал данную программу, но проверка ее работы на вашем компьютере лежит на вас. Если при этом что-то испортится, то я за это не отвечаю. СОДЕРЖАНИЕ 1. Введение 2. Быстрый старт 3. Технические детали 4. Перемещение по базе ссылок 5. Работа со всей базой: Database - Import, Export, MarkAll, UnmarkAll, Pack 6. Поиск нужных ссылок - Search (таблица Answer) 7. Редактирование и ввод - Edit 8. Печать - Print 9. Установка программы и список поставляемых файлов 10. Бесплатные советы 1. ВВЕДЕНИЕ Довольно большое время в научной работе отнимает работа с литературой. Причем речь идет не про творческую работу - само чтение статей, осмысление, продумывание и критический анализ прочитанного. Здесь вам не поможет никто. Никогда никакой компьютер не сможет за вас думать (по крайней мере, я на это очень сильно надеюсь). Речь пойдет про техническую и черновую работу - поддержку вашей картотеки. Довольно быстро, особенно в таких науках, как химия, накапливается более тысячи ссылок, которые кажутся полезными в текущей работе. Здесь помощь компьютера переоценить нельзя. Компьютер позволяет хранить ссылки на магнитных носителях. Основное преимущество - возможность после набора ссылки использовать ее неограниченное количество раз без перепечатывания во всех последующих статьях и диссертациях. Самое простое решение - это файл ссылок, набранный в вашем любимом редакторе. По мере необходимости вы просматриваете его (можно использовать команды поиска для быстрого передвижения), находите нужные ссылки и далее используете команды типа Duplicate и Paste, чтобы перенести их в вашу текущую статью. Однако, файл ссылок - это неплохое решение для сравнительного небольшого количества ссылок (скажем до 500) и, самое главное, когда ваши статьи содержат не слишком длинный список литературы. Представьте себе, в файле накопилась тысяча ссылок и вам нужно перенести сто из них в обзорную статью. Бьюсь об заклад, это потребует не менее дня тяжкой работы за компьютером (хотя это будет все равно быстрее, чем использование бумажных карточек). Можно предложить другое, более эффективное решение - использование специальной программы (базы ссылок). Компьютер сам по себе - достаточно бесполезное железо. Его главное преимущество, что на нем можно запустить самые разнообразные программы, которые и могут выполнить любые (ну, почти любые) ваши желания. Отличие базы ссылок от файла ссылок: - более удобный просмотр ссылок - более быстрый поиск нужных ссылок - существенно более быстрое (и более удобное) извлечение нужных ссылок для последующего переноса в статью. Если вернутся к примеру с выбором ста ссылок из тысячи для помещения их в обзор, то я думаю, что с помощью предлагаемой программы это можно сделать часа за два. Причем основное время уйдет именно на принятие решения - какие ссылки вам нужны, всю сопутствующую черновую работу сделает компьютер. Однако, любые удобства неизбежно сопровождаются недостатками. В данной ситуации это то, что база ссылок требует специальной программы, которая займет дополнительное место на диске, и сама база ссылок, в силу специфики реализации баз данных, занимает большее место на диске, чем просто текстовой файл ссылок. Но здесь уж ничего не попишешь, за удобства надо платить. Все, что можно попытаться сделать - это заплатить как можно меньше за максимум удобств. При работе на среднем компьютере основным ресурсом является место на диске. Поэтому была поставлена цель - минимизировать отношение количество символов во всех ссылках ___________________________________ занимаемое место базы на диске Для файла ссылок это отношение близко к единице. В предлагаемой базе ссылок мне удалось сделать это отношение близким к полутора. При этом, в R-Cite длина поля является переменной (время поиска не увеличивается!) - вы можете вводить сколь угодно длинные комментарии, названия статей и т.д. Я расцениваю это как неплохое достижение, поскольку мне удалось сделать это не выходя за рамки обычной реляционной базы данных (при использовании СУБД Paradox 3.5). Я предвижу здесь смешанную реакцию. Не специалист, возможно, вообще не увидит никаких достижений (полтора явно больше, чем один). Человек, уже работавший с dBase, FoxPro или Paradox, в первый момент может сказать - так не бывает. Поэтому в третьей главе описаны технические детали - изложения идеи, заложенной при создании R-Cite.Здесь будет много специальных терминов и если эта глава покажется вам непонятной, то не расстраивайтесь. Данная глава носит познавательный характер, и она не нужна для освоения самой программы. Для понимания программы достаточно просмотреть главу 2, где даны краткие сведения о R-Cite. Ответы на возникающие в процессе работы вопросы можно найти в главах 4-8, вопросы установки программы рассмотрены в главе 9 и в главе 10 даются советы, как более плодотворно использовать R-Cite. 2. БЫСТРЫЙ СТАРТ База ссылок содержит несколько таблиц: Ref - основная таблица; Answer - вспомогательная таблица, куда помещаются найденные ссылки; Lookup - таблица для формирования запроса на поиск нужных ссылок; KeyLu - таблица расшифровки ключей; Journals - таблица для облегчения ввода названия журналов. Таблица Answer создается только на время текущего сеанса работы, содержимое остальных таблиц постоянно хранится на диске. Все таблицы, за исключением Journals, поставляются пустыми. Базу ссылок лучше всего хранить в специальном текстовом формате (см. файлы-примеры EXAMPLE.*). В этом случе вы можете содержать несколько различных баз ссылок и вам удобнее будет делать запасные копии ваших данных. Помните - магнитные носители не вечны и если у вас нет backup копий, то ваша тяжелая дневная, или месячная, или даже годовая работа может просто пропасть. Для работы в R-Cite текстовые файлы импортируются в таблицу Ref. После работы содержимое таблицы Ref можно, а иногда нужно, экспортировать обратно в текстовые файлы. Команды в программе R-Cite, как правило, контекстно зависимы. F1 - подсказка. Обычно нажатие F1 приводит к появлению экрана подсказки. Однако если вы находитесь в поле Keys, то F1 приведет вас в таблицу KeyLu, а если в поле Source в режиме редактирования, то действия R-Cite будут еще более сложными (вы либо попадете в таблицу Journals, либо сокращенное название журнала будет заменено на полное). F10 - вызов меню. В зависимости от обстоятельств меню разные, а иногда меню может и не быть. Right, Left, Up, Down, Home, End, PgDn, PgUp, Tab, Shift+Tab - команды перемещения. В зависимости от режима работы перемещения будут разные. Enter - либо перейти к следующему полю, либо закончить режим редактирования поля. F3 - перейти из таблицы Ref в таблицу Answer. F4 - перейти из таблицы Answer в таблицу Ref. Ctrl+F - включить режим редактирования поля. В этом режиме работают команды Ctrl+Right и Ctrl+Left. m - пометить ссылку. u - убрать пометку ссылки. BackSpace - уничтожить последний симвом. Ctrl+Backspace - очистить все поле. Del - уничтожить ссылку, запись, символ. Ins - вставить пустую ссылку, запись. Ctrl+Z - быстрый поиск в данном поле. Alt+Z - продолжить быстрый поиск в данном поле. Ctrl+R - команда замены replace (только для зарегистрированных пользователей). Ctrl+D - запомнить текущее поле, Alt+D - вспомнить (только для зарегистрированных пользователей). Краткое описание команд основного меню. Database - вызов подменю Import - импортировать текстовые файлы в таблицу Ref. Export - экспортировать содержимое Ref в текстовые файлы. ClearBase - очистить таблицу Ref (не забудьте вначале выполнить команду Export). MarkAll - пометить все ссылки в Ref или Answer. UnmarkAll - убрать пометки со всех ссылок в Ref или Answer. Pack - оптимизировать размещение таблицы Ref на диске. Tune - настроить работу СУБД Paradox. Search - поиск нужных ссылок (они будут помещены в Answer). Edit - разрешить редактирование таблицы Ref или Answer. Нажатие F2 вернет вас в основной режим. Print - напечатать ссылки из таблицы Ref или Answer. GotoDOS - временный выход в DOS, вернуться - команда EXIT. ToParadox - закончить работу R-Cite и выйти в Paradox. Quit - закончить работу R-Cite. 3. ТЕХНИЧЕСКИЕ ДЕТАЛИ При использовании реляционных баз данных минимальной структурной единицей является запись (record). Запись состоит из отдельных полей (field), в которых размещается нужная информация. Так в предлагаемой базе ссылок выделены следующие поля: Index - номер ссылки Year - год выхода работы Flag - поле для пометки нужных ссылок Authors - авторы Institute - организация Name - название работы Source - источник публикации Abstract - комментарий Keys - поле ключей для систематизации ссылок Набор записей образует базу данных (таблицу в терминологии системы Paradox). К сожалению, эффективная техническая реализация требует достаточно серьезных ограничений: длина полей и длина записи в одной таблице должна быть постоянна во всех записях, длина поля ограничена (так в Paradox это 255 байт). В этом отношении термин таблица представляется очень удачным. Он образно показывает техническую реализацию. Преимущества таблицы - быстрый и эффективный поиск. Недостатки - мы должны заранее выбрать максимальный размер поля. К примеру, возьмем перечисленные поля. С первыми тремя полями особых проблем нет, без особых колебаний можно зарезервировать для номера ссылки 10 символов, для года - четыре, для флага - один. А что сделать со следующими шестью полями? В одной ссылке будет один автор, а в другой - все пятнадцать. К одной ссылке вовсе не нужен комментарий, в другой хочется иметь под рукой выписанный целый абзац. Пойдем по наиболее простому пути - выделим под эти поля максимально возможное количество символов в Paradox - 255 байт (1 байт = 1 символ). Тогда, длина всей записи будет составлять 7 + 4 + 1 + 6*255 = 1542 байта При этом: - данное место требовуется независимо от того, какое полезное количество символов будет введено (таковы правила игры); - длина поля все-таки ограничена (один абзац комментария может и не уложиться в 255 символов). В моей практике среднее количество всех символов в ссылке не превышает триста (много авторов, но зато короткое название; длинное название, но не требуется комментарий; много авторов, длинное название и длинный комментарий - такое встречаются, но крайне редко). Таким образом, если мы разделим 1542 на 300, то получим, что коэффициент бесполезного использования диска (определенный во введении) около пяти. Ваша база содержит тысячу ссылок - приготовьте 1.5 Мб на диске! А если вам нужно работать с десятью тысячями ссылок? Про это лучше не думать, имея в распоряжении средний винчестер (жеский диск, 20-40 Кб). Полезных программ, которые жизненно необходимы одновременно на диске, так много... Что же делать? Уменьшить максимальное количество символов в одном поле? Это путь к мучительным вопросам - куда деть не влезающего автора - и к полной компроментации компьютера как такового. Другой, более перспективный путь - перейти к объектно- ориентированным базам данных, где вроде бы появилась возможность переменной длины поля. Как говорят, это уже есть в Paradox 4.0. Не знаю, к сожалению, не видел. Но и здесь я предвижу проблемы. Как показывает практика, чтобы перейти на следующую версию Борландского продукта, лучше всего сменить компьютер, иначе мучения лишь увеличатся - возможности то есть, да как их съесть. Если у вас процессор 80286 (я не говорю уж про просто 8086), то, по-моему, надеяться на объектно- ориентированные базы данных просто бесмысслено. После ряда попыток я нашел следующее решение. Можно ввести переменную длину полей и, одновременно, существенно уменьшить занимаемое место на диске (доведя коэффициент бесполезснсти до полтора) в рамках сущестующих реляционных баз данных при усложнении структуры базы. Первое - разобьем одну ссылку по нескольким таблицам. Основная таблица (Ref) будет содержать три поля с фиксированной длиной Index, Year, Flag. Все оставшиеся поля, которые хочется сделать с переменной длины, поместим в отдельные таблицы. Рассмотрим их структуры на примере авторов. Отдельная таблица для авторов (Ath) будет содержать два поля - Index и Authors. Поле Index необходимо для сопряжения таблицы авторов с основной таблицей (Ref). Для одной ссылки индекс должен быть один и тот же. Поле авторов будет содержать сами фамилии. Что это дает? Предположим (только для примера), что какая-то статья не содержит авторов вообще. В этом случае в таблице авторов она будет просто отсутствовать. Видите - мы уже выиграли по сравнению со случаем, когда одна ссылка - это запись в одной таблице. А где же здесь переменная длина? Надо пойти дальше, и разрешить одной ссылке с большим количестом авторов занимать несколько записей в таблице авторов! Естественно, все эти записи будут иметь один индекс - уникальный индекс данной ссылки. Тогда осталось только одно - выбрать длину поля авторов в таблице авторов (которая согласно правилам должна быть фиксированной). После ряда экспериментов я остановился на 60 байтах. Менее короткое поле приведет к тому, что нам нужно будет больше строк на одну ссылку, и это приведет к некоторым потерям за счет увеличения количества раз повторения индекса ссылки (на каждую строку). Более длинное поле приводит к потерям за счет лишних пробелов. Аналогичная структура использована для таблиц, содержащих информацию об организации, названии, источнике, комментарии и ключей (таблицы Ins, Nam, Src, Abs, Key). В результате мы получаем, что одна ссылка будет раскидана по семи таблицам и место занимаемое ей будет равно Ref Ath Ins Nam Src 7 + 4 + 1 + i*(7 + 60) + j*(7 + 60) + k*(7 + 60) + l*(7 + 60) + Abs Key m*(7 + 60) + n*(7 + 60) где i, j, k, l, m, n - число строк занятых данной ссылкой в соответствующих таблицах (оно может быть равны нулю). Вот суть предлагаемого подхода, и он действительно позволяет существенно уменьшить занимаемое место на диске (тысяча ссылок должна уместиться в 500 Кб). Перефразируя пословицу - нет добра без худо. Так и здесь, выигрыш в пространстве приносит к нескольким проигрышам. Первое, для нормальное работы нужно сопрячь все эти семь таблиц в одну, чтобы при работе не думать, что, где и как хранится. Это и выполняет R-Cite, но, как уже говорилось, за пользование ею надо заплатить. Проигрыш, который здесь появляется - в скорости. Поскольку количество операций для работы с одной ссылкой увеличивается, то все это делается несколько медленнее. Конечный результат будет определяться ресурсами вашего компьютера. Конкретные советы, как улучшить работы системы, будут описаны в десятой главе. В общем, чем более быстрый жесткий диск и чем больше памяти, тем быстрее будет работать R-Cite. Второе, выигрыш в пространстве на диске появляется при общем количестве ссылок не меньше ста. Для этого есть две причины. Paradox устроен так, что пустая таблица занимает уже 8 Кб. Соответственно пустая база данных требует сама по себе около 70 Кб. С другой стороны, вначале есть некоторый проигрыш за счет повторения номера ссылки (i + j + k + l + m + n) раз. Третье, появляется некоторая сложность при поиске целых фраз. Предположим, вы хотите найти ссылки с фразой "определена энтальпия образования". Обычный поиск не найдет такую ссылку, если эти три слова оказались раскидаными по двум строкам в соответствующей таблице. Возможные выходы из данной ситуации будут обсуждены в пятой главе. Внимание! В дальнейшем я буду писать просто "таблица Ref", подразумевая под этим все семь таблиц, поскольку с точки зрения пользователя это все и будет выглядеть как одна таблица. При использовании R-Cite нет необходимости помнить про описанную сложную структуру базы. 4. ПЕРЕМЕЩЕНИЕ ПО БАЗЕ ССЫЛОК Если установка программы (см. глава 9) прошла успешно, то после команды paradox вы попадаете в базу ссылок. Вы видите следующий экран Ref table: 0 records View 0 collected records F1 - Help F10 - Menu ╔══════════════════════════════════════════════════════════════════════════╗ ║ Index: Year: Flag: Record: 1 ║ ║ Authors: ║ ║ ║ ║ ║ ║ Institute: ║ ║ Name: ║ ║ ║ ║ ║ ║ ║ ║ Source: ║ ║ ║ ║ ║ ║ Abstract: ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Keys: ║ ║ ║ ╚══════════════════════════════════════════════════════════════════════════╝ Верхние две строки показывают информацию о состоянии системы. Будем называть их информационными строками. Можно увидеть, что вы находите в базе под именем Ref (основная база) в режиме просмотра (View). Общее количество записей равное нулю - база поставляется пустой. Количество помеченных записей (collected) также равно нулю. Приводится напоминание о двух полезных командах: нажатие клавиши F1 выдаст подсказку, нажатие F10 покажет меню (чтобы отказаться от меню, нажмите Esc). Ниже идет место для самой ссылки. Можно увидеть девять полей Index, Year, Flag, Authors, Institute, Name, Source, Abstract, Keys. В правом верхнем углу показан физический номер записи. Вы никак не можете на него повлиять - в базе автоматически поддерживается динамическая нумерация записей. При этом все записи автоматически сортитуются по содержанию поля Index. Сам физический номер никак не связан с содержанием поля Index, который вы заполняете сами. Для того, чтобы заполнить базу у вас есть две возможности. Первая - это перейти в режим редактирования (F10 - Edit, см. главу 7) и начать вводить информацию. Вторая - это воспользоваться командой Import (F10 - Database - Import, см. главу 5). Для первоначального знакомства рекомендуем вам второй путь. Естественно, для использования этой команды вы должны уже иметь заранее подготовленные ASCII файлы, и чтобы облегчить вам знакомство с R-Cite в пакет включены файлы EXAMPLE.*. Итак, выполним следующие команды (посмотрите, чтобы на диске у вас было свободное место, как минимум 100 Кб): F10 - верхние две строки заменятся на меню Database - чтобы подать эту команду, просто нажмите Enter Import - опять просто нажмите Enter. Программа спросит вас имя ASCII файла - наберите txt\example (или другое имя, если при установки программы вы поместили файлы-примеры в другое место). После успешного завершения операции вы увидите в самой верхней строке общее число ссылок (20), число помеченных ссылок по-прежнему равно нулю, и на экран выведена ссылка с физическим номером 1 (верхний правый угол). Для перемещения по базе существуют следующие команды: PgDn - переход к ссылке со следующим физическим номером, PgUp - переход к ссылке с предыдущим физическим номером, Home - переход к ссылке с физическим номером 1, End - переход к последней ссылке в базе. Если база ссылок небольшая (сто-двести ссылок), то этих команд будет достаточно для просмотра базы. Во время просмотра базы вы можете помечать понравившиеся вам ссылки. Для этих целей служит поле Flag. Если Flag пустой, то ссылка считается непомеченной (исходное состояние), если же в поле Flag находится число, то ссылка считается помеченной. Существуют следующие команды (подать эти команды можно находясь в любом поле): m - пометить ссылку (нажатие этой клавиши приводит к появлению единицы в поле Flag), u - убрать отметку (поле Flag очистится), 0, ..., 9 - нажимая цифры можно дать ссылке произвольный номер (номер в списке литературы, который вы хотите приготовить), BkSp - убрать последнюю цифру в числе в поле Flag. Теперь давайте рассмотрим, как одна ссылка выглядит на экране дисплея. Место ссылки выделено удвоенной линией и в первой строке расположены три фиксированных поля Index, Year и Flag. Как уже говорилось, в правом верхнем углу показан физический номер ссылки. Разница между физическим номером и полем Index заключается в том, что поле Index заполняете вы - вы можете ввести любые десять символов. Физическим номером ссылки управляет компьютер, вы не имеете возможности непосредственно на него воздействовать. Ниже идут поля с переменной длиной Authors, Institute, Name, Source, Abstract и Keys. Каждое поле - это своеобразное окошко с фиксировнным количеством строк, в котором находится информация. Если йнформации немного, то вся она видна на экране. В противном случае, на экране дисплея будет видна только часть всего поля. Обратите внимание на цифры справа (0, 1, 2 и т.д.). Они нумеруют строки, занимаемые данноым полем. Перемещение по ссылке осуществляется следующими командами: Tab, Right, Down, Enter - переход к следующему полю ссылки, Shift+Tab, Left, Up - переход к предыдущему полю. При перемещении по ссылке, когда вы попадаете в поле переменной длины, и оно целиком помещается на экране - то курсор оказывается в последней строке данного поля. В противном случае, курсор будет помещен в первую строку данного поля, что подскажет вам, что еще существуют есть непоместившиеся строки. Комнада Field View (Ctrl+F) поможет вам просмотреть все строки длинного поля. После этой команды вы попадаете в специальный режим - просмотр поля. Обратите внимание, что информационные строки на экране дисплея сменились, например Abstract field: row 8 from 8 View F1 - Help Enter - finish чтобы напомнить вам о другом режиме работы. В режиме просмотра поля команды перемещения имеют другое значение: PgDn - окно вверх, PgUp - окно вниз, Home - переход на первую строку, End - переход на последнуюю строку, Tab, Right, Down - переход к следующей строке, Shift+Tab, Left, Up - переход к предыдущей строке. Для возврата в основной режим работы необходимо нажать клавишу Enter. Для работы с полем Keys предусмотрена еще одна команда - показать таблицу KeyLu, в которой можно хранить расшифровку значения ключей. Для этого просто нажмите F1. Более подробно про работу с таблицей KeyLu будет описано в главе 6. При нахождении в других полях команда F1 приведет к показу экрана с коротким описанием существующих команд. Поэтому не старайтесь запомнить все комнанды сразу, все равно это не возможно. Для более быстрого поиска нужной ссылки можно использовать команду Ctrl+Z. В этом случае вы должны ввести текст, который вы хотите найти, и компьютер начнет просматривать текущее поле во всех ссылках, начиная с физического номера 1 вне зависимости от того, в какой ссылке вы находитесь. Если будет найдена ссылка, в которой данное поле содержит требуемый текст, то вы окажетесь в ней. Чтобы продолжить поиск, нажмите Alt+Z. Вы попадете в следующую ссылку, которая содержит интересуемый ваш текст в данном поле. Итак, самый обычный сценарий работы будет заключаться в том, что вы входите в базу ссылок и помечаете те их них, которые вас интересуют. При этом вы можете воспользоваться более мощной, но и более сложной командной Search, (см. главу 6). В конце сеанса вы печатаете выбранные вами ссылки в необходимом формате (см. главу 8). Перед тем как проводить поиск, к сожалению, вам нужно создать базу ссылок. Для ввода и редактирования ссылок в R-Cite существует команда Edit (глава 7). Сейчас мы перейдем к рассмотрению набора команд Database, которые дают вам возожность совершать операции со всей базой. 5. РАБОТА СО ВСЕЙ БАЗОЙ: Database - Import, Export, ClearBase, MarkAll, UnmarkAll, Pack, Tune Главная задача, которая ставилась при написании R-Cite - это максимум комфорта при минимальном использовании места на диске. Для обсуждения этой проблемы начнем с небольших вычислений и размышлений. Оценим количество ссылок, с которыми вы активно работаете в тысячу. Однако, при этом наверняка общее количество ссылок, которые уже накопились (и копятся) существенно больше. Появление компьютерных баз данных приводит к тому, что набрать десяток тысяч записей, которые в большей или меньшей степени интересны - это уже не проблема. Проблема заключается в том, чтобы организовать их таким образом (деньги за поиск уже уплочены, платить еще раз не хочется), чтобы с ними было можно работать, при этом не просто работать, а удобно работать. Тем не менее, далеко не каждый сможет позволить себе хранить десять тысяч ссылок в базе данных одновременно, учитывая, что они нужны не каждый день. Как уже говорилось, при использовании предлагаемой программы среднее число символов на ссылку составляет 500. 1000 ссылок - это всего 500 Кб, однако 10000 ссылок - это уже 5 Мб. Наиболее естественное решение - разбиение всех ссылок на несколько отдельных баз и работа с ними по очереди. Такую возможность предоставляют вам комнанды Import и Export. Итак, вам предлагается хранить ссылки в текстовых файлах, имеющих специальных формат. Это облегчает создание запасных копий - вам нужно скопировать на запасную дискету и хранить всего семь файлов на одну базу ссылок, при этом можно работать с этими файлами и без программы R-Cite (см. главу 10). В любой момент вы можете импортировать содержание этих файлов из отдельной директории или с дискеты в таблицу Ref по команде Import, а затем перенести содержание таблицы Ref в текстовые файлы по команде Export. R-Cite работает с одной текущей базой ссылок (таблица Ref). База ссылок физически занимает семь таблиц (см. главу 3, файлы с расширением *.db). Соответственно, для ее хранения в текстовом формате используется семь файлов - эти файлы имеют одинаковое основное имя (его выбираете вы), но разные расширения (ref, ath, ins, nam, src, abs, key), которые совпадают с именами таблиц базы ссылок в Paradox. Такие файлы могут быть созданы при переносе данных из других баз данных (если вы зарегистрированный пользователь, то я помогу вам в этом деле), либо по команде Export. После подачи команды Import (F10 - Database - Import) программа предлагает вым выбор Overwrite или Append. В первом случае первоначальное содержимое таблицы Ref будет уничтожено (если вы еще не сохранили ее, то нажмие Esc и выполните сначала команду Export), во втором - содержимое новый базы будет присоеденено к предыдущей. Это полезно в том случае, когда вы хотите провести поиск сразу в нескольких базах ссылок. Правда скорее всего, для этого сперва будет нужно подчистить диск и освободить достаточно много места. Далее вам потребуется ввести основное имя ASCII-файлов (без расширения), которые содержат интересующие вас ссылки. Можно ввести имя целиком, указав путь (path в терминах MS-DOS), а можно ввести только имя директории, где находятся данные файлы. В последнем случае вам будет предложен список имеющихся файлов на выбор. После этого начинается сама операция импорта информации и по ее завершении вы можете начать вашу работу. Команда Export выполняет обратную операцию. После ввода базового имени (опять вначале вы можете ввести имя директории, и потом выбрать имя из имеющихся) текущее содержимое таблицы Ref переносится в в семь текстовых ASCII-файлов, различающихся расширениями. В дальнейшем данные ссылки могут быть загружены обратно в таблицу Ref по команде Import. Хранение ссылок вне R-Cite в текстовом виде вызвано двумя причинами. Первое - создаваемые файлы и есть то, что может быть названо файлом ссылок. Занимаемое ими место на диске меньше, чем файлами с расширением *.DB, используемые непосредственно Paradox. Второе - это все-таки обычные текстовый файлы и можно работать с ними без Paradox и R-Cite (любые текстовые редакторы, команды find, grep и т.д.). Единственно, что при редактировании этих файлов вне Paradox вы не должны нарушать их формат записи, иначе операция Import может завершиться неудачно. После операции Export, вы возможно захотите начать новую базу ссылок с самого начала. Для этого подайте комнанду ClearBase. Текущее содержимое таблицы Ref (файлов *.DB) будет уничтожено. Как уже отмечалось, во время выбора ссылок вы помечаете понравившиеся вам ссылки с использованием поля Flag. На этом пути, вам возможно будут полезны две команды Markall и Unmarkall. Первая пометит все ссылки, содержащиеся в базе (содержимое поля Flag у всех ссылок станет равно 1), а вторая, наоборот, очистит поле Flag во всей таблице Ref. Две последние команды, содержащие в подменю Database, Pack и Tune дают вам некоторый контроль за эффективностью работы системы. Во время записи на диск (комнада Edit и, в первую очередь, команда Import) Paradox отдает предпочтение скорости перед экономией места. Это приводит к тому, что файлы с расширением *.DB становятся рыхлыми - в них появляются лишние пустоты. Команда Pack переписывает эти файлы в наиболее компактной форме. Вам рекомендуется исполнить эту команду сразу после операции Import - файлы *.DB уменьшаться на 25- 35%. Команда Tune связана с распределением памяти. Paradox старается держать всю необходимую информацию в памяти. Когда возможности памяти исчерпываются, он начинает операции с диском. Вся память разделена на несколько областей и команда Tune позволяет контролировать это разделение. Я не буду углублятся в технические детали, все равно результат этой операции зависит от конкретной конфигурации компьютера. Просто попробуйте поменять значение этого разделения (введите число не ниже 10 Кб, по умолчанию оно равно 30 Кб) и понаблюдайте за работой системы. 6. ПОИСК НУЖНЫХ ССЫЛОК - Search (ТАБЛИЦЫ Answer и KeyLu) Помимо команды Ctrl+Z (Alt+Z) для поиска нужных ссылок предусмотрена более мощная команда Search. Нажмите F10 (команда Menu) и выберете Search либо движением стрелками, либо нажатием клавиши s. При использовании команды Search все результаты поиска запишутся в специальную таблицу Answer. Это будет отражено в двух верхних статусных линиях на экране дисплея. Например Answer table: 20 records View 0 collected records F1 - Help F10 - Menu При работе с таблицей Answer вы можете подавать те же самие команды, что и с таблицей Ref, включая команды быстрого поиска Ctrl+Z (Alt+Z). Единственное ограничение - вы не можете выполнить команду Import, находясь в таблице Answer. Две команды позволят вам быстро переключаться между таблицами Ref и Answer F3 - перейти из таблицы Ref в Answer F4 - перейти из таблицы Answer в Ref При переходе из Answer в Ref у вас есть выбор - перенести изменения, которые вы сделали в Answer (например, пометили ссылки) в таблицу Ref, или оставить таблицу Ref без изменения. (В силу специфики технической организации R-Cite, сказанное относится только к двум полям - Year и Flag. Это означает, что изменения во всех других поля сразу же происходят и в таблице Ref). После подачи команды Search вы попадаете в таблицу Lookup, где вы должны составить ваш запрос на поиск. Введите в поля таблицы Lookup, которые соответствуют всем возможным полям ссылки, ту информацию, которую вы хотите найти. После нажатия клавишы F2, R-Cite начинает поиск всех ссылок, удовлетворяющих введеным критериям. Для составлении запроса существуют следующие простые правила. Информация, введеная в различных полях, будет искаться согласно операции AND. Пробел между двумя словами в одном поле соответствует операции OR. В поле Flag вы может ввести слово MARKED или UNMARKED (достаточно набрать m или u). В первом случае поиск будет вестись среди помеченных ссылок, во втором - среди непомеченных. Если вы хотите вставить пробел в ваш запрос, то выделите запрос кавычками (""). Выделение запроса кавычками необходимо и в ряде других случаев (если ваш запрос совпадает с ключевым словом СУБД Paradox). Как минимум, кавычки не мешают. Если ваш запрос сам должен содержать кавычку, то поставьте перед ней обратный слэш (\"). Для тех кто знает язык запросов СУБД Paradox. R-Cite просматривает введенную информацию в таблице Lookup и разделяет ее на слова, используя пробел как разделитель (если пробел не находится между кавычками). Далее он прибавляет опрератор .. в начале и конце слова и вставляет между словами оператор OR. При вводе информации в поле Keys вы можете использовать специальную таблицу KeyLu. Остановимся на этом подробнее. Поле ключей предназначено для хранения сокращенных обозначений тематических областей, к которым относится данная ссылка. Таблица KeyLu содержит два основных поля Key и Description. Поле Key предназначено для сокращенного обозначения тематической области, которое расшифровано в поле Description. Нажатие клавиши F1 при нахождении в поле Keys выводит на экран дисплея таблицу KeyLu (вначале вы должны ее заполнить). При перемещении по таблице KeyLu вы должны выбрать ключи, которые вы хотите найти и пометить их (поместить курсор в служебное поле Flag и нажать spacebar). После этого нажатие клавиши F2 перенесет выбранные вами ключи в поле Keys таблица Lookup. Выбранные ключи будут помечеными и при последющих попаданиях в таблицу KeyLu. Для того, чтобы очистить все пометки нажмите клавишу Del при нахождении в таблице KeyLu. Несмотря на возможность составления достаточно сложных запросов, не всегда возможно найти все нужные ссылки за один шаг. В этих случаях вы можете применить команду Search несколько раз. Для проведения последовательного поиска можно подать команду Search прямо из таблицы Answer (поиск будет проводиться только среди ссылок, содержащихся в ней). В таблице Lookup есть еще несколько полезных команд. Клавиша Del очистит все поля и сделает таблицу Lookup пустой. Ctrl+BkSp очистит текущее поле. Ctrl+F приведет вас в режим Field View - вы сможете редактировать символы в середине поля. Клавиша F10 вызовет меню, через которое вы можете спасти сложный запрос в виде файла (*.lu) или загрузить сложный запрос из файла (*.lu). 7. РЕДАКТИРОВАНИЕ И ВВОД - Edit Перед работой с базой ссылок вначале надо ввести информацию. Для этого служит команда Edit. Нажмите F10, выберете Edit и вы окажитесь в режиме редактирования (обратите внимание на изменение информационных строк). Например, Ref table: 20 records Edit 0 collected records F1 - Help F2 - to finish Команды перемещения по базе и внутри ссылки остались без изменения (включая Ctrl+Z и Alt+Z). Однако вы получили возможность ввода и редактирования информации во всех полях. В режиме редактирования вы не можете вызвать меню (команда F10 не работает). Чтобы исполнить команду из меню, вначале завершите режим редактирования - выполните команду F2. Нажатие любого символа приводит к добавлению его в текущее поле, клавиша BkSp стирает последний символ в текущем поле, Ctrl+BkSp очищает всю текущую строку. При нахождении в полях с переменной длиной в первой позиции последней строки нажатие BkSp (Ctrl+BkSp) приводит к уничтожению строки и переходу к предыдущей строке. Если же при нажатии символов вы дошли до конца строки, то программа автоматически откроет следующую строку и перенесет текущее слово в нее (словом считается текст, находящийся между двумя пробелами). Несколько дополнительных правил существует при редактировании поля Index. Это поле нельзя оставить пустым, программа не допустит этого. Каждая ссылка должна иметь уникальный Index, программа не допустит его дублирования. Ссылки, находящиеся в базе, автоматически сортируются по полю Index. Это означат, что после редактирования данного поля физический номер ссылки может скачкообразно измениться. Для заполнения поля Keys вы может использовать таблицу KeyLu (нажмите F1, пометьте нужные ключи и нажмите F2, см. главу 6). При заполнении поля Source вы можете воспользоваться таблицей Journals. Данная функция работает следующим образом. Вы вводите сокращенное имя журнала (например JCP) и нажимаете F1. R-Cite ищет введенное сокращенное имя журнала в таблице Journals и меняет его на полное имя журнала (в приведенном примере J. Chem. Phys.). Если же введенное вами сокращение не описано в таблице Journals, то вы попадаете в эту таблицу. В ней вы можете либо найти нужное вам имя журнала, либо ввести его. Затем нажатие F2 перенесет полное имя журнала в поле Source. Отметим, что данная функция будет работать только в том случае, если в поле Source введено не больше шести символов в первой строке. Для ввода новых ссылок у вас есть две возможности - нажатие клавиши Ins вставит пустую форму перед текущей ссылкой и нажатие PgDn в конце таблицы откроет пустую форму в конце таблицы. Ввод новой ссылки вы должны начать с поля Index, как уже говорилось, это поле нельзя оставить пустым. Если вы передумали, то оказаться от пустой формы можно при нажатии клавиши Del. Реальное место в таблице (физический номер) новой ссылки будет зависеть от содержимого поля Index - (по этому полю проводится автоматическая сортировка ссылок). Нажате клавиши Del в режиме редактирования приведет к уничтожению всей ссылки. Вы должны подтвердить, что вы действительно хотите уничтожить данную ссылку. Для исправления символов в середине ссылки нужно подать команду Ctrl+F (Field View). После этого вы попадаете в режим редактирования поля (обратите внимание на информационные строки) - чтобы закончить данный режим необходимо нажать Enter. В режиме редактирования поля команды перемещения означают: Up - строка вверх, Down - строка вниз, Left - символ влево, Ctrl+Left - слово влево, Right - символ вправо, Ctrl+Right - слово вправо, PgUp - экран вверх, PgDn - экрна вниз, Home - начало поля, End - конец поля. BkSp уничтожит символ, находящийся перед курсором, Del - под кусором. Ввод любого символа приведет к его вводу в месте, где стоит курсор. Если при этом длина строки превысит допустимую, то автоматически будет создана новая строка, и часть информации будет перенесена туда. Как результат, может появиться несколько строк, содержащих мало символов. Пусть это не вызывает беспокойства, после нажатия Enter (для завершения режима редактирования поля) поле будет автоматически переформатировано. Команда Edit может применяться и в таблице Answer. Однако здесь есть ряд отличий. Вы уже не можете редактировать поле Index и вставлять новые ссылки. При нажатии клавиши Del текущая ссылка будет уничтожена без требования подтверждения (не волнуйтесь - ссылка исчезнет только из таблицы Answer и сохранится в таблице Ref). Для зарегистрированных пользователей в режиме редактирования доступны еще две команды. Ctrl+R - контекстная замена (replace), Ctrl+D - запомнить текущее поле, Alt+D - вспомнить. Довольно часто возникает ситуация, когда вы хотите заменить все встречающиеся наборы символов на новые наборы (например, вы хотите повсюду в комментарии заменить "рика" на "река"). Войдите в поле, где вы хотите сделать замену и нажмите Ctrl+R. Далее введите, что вы хотите заменить и на что вы хотите это заменить. После этого R-Cite начнет просматривать данное поле во всех ссылках, начиная со ссылки с физическим номером один. После нахождения требуемой последовательности символов, программа спросит - Yes No Cancel Global, что означает: Yes - заменить данное вхождение, No - пропустить данное вхождение, Cancel - прекратить операцию, Global - выполнить все последующие замены без подтверждения. Существует следующее ограничение при использовании команды Ctrl+R. Если в одном слове встретится два вхождения, которые надо заменить, то заменено будет только первое вхождение. Если при ответе на вопрос, что надо искать, вы сразу же нажмете клавишу Enter (пустое вхождение), то R-Cite сделает следующее. Она прибавит введенный вами текст (на что это надо заменить) к концу текущего поля каждой ссылки. Другая, часто встречающаяся ситуация - вы хотите скопировать содержимое данного поля в другую ссылку или в другое поле. R-Cite дает вам такую возможность. Сделайте поле, которое вы хотите скопировать, текущим и нажмите Ctrl+D. Содержимое поля будет скопировано в специальный внутренний буфер. Далее, выберете то поле, куды вы хотите скопировать данную информацию (оно должно быть пустым) и нажмите Alt+D. Содержимое внутреннего буфера будет перенесено в текущее поле. 8. ПЕЧАТЬ - Print Итак, вы отобрали и пометили нужные вам ссылки и теперь вы хотите перенести их в файл с вашей статьей. Настало время воспользоваться командной меню Print. После подачи команды Print вы должны ввести имя файла, куда будут записаны результаты вашего поиска. Опять, вы можете ввести имя директории и нажать Enter - в этом случае вам будут показаны имеющиеся там файлы с расширением *.prn. Если вы хотите действительно напечатать ссылки на принтере, а не записать их в файл, то введите имя файла prn. Далее вы должны выбрать формат записи ссылок и после этого ссылки будут записаны в файл с заданным именем в выбранном формате. Какие ссылки будут записываться? Все ссылки из текущей таблицы. Это означает, что чаще всего вы будете печатать ссылки из таблицы Answer, куда вначале поместите все отобранные ссылки. Что означает каждый формат? Попробуйте и увидите. Три формата вывода 1-Reference, 2-Reference и 3-Reference (доступны только зарегистрированных пользователям) подразумевают что при записи в поле Source был использован специальный формат: Название ; том (номер) страницы Вначале идет название журнала или конференции. Далее разделитель - точка с запятой. После этого номер тома, далее номер журнала, взятый в круглые скобки, и номера страниц. Том, номер или страницы могут осутстовать. Круглые скобки тоже не обязательны в случае, когда нет ни тома, ни номера (например, конферерция). Точка с запятой - это самый ответственный элемент. Если этого знака нет, то R-Cite оставит все как есть и не будет ничего переформатировать. 9. УСТАНОВКА ПРОГРАММЫ И СПИСОК ПОСТАВЛЯЕМЫХ ФАЙЛОВ На дискете должны содержаться следующие файлы: README - эта инструкция. LICENSE - информация о том, как зарегистрироваться. REF.DB, ATH.DB, NAM.DB, SRC.DB, ABS.DB, KEY.DB, INS.DB - база данных в формате Paradox (вначале она пустая). LOOKUP.DB - таблица LOOKUP. KEYLU.DB - таблица KEYLU. JOURNALS.DB - таблица JOURNALS. KEY.F, ABS.F, SRC.F, NAM.F, ATH.F, REF.F, INS.F, LOOKUP.F, JOURNALS.F, KEYLU.SET, LOOKUP.VAL, KEYLU.VAL - вспомогательные файлы, которые необходимы для работы программы. ATH.PX, NAM.PX, SRC.PX, ABS.PX, KEY.PX, INS.PX, REF.PX, KEYLU.PX, JOURNALS.PX - первичные индексы, используемые Paradox. INIT.SC, PARADOX.LIB - файлы, содержащие саму программу R-Cite. Кроме того в директории TXT расположены текстовые ASCII файлы, содержащие пример базы ссылок (по сверхпроводимости) в специальном формате - EXAMPLE.REF, EXAMPLE.ATH, EXAMPLE.INS, EXAMPLE.NAM, EXAMPLE.SRC, EXAMPLE.ABS, EXAMPLE.KEY. Для запуска программы на вашем диске должен быть установлен Paradox 3.5. Минимимальный набор требующихся файлов следующий PARADOX.SOM, PARADOX.AUX, PARADOX.EXE, PARADOXR.EXE, PARADOXT.EXE, PARADOX.MSG, PARADOX.SOR, PARADOX.CFG. Перед запуском программы вначале убедитесь, что директория, где расположены файлы с Paradox, описана в переменной PATH. Далее переключитесь на директорию, куда вы скопировали наши файлы и наберите с командной строки paradox Через несколько секунд появится начальный экран системы Paradox, затем начальный экран программы R-Cite и далее вы окажетесь в самой программе. 10. БЕСПЛАТНЫЕ СОВЕТЫ 1) Выбор цвета. Незарегистрированная версия - черно-белая. Лучше всего это будет выглядеть, если и PARADOX запустить в черно-белом варианте. Для этого либо подайте команду paradox -b&w либо используйте программу CUSTOM, чтобы выбрать черно-белый вариант основным. Зарегистрированная версия - цветная. Смотрится гораздо лучше, особенно на хорошем мониторе. 2) Контроль памяти. Чем больше свободной памяти - тем быстрее будет работать R-Cite. Подайте команду chkdsk (лучше mapmem или tmem, если они у вас есть) перед запуском R-Cite и посмотрите сколько у вашего компьютера свободной памяти.Если это будет меньше 580 Кб, то хороших результатов не ждите. В этом случае перед запуском R-Cite нужно выкинуть все резидентные программы, выйти из оболочки и т.д. 3) Хранение данных. Не бойтесь потратить время на создание запасных копий вашей базы данных. Помните - когда-нибудь кто-нибудь случайно отформатирует ваш жесткий диск, или он сам по себе вылетит. 4) Русификация. "Гораздо легче выучить английский язык, чем заниматься русификацией компьютера". Нерусифицированный PARADOX сортирует так, что все русские буквы будут после английских. Кроме этого, он не знает как соотносятся большие и маленькие русские буквы между собой, поэтому при поиске большие и маленькие русские буквы будут трактоваться как разные символы. Да, если у вас древний комьютер с нерусифицированным CGA (как у меня), то я могу вам немного помочь. На этот случай мной написана программа RUSCGA (Она не делает чуда, русские буквы на экране не появляются, но работать с русскими текстами становиться можно). 5) Кавычки. Старайтесь не использовать кавычки (") при работе с вашей базой ссылок. Это не то, чтобы совсем нельзя, но не рекомендуется. В некоторых ситуациях команда IMPORT может не сработать. 4) Программа GREP. Почти во всех компиляторах есть утилита GREP. Это что-то типа досовской команды FIND, только гораздо лучше. Ее очень удобно использовать для быстрого поиска среди текстовых файлов. Это требуется тогда, когда у вас прямо сейчас сам Paradox не стоит (он все-таки громоздок), а хочется быстро просмотреть базу ссылок. Если она хранится в текстовых файлах, полученных после команды EXPORT, то утилита GREP дает такую возможность.