#c #dbf
Возникла необходимость обрабатывать массив чисел, записанных в DBF файле. В сети не нашел ответа на самый необходимый вопрос: Как извлечь из DBF файла содержимое из i-й строки и j-го столбца? И попутно: как открыть этот известный файл на чтение на C?
Ответы
Ответ 1
Дополню коммент. Под DBF подразумевается один из форматов баз данных, известный нынче как dBase. Он, конечно, немного устарел, но применяется ещё как (особенно в мозгах преподавателей, живущих в прошлом веке). Но общий смысл такой: для того, чтобы "обрабатывать массив чисел, записанных в DBF файле", нужно разобраться в формате хранения данных в этом самом DBF. В принципе ничего сложного. Но если возникает вопрос уровня как открыть этот известный файл на чтение на C? то подсказать мало чего могу. Разве что научиться основам языка C и общепрограммистской грамотности.Ответ 2
файл открывается функцией int open(const char *pathname, int flags, mode_t mode); А далее, если не использовать специальных библиотек, то следует смотреть формат файла, например здесь и читать его содержимое. Сначала заголовок, что бы узнать структуру, (примерно так struct header { // Database header Information char version; char yy; // Last Update char mm; char dd; long numRecs; unsigned short headerLen; // header Length, Indicates start of data unsigned short recordLen; char zero[16]; char hasMdxMemo; // 0x01 for has mdx, in fox 0x02 for has memo char codePage; char zero2[2]; } header; if(read(fd, &header, sizeof(header)) <= 0){ perror("read"); return 1; } ) а потом данныеОтвет 3
Если Вам действительно нужно обрабатывать файлы формата dBase-III или dBase-IV, то рекомендую обратаить внимание на библиотеку xBase: Xbase (formerly known as xdb, also formerly known as xBase) is a collection of specifiations, programs, utilities and a C++ class library for manipulating Xbase type datafiles and indices. Xbase is useful for accessing data in legacy dBase 3 and 4 database files as well as a general light-weight database engine. It includes support for DBF (dBase version 3 and 4) data files, NDX and NTX indexes, and DBT (dBase version 3 and 4). It supports file and record locking under *nix OS's.
Комментариев нет:
Отправить комментарий