DatファイルからDBFへコンバート処理について


 2012-04-12 02:19:05  No: 41901  IP: [192.*.*.*]

DatファイルからDBFへコンバートした時にデータをコンバートしただけではうまくひらきません。
ネット等でテーブル処理について下記のサンプルがあったのでですがよくわからないため書き込みさせていただきました。
(インデックス等の情報をはりつけてるんですか?)
アドバイス等いただけると助かります。

  //データコピー後  下処理

  //読み取り
  AssignFile(FromF,AAA.DBF);
  Reset(FromF,1);

  //書き込み
  AssignFile(ToF,BBB.MDX);
  Reset(ToF,1);

  repeat
    BlockRead(FromF,Buf,SizeOf(Buf),NumRead);
    BlockWrite(ToF,Buf,NumRead,NumWritten);
  until (NumRead=0) or (NumWritten <>NumRead);
  
  CloseFile(FromF);
  CloseFile(ToF);

編集    削除
igy  2012-04-12 03:42:15  No: 41902  IP: [192.*.*.*]

挙げられたコードは拡張子 DBF のファイルから、拡張子 MDX のファイルへ書き込んでいるみたいですが、

>DatファイルからDBFへコンバート

とも書かれていますが、

どの形式のファイルからどの形式のファイルにコンバートしたいのですか?



拡張子 DBF は、dBaseみたいですが、拡張子 MDX は

http://www.7key.jp/data/ext_new/m/mdx.html

ソースネクスト社 の携帯電話ユーティリティ「携快電話」用ファイルでしょうか?

編集    削除
 2012-04-12 22:08:49  No: 41903  IP: [192.*.*.*]

igyさん書き込みありがとうございます。

>ソースネクスト社 の携帯電話ユーティリティ「携快電話」用ファイルでしょうか?

delphiテーブルのインデックス作成したときにMDXファイルが作成され、
そのインデックス情報をコピーする方法を探していたんですが、下記サイトよりインデックスのコピー方法が記述してあったため試してみます。

http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00080.htm

編集    削除
 2012-04-12 23:26:27  No: 41904  IP: [192.*.*.*]

↓試しました^^;
エラーメッセージ「テーブル/インデックスヘッダーが壊れています。」
とでます。
table2のテーブルはたしかに開けないじょうたいでした。

Var
  i : Integer;
Begin
   BatchMove1.Execute
   Table1.IndexDefs.Update;  //コピー元のテーブルを指定
   For i := 0 To Table1.IndexDefs.Count - 1 Do
     Table2.AddIndex(Table1.IndexDefs[i].Name,  //Table2はコピー先
                     Table1.IndexDefs[i].Fields,
                     Table1.IndexDefs[i].Options);
End;

編集    削除
igy  2012-04-12 23:33:20  No: 41905  IP: [192.*.*.*]

>DBFへコンバートした時にデータをコンバートしただけではうまくひらきません。

データ自体のコンバートのほうは、どのような処理で行われたのですか?

編集    削除
HOta  2012-04-13 06:30:36  No: 41906  IP: [192.*.*.*]

拡張子から、dBase4のデーターファイルの様ですね。
最初の例だと、dbfファイルをmdxファイルとしてコピーしているように見えます。
一体、何をしようとしているのでしょうか?よくわかりません。
質問の内容を詳しく説明してください。

編集    削除