4

現在、ESRI シェープファイル形式を使用していますが、データベース フィールド サイズの変更/編集に問題があります。長さ/サイズが 200 のフィールドを作成しましたが、今は長さ/サイズを 80 にしたい (スペースとその他の改善)。

しかし、私はもうフィールドサイズを編集できません:(誰かがフィールドサイズを変更する方法を指摘できますか?

ところで、フィールドサイズを編集できるDBF Explorerなどのユーティリティを試しましたが、文字/テキストフィールドのフィールドサイズを変更すると、浮動小数点/数値フィールドのデータが削除されます:(
DBF Explorer

PS: ESRI データベースは .dbf 拡張子を使用します。これは、DBASE III plus または DBASE IV 形式であると思います

4

5 に答える 5

6

ヘッダーを編集しないでください。データは固定オフセットで整列され、フィールドのサイズをレコードの物理的な長さと一致しないサイズに変更すると、テーブルが破損します。

これを効果的に行うには、DBFを読み取り/書き込みできるものが必要です。DBaseの古いインストールは機能しますが、Visual FoxProを使用した方がよいでしょう(FoxProコマンドは「MODIFYSTRUCTURE」の略であるMODISTRUなります)。また、データを他の形式にプッシュ/プルするための他のツールも検討します。Accessにアクセスできる場合(駄洒落を許してください)、いつでもデータをAccessテーブルとしてAccessにインポートし、テーブルを再構築してからエクスポートできますが、Access 2007以降、ネイティブDBF/FoxProのサポートは多かれ少なかれ削除が少なく、ODBCが必要です。その他の(より時間がかかる)対策は次のとおりです。

  • Excelの使用を検討してください(データの行数が非常に少ない場合、古いバージョンでは合計32kまたは64k行しか処理できません)
  • Pythonを使用してデータの読み取り/書き込みを行います(SOでこの情報を検索してください)
  • 上記のPerl/Ruby/{DBFライブラリでお気に入りのスクリプト言語を挿入}の変形
  • ODBCを使用+{ここにcheapoデータベースを挿入}+{ここにテーブルを変更できるcheapoデータベース用のchapo管理ツールを挿入}+{cheapoデータベースからエクスポート}
于 2009-04-13T05:45:45.003 に答える
2

.dbf ファイルのフィールド サイズを編集するには、OpenOffice を使用します。OpenOfficeSpreadsheet では、.dbf フィールド名は "FEILDNAME,C,200" として表示されます。サイズを 200 から 80 に変更するには、フィールド名を「FEILDNAME,C,80」に変更し、.dbf ファイルを保存する必要があります。

于 2011-04-20T14:28:22.200 に答える
1

その DBASE III (一種)。

dbf ファイルには、メタデータ (フィールドのサイズやタイプなど) とデータの両方が含まれています。それらはすべて固定サイズで保存されます。

フィールドサイズを変更するツールがあるかどうかは思い出せませんが、新しいテーブルを作成してデータをコピーできます。しかし、フォームはそれほど難しくありません。

于 2009-03-16T10:13:37.243 に答える
1

ファイルのヘッダーを編集して、任意の 16 進エディターで変更できます。

バイト 10-11: レコードの長さを表します (最下位バイトが最初)

バイト 48 から始まる繰り返し構造 (それぞれ 48 バイト) は、フィールドを記述します。この構造体のバイト 33 は長さを表します。

于 2009-03-16T10:16:30.277 に答える