2

みなさん、おはよう、

私はある顧客に、古いデータの一部を DOS ベースのシステムから、私が開発した新しいシステムに移行できると伝えました。しかし、私は、古いシステムにデータを保存したファイルを実際に見ずに、Google ですべての問題を解決できると思っただけだと言いました... 私は間違っていました!

とにかく、このプログラムには、.ave、.bak、.brw、.dat、.001、.002....、.007、.dbf、 .dbe および .his.

.Bak は明らかに SQL バックアップ ファイルではありません。

データを読み取って抽出する方法を教えてくれる可能性のあるこれらのファイルタイプのいずれかを使用したプログラミング経験がある人はいますか?

元の開発者がこれを許可するとは思わないという理由で、プログラム名について言及することはできません...

ありがとう。

4

13 に答える 13

8

.dbf ファイルはDBase 形式であることに間違いありませんが、これは非常に簡単です。その内容は、残りの部分への手がかりを提供する可能性があります。

于 2009-02-28T10:54:08.560 に答える
5

UNIX の「ファイル」ユーティリティを使用すると、「マジック ナンバー」によって多くのファイル タイプを認識することができます。ファイルの内容を調べ、何千もの既知の形式と比較します。ファイルが何らかの一般的な形式である場合、これによりおそらくかなりの量の作業を節約できます。

それらが一般的な形式でない場合は、赤いニシンを追いかける可能性があります。その提案をそのまま、提案として受け取ってください。

于 2009-02-28T13:22:47.767 に答える
3

何でもかまいません。最善の方法は、 16 進エディタで開き、表示される内容を確認することです。

古いシステムのほとんどは、固定長データ レコードのセットを含むテーブルごとに 1 つのファイルを持つ基本的な ISAM を使用していました。他のファイルはおそらくインデックスです

インデックスではなくデータのみが必要なため、データ パターンが繰り返されるファイルを探すだけです (多くの場合、16 進エディター画面ではきれいなパターンのように見えます)。

データを含むファイルを見つけたら、「Mr Smith」などの既知のレコードを見つけて、他のフィールドを解決できるかどうかを確認してください。多くの場合、整数はバイト単位であり、日付はエンコードされていることが多く、既知の開始日からの日数、金額は BCD である可能性があります

強いパターンが見られる場合、ほとんどの場合、各レコードは固定長です。ファイルにはおそらく 128 バイトまたは 256 バイトのヘッダー ブロックがあり、次に固定長レコード

COBOLで書かれた多くの古いシステム。net re COBOL 形式に関する情報は豊富にあり、COBOL ODBC ドライバーを販売している会社もあります。

于 2009-02-28T13:15:25.787 に答える
2

グレッグは .dbf ファイルについて正しいと思います。http://fileext.comhttp://dotwhat.netなどのサイトを使用して、他のファイル形式に関する情報を見つけてみてください。.bak ファイルは通常、同じ名前で拡張子が異なる別のファイルのコピーです。たとえば、database.dbf ファイルと、そのバックアップを含む database.bak ファイルが存在する場合があります。そのファイルを使用したアプリケーションの詳細/ドキュメント/ソース コードを (可能であれば) 顧客から入手するように依頼する必要があります。

于 2009-02-28T11:04:09.223 に答える
1

DOS の時代には、プログラマーは自分のファイル拡張子を自分の好みに合わせて作成していました。DBF は読みやすい DBase ファイルである可能性が高く、.BAK はおそらく他の重要なファイルの 1 つのバックアップか、テキスト エディターによって残された単なるバックアップです。

残りのファイルについては、まずテキスト エディターで開いて、読み取り可能な ASCII 形式であるかどうかを確認します。

これで良い結果が得られない場合は、16 進数と ASCII が並んで表示され、制御文字が空白になっているバイナリ エディターで開いてみてください。レコード フィールドに対応する可能性のある繰り返しパターンを探します。たとえば、.HIS が注文履歴ファイルのようなもので、製品コードや名前が埋め込まれている場合があります。この場合、そのようなフィールド間のバイト数を数えます。通常の数値の場合は、レコードのフラット バイナリ ファイルを持っている可能性があります。これをデコードするには、アプリでファイルを開き、特定のレコードで値を探し、バイナリ ファイルで対応する値を検索します。時間がかかり、お尻の痛みですが、コツをつかめば十分に機能します。

ハッピーハッキング!

于 2009-02-28T11:16:48.427 に答える
0

.dbfファイルがDBase、FoxPro、またはその形式を使用した他の製品の1つである場合のヒント。次に、ODBCを使用してそれらを読み取ることができる場合があります。私のシステムにはまだ.dbf用のODBCドライバーがあります(Vista、VS 2008を使用-どのようにしてそこに到達したかを調べる必要がありますが、それを配置したのはMDAC Microsoft Data Accessだったと思います)。したがって、ODBCドライバーが.dbfファイルを読み取る場合は、「実行するための選択を解除する世界」がない可能性があります。

DBaseがメモ(ビッグテキスト)フィールドに.001、.002、...ファイルを使用したことを(20年以上前にDBase IIIをいじくり回して少し自信を持って)覚えているようです。

データを回収しようと頑張ってください。

于 2009-03-01T05:03:00.487 に答える
0

.datは古いClarion2.1ファイルでもかまいません...キー/インデックスファイルを使用して、ISAMベースでも機能します

于 2009-03-25T13:34:35.500 に答える
0

現在はPervasiveの一部ですが、数年前、Data Junctionを使用して、多くの種類のファイルから他の種類のファイルにデータを移行しました。パーサーを作成する場合を除いて、ご覧ください。

于 2009-03-01T17:55:30.600 に答える
0

.001、.002などがすべて同様のタイムスタンプを持っている場合は、ファイルの変更日を手がかりとして使用してください。おそらく.BAKとともに、それらはバックアップの一部である可能性があります。また、(ある程度安全に)無視できるディレクトリに古い問題がある可能性があります。.BATファイルを探し、それらも分析してみてください。

于 2009-02-28T15:29:45.013 に答える
0

DBF 形式はかなり一般的です。

他のファイルは不可解です。古い BTrieve ファイル (悪い) を扱っているか、または (うまくいけば) 誰かが自分のデータベースをハード ドライブではなく同じディレクトリにバックアップしたという、考えられないバックアップ スキームの結果を扱っていると思います。これらは無視できます。

于 2009-03-01T06:11:00.403 に答える