Форум программистов, компьютерный форум, киберфорум
Наши страницы
Низкоуровневое программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
VVV_154Rus
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 4
1

База данных из прошлого - 20 лет назад

21.02.2019, 06:59. Просмотров 710. Ответов 4

Добрый день!

Необходимо достать данные с программы, которая работает из под MS-DOS, в которой работают с 1994(1999) года по сегодняшний день. Чтобы разработать что-то новое, необходимо не потерять старые данные.

Пытался открывать различными средствами, парсить через powershell, но особо знаний в этом нету, тяжело.

Помогите куда копать, что сделать. Есть полностью рабочая программа, все исходники, а как из этого извлечь информацию, не знаю.

Примеры файлов: data.zip

Спасибо большое за любую информацию!
0
Миниатюры
База данных из прошлого - 20 лет назад   База данных из прошлого - 20 лет назад  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2019, 06:59
Ответы с готовыми решениями:

База данных о студентах поступивших в 20 лет
Помогите!! у меня в база данных не определяет студентов поступивших в вуз в 20 лет!!!и по чему-то...

База данных Игрушки: можно ли подобрать игрушку, подходящую ребенку трех лет
можно ли подобрать игрушку(любую, кроме мяча),подходящую ребенку трех лет.

DateTimePicker как отмотать на 18 лет назад?
Какой бы нибыл сегодня день нужно отматать на 18 лет назад, и чтобы было 1 января. Мож кто...

20 лет назад пала Берлинская стена
20 лет назад произошло то, чего никто не ожидал; то, что надеялись увидеть при своей жизни миллионы...

Курсовик по ТОЭ в СПбГЭТУ (ЛЭТИ) 20 лет назад
В 1993 г. летом я приехал в Питер,поступил в ЛЭТИ на радиотехнический факультет.Естественно,жил в...

4
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,291
21.02.2019, 10:29 2
Кликните здесь для просмотра всего текста
VVV_154Rus, для реверса формата файлов нужно достаточно много времени. Доводилось видеть, как за 1-2 часа удивительный Besha разбирал и патчил байт-код в hex-редакторе. Но сейчас другая ситуация.

Попробуйте самостоятельно.
Бегло осмотрел приложенные файлы с данными. Впечатление, что управляющая программа написана на TurboPascal, т.к. перед строковыми полями стоят числа, равные длине этих строк, и после осмысленного текста идут 0 для заполнения резервируемой длины строки. Т.е. это "база данных" на записях, коих много в учебных работах даже в разделе Turbo Pascal.

Итак, каждая запись на Pascal описывается по подобию
Pascal
1
2
3
4
5
TCard = record
  fData: integer;
  fDrHausName: string[15];
  fPatientName: string[21];
end;
Если строковые записи можно достаточно быстро определить (расположение среди других полей, длину), что числовые поля можно пробовать оценить активными методами - В ТЕСТОВОЙ КОПИИ менять в файле значения и из программы смотреть за изменениями, удалить файлы и при запуске программы создать новые с некими эталонными данными, причём ограничиться созданием одной записи.
Очень может быть что в начале файла находится некая служебная информация (количество записей или что другое), а не содержимое записей.

Итого, вам потребуется TurboPascal для проведения тестов.

А потом - сами сделаете конвертер в нужный формат.

Начните с создания типа записи (я постарался корректно оценить поля, но перепроверяйте)
Pascal
1
2
3
4
5
6
7
8
TCard = packed record
  Reserved_01: array[1..34] of byte; {пока нераспознанные данные участок 01}
  fPatientName: string[33];
  Reserved_02: byte;
  fPatienDateY: string[4];
  fPatientAge: string[2];
  Reserved_03: array[1..1000] of byte;
end;
Поверьте - там много работы. Тем более, что вы не врач, а исполнитель.


Добавлено через 7 минут
Как-то проглядел
Цитата Сообщение от VVV_154Rus Посмотреть сообщение
Есть полностью рабочая программа, все исходники
У вас есть в полном составе описание структуры файла - какой к чёрту реверс и парсинг!!!

Ищите описания типов, среди них типы файлов и типы записей.

Добавлено через 2 минуты
Попробуйте ознакомиться с Pascal. Все algol'оподобные языки невероятно схожи. Помню, что без трудностей читал исходники algol/ADA.
0
VVV_154Rus
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 4
21.02.2019, 11:42  [ТС] 3
Немного не правильно выразился, у меня есть скомпилированные файлы для работы программы.
Естественно, исходников по которым она была создана - нету.
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,291
21.02.2019, 14:00 4
Под спойлером я уже перечислил доводы.

Сочетание анализа содержимого, с экспериментом - создание новых файлов и их анализ, создание тестовых программ, читающих разобранные части формата. Попытки редактирования из программы отдельных полей и побайтовое сравнение с версией файла до редактирования.
На лист бумаги записать названия вводимых полей, как по врачам, так и по пациентам.

Как понимаю, там может быть две базы - по врачам и по пациентам. Один пациент может многократно приходить, менять врачей. Врачи могут быть перечислены и пронумерованы в одной базе, а в другой базе вместо имён могут использоваться номера. Что угодно.

По мере продвижения в исследовании - заполняете поля типа record в тестовой программе для Turbo Pascal и пробуете просмотреть файлы.

Тут работы много. Не на один день.

Если желаете, можете обратиться в раздел платной помощи http://www.cyberforum.ru/order-program/ но вам нужно сформулировать ТЗ, т.к. нет ясности, что вы сможете "переварить".

Добавлено через 6 минут
Ваша база данных подобна Создать базу данных в виде типизированного файла записей
0
Manowar
Отава Ё.
2020 / 566 / 186
Регистрация: 12.03.2016
Сообщений: 2,148
Завершенные тесты: 1
23.02.2019, 09:19 5
VVV_154Rus, как то не корректно выкладывать в общий доступ данные о людях с их адресами и диагнозами без их согласия.
На месте модератора я бы удалил выложенные данные.
3
23.02.2019, 09:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2019, 09:19

как изменить системную дату на 10 лет назад?
Собственно вопрос в теме Мне надо при загрузке ПК менять на нём год Например я для этого делаю...

T9 Spelling или как мы писали СМС ~10 лет назад
Хочу написать логику T9, но для начала нужно сделать стандартный ввод текста на кнопочных...

Эта стрекоза-робот отправилась в полет более 40 лет назад.
На представленном здесь снимке вы видите механического робота-стрекозу. И даже с учетом уровня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru