3

.DBF ファイルの最初のバイトと、使用されている xbase のバージョン (つまり、ファイルの残りの形式) を検出する方法に関して、私がコンパイルできる最も包括的なリストは次のとおりです。

バイト 0
-----------
x xxx x 001 = 0x?1 未使用
0 000 0 010 = 0x02 フォックスベース
0 000 0 011 = 0x03 FoxBASE+/dBASE III PLUS、メモなし
x xxx x 100 = 0x?4 dBASE 7
0 000 0 101 = 0x05 dBASE 5、メモなし
0 011 0 000 = 0x30 Visual FoxPro
0 011 0 001 = 0x31 Visual FoxPro、自動インクリメントが有効
0 011 0 010 = 0x32 Visual FoxPro、Varchar、Varbinary、または Blob 対応
0 100 0 011 = 0x43 dBASE IV SQL テーブル ファイル、メモなし
0 110 0 011 = 0x63 dBASE IV SQL システム ファイル、メモなし
0 111 1 011 = 0x7B dBASE IV、メモあり
1 000 0 011 = 0x83 FoxBASE+/dBASE III PLUS、メモ付
1 000 1 011 = 0x8B dBASE IV、メモあり
1 000 1 110 = 0x8E dBASE IV と SQL テーブル
1 100 1 011 = 0xCB dBASE IV SQL テーブル ファイル、メモ付き
1 110 0 101 = 0xE5 Clipper SIX ドライバー、SMT メモ付き
1 111 0 101 = 0xF5 FoxPro 2.x (またはそれ以前) メモ付き
1 111 1 011 = 0xFB FoxBASE (メモあり?)
| | ||| | | |||
| | ||| | | ||| ビット フラグ (すべての形式で使用されるわけではありません)
| | ||| | | ||| -----------------------------------
| | ||| | | +++-- ビット 2、1、0、バージョン (x03 = レベル 5、x04 = レベル 7)
| | ||| +-------- ビット 3、メモファイルの存在
| | +++-------- ビット 6、5、4、dBASE IV SQL テーブルの存在
+------------ ビット 7、.DBT ファイルの存在

最初の .DBF バイトを読み取ることで想定できるヘッダー形式はどれですか? (つまり、ファイルはバージョン 2 ヘッダー、バージョン 3 から 5 ヘッダー、またはバージョン 7 ヘッダーを使用していますか?) 最適なロジックが何であるかはまったく明確ではありません...

4

2 に答える 2

1

DBFヘッダー: http ://www.dbf2002.com/dbf-file-format.html

基本からのdbfアクセスの例、はいBASIC;)

http://www.angelfire.com/d20/quickbasic/UTIL/IMB9006.ZIP

  • もっと...

DBFは、ヘッダー内で実質的に静的です。同じ見出しに示されているフィールドの開始セクションまで静的です。異なるデータベースエンジン派生物(xbase)によって与えられたそれらの間の違いは、データ型、最適化、またはストレージ形式(7.8ビットASCIIまたは128またはその他の違い...)です。このフォーマットには、エンジンデータベースにバリアントを作成したソフトウェア開発者としてのバージョン(標準ではない)だけのリビジョンはありません(dbase foxpro vs vs clipperなど...)

半自動翻訳をお詫びしますが、役に立ちました。

于 2011-06-17T20:50:38.693 に答える