Мне нужно подключиться к некоторым старым файлам базы данных C-tree Plus с 1998 года. Продукт снят с производства поставщиком, но все еще используется сегодня в текущих выпусках программного обеспечения.Мне нужно иметь возможность читать и писать, но нет доступного типа соединения ODBC, только доступ к файлам.Вот пример из них:
http://64.72.211.216/zip.dat
http://64.72.211.216/zip.idx
Большая часть содержимого, которое мне нужно, хранится в виде целых чисел или строк, я могу увидеть его с помощьюбазовый текстовый редактор, но есть также двоичные / UTF / HEX-символы, которые находятся в миксе и должны быть отфильтрованы.В файлах нет имен столбцов.
Мне нужно найти способ разобрать его в читаемую форму, такую как csv, чтобы прочитать, а затем повернуть его обратно, чтобы записать.
Нет помощиЯ имею в виду, что никто из их компаний не знает, как это работает, после 20 с лишним лет с момента его разработки.Я провел хороший час, пытаясь убедить людей Faircom продать мне старый ODBC без какой-либо поддержки, но безрезультатно.Хотя некоторая документация все еще существует, библиотека ODBC для ее использования недоступна.
Я попытался связаться с Pervasive по поводу их DataConnect, но, очевидно, они прекратили анализ плоских файлов в своей последней версии.Они сказали, что в своей старой версии он основан на awk.
Мне показался интересным DataDirect от Progress.com, но я не получил от них никаких звонков, чтобы узнать, что возможно.
TextPipe Pro выглядит так, как будто это может работать для чтения, но я не думаю, что смогу писать с ним.
В Postgresql есть сторонние обертки данных, которые будут анализировать CSV, я рассмотрел попытку создания фильтра на основеCSV для моих данных, но я не был уверен, что это кроличья нора.
Я немного компетентен в C #, но не уверен, с чего начать.Насколько я понимаю, мне нужно определить «размер блока», который будет представлять одну строку, а затем преобразовать то, что будет каждый столбец фиксированной ширины, в ANSI из того, что есть сейчас.Затем экспортируйте каждую строку в формат CSV, который можно запросить.
Пожалуйста, кто-то скажет мне, что есть лучший способ.Может быть, библиотека для разбора, утилита, что-то, что может быть интегрировано в приложение C #, которое выполняется по расписанию в поисках обновлений.