База радиодеталей
Это не справочник характеристик, а база данных для хранения списка имеющихся в наличии деталей !
Успешно используется мной с 2001 года.
Постоянно модифицируется, однако остается в рамках единой,
заложенной с самого начала, концепции.
Была создана, когда я понял, что удержать в голове все имеющиеся
у меня элементы уже не могу. Бинарник для ms-dos-совместимых систем.
Фактически таблица: фиксированные колонки и вносимые пользователем
строки.
Выборка из базы: вручную, но прога может сортировать по некоторым колонкам
и их комбинациям.
Скачать ~20 Кб включая исходники (Pascal)
Колонки
- Номер Просто номер записи в базе. Ни на что не влияет.
- Название Называйте деталь как хотите, но чем лучше вы придерживаетесь
единообразия, тем проще делать выборки.
- Номинал Вообще-то любая текстовая строка, но если состоит из числа
(можно не целого, разделенного точкой или запятой) и суффикса
(ком, ом, мом, мкф, нф, пф, в, а) - база постарается учитывать
это при сортировке.
- Марка Просто текстовая строка.
- Количество Число от 1 до 999. Для единичных деталей я обычно указываю
количество экземпляров, а для больших наборов (скажем, > 20) - просто 999.
- Комментарий Текстовая строка.
- Коробка Текстовая строка. Я обычно использую числа или комбинации
букв (AA, BB, РП-1...).
Управление
Движение курсора:
Стрелки вправо/влево - движение изображения;
Стрелки вверх/вниз - переход по строкам;
Ctrl-Стрелки право/влево - переход по колонкам;
Ctrl-PgUp - переход к началу базы;
PgUp/PgDn - переход по страницам.
Поиск (всегда от текущей строки до конца базы):
F7 - поиск подстроки;
Ctrl-F7 - продолжение поиска в текущем столбце;
Shift-F7 - продолжение поиска во всех столбцах;
Insert - отметка/снятие отметки со строки;
Серый + - отметить всю базу;
Серый - - снять отметки со всей базы;
Alt-F7 - поиск отмеченной строки.
Сортировка:
Tab - сортировка по текущей колонке;
Shift-Tab - зависит от текущей колонки:
- Номинал название / номинал / марка;
- Марка название / марка / номинал;
- Комментарий название / номинал / комментарий;
- Коробка коробка / название / марка / номинал.
Добавление/удаление строк:
Ctrl-Insert - скопировать текущую строку;
Shift-Delete - удалить текущую строку.
Прочее:
Esc - выход из программы;
F2 - сохранение базы;
Основной Enter - модификация ячейки;
Серый Enter - смена режима вывода таблицы;
Alt-F2 - добавление в текущую базу другой базы. Совпадающие в базах строки
не дублируются, не совпадающие добавляются и отмечаются (можно найти нажав Alt-F7).
[Это используется для слияния правок одной базы, сделанных одновременно
на разных машинах].
Сортировка
- Большие и маленькие буквы не различаются. Кодовые страницы
ОС не используются, все заточено под cp866.
- Строки сортируются по cp866 (т.е. почти по алфавиту), но колонка
"номинал" также анализируется на соответствие шаблонам,
характерным для указания номинала сопротивлений, емкостей,
вольтажа и тока. Если это соответствие обнаружено,
сравнение происходит по значению (номиналу), т.е.:
ом < ф < вольты < амперы < другие строки.
Рекомендации
Содержимое этого раздела можно игнорировать...
- Резисторы В "номинал" - номинал, в "марке" - марка, если известна,
в "комментарии" - мощность, возможно, с процентом точности.
- Конденсаторы В "номинал" - номинал, в "марке" - марка, если известна,
в "комментарии" - рабочее напряжение. "Название" - "конденсатор н" для
диапазона 1..999нф, "конденсатор п" - 1..999пф, "конденсатор М" - для
электролитических конденсаторов от 1 мкф и выше, "конденсатор м" - для
неэлектролитических от 1 мкф и выше. Тоже, но с буквой "в" - для
конденсаторов на напряжение выше 100в.
- Микросхемы В "марке" - марка, приведенная к виду SSSttL - где
SSS - серия, tt - буквы, L - цифра. В "комментарии" - точное название.
Например: "марка": 140уд1, "комментарий": к1ут401.
- Транзисторы В "номинал" - проводимость (p-n-p / n-p-n).
- Диоды В "номинал" - максимальное обратное напряжение, в "комментарии"
- максимальный прямой ток.
- Переменные резисторы и конденсаторы В "названии" "подстр. резистор"
или "подстр. конденсатор".
Прочее
- Для упрощения алгоритмов строковые данные хранятся в файле базы
совсем несжатыми и имеют фиксированный максимальный размер. Ввести
в строку больше символов, чем предусмотрено, невозможно.
Изменить лимит строк можно, подправив определение типов в тексте программы
и перекомпилировав ее. При этом возможна потеря данных из созданной базы.
- В строковых данных не рекомендуется использование символа "\".
В общем, это не должно приводить к крешам, но слегка попортиться изображение
на экране.
- При редакторовании строковых данных можно использовать комбинации Ctrl-Insert
- взять строку в буфер и Shift-Insert (или просто Insert) - вставить
строку из буфера.
- Автоподстановка названия не отключается, но если она неверна -
нажмите пробел в конце строки.
- Память для строк таблицы выделяется динамически. Максимальное число строк
таблицы - 10000, но, фактически, прога может свалиться с ошибкой раньше,
если кончится conventional (нижние 640 кб) память. Каждая строка сейчас
занимает 112 байт...
- Почему не access или excel ?
Не люблю монстров. 15-20 Мб против 13 Кб - это три порядка. Лучше музыку запишу.
Лень разбираться с их использованием.
Люблю индивидуальный подход к каждой проблемме.
Впрочем, ничего необычного прога не пользует, поэтому должна
легко работать в различных виндах и прочих эмуляторах доса.
- Планы на будущее: надо сделать похожую базу по трансформаторам. Проблема
в том, что описать трансформатор в базе для практического использования
можно только весьма значительным набором полей: диаметр проводов обмоток,
допустимые токи, коэффициенты трасформации, отводы... И одновременно
нужно продумать механизмы выборки/сортировки. Наброски такой базы
уже есть, но до законеченной программы еще далеко.
Пробная версия под FreeBSD
Слегка подкорректированный код может компилироваться FreePascal'ем. Под ms-dos это
смысла не имеет, только размер увеличивает, но зато можно собрать билд под FreeBSD
(наверное, и под LINUXами проблем не будет). Есть два варианта сборки: с родным модулем
CRT, либо с переходником (моей разработки, Pascal + C), который реализует необходимую функциональность
CRT средствами библиотеки curses. Последний вариант заметно предпочтительнее,
но я пробовал его только под FreeBSD. С учетом многих оговорок в документации
на curses, трудно быть уверенным, что мой переходник будет легко переносимым.
Эта версия сохраняет концепцию и почти полностью формат базы (кроме хранения дат),
вплоть до использования
единой кодировки русских букв (база храниться в cp866, Free-шная версия перекодирует
ее при чтении и записи). Т.е. одним файлом базы можно пользоваться
как из под ms-систем, так и из *NIX.
Учтены особенности работы в *NIX-терминалах; curses-сборка также
знает о возможности xterm'а менять свою геометрию во время работы. Однако
программа не запустится на терминале, объявленном как монохромный.
Удалена возможность подстановки знаков при наборе строк (автодополнение).
Неудобно.
Изменились клавиши управления (как для обхода ошибок Free-шной реализации
CRT, так и из-за особенностей использования клавиатуры в *NIXах).
Движение курсора:
Стрелки вправо/влево - движение изображения;
Стрелки вверх/вниз - переход по строкам;
"z", "c" - переход по колонкам;
Home - переход к началу базы;
PgUp/PgDn - переход по страницам.
Поиск (всегда от текущей строки до конца базы):
"s" - поиск подстроки;
Ctrl-"s" - продолжение поиска в текущем столбце;
"S" - продолжение поиска во всех столбцах;
"t" - отметка/снятие отметки со строки;
"*" - инвертировать все отметки;
"-" - снять все отметки;
F8 - поиск отмеченной строки.
Сортировка:
Tab - сортировка по текущей колонке;
"a" - зависит от текущей колонки:
- Номинал название / номинал / марка;
- Марка название / марка / номинал;
- Комментарий название / номинал / комментарий;
- Коробка коробка / название / марка / номинал.
Добавление/удаление строк:
Insert - скопировать текущую строку;
F9 - добавить пустую строку;
Delete - удалить текущую строку.
Прочее:
"q" - выход из программы;
F12 - сохранение базы;
Enter - модификация ячейки;
Space - смена режима вывода таблицы.
Скачать ~82 Кб включая исходники
Владимир