-PR-
解決済み

固定長テキストファイルの読み込みについて

  • 暇なときにでも
  • 質問No.6147
  • 閲覧数636
  • ありがとう数13
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 7% (1/13)

初めて質問します。
VC++6を使用して、以下のことを行おうと思っていますがどのようにすればよいのかわかりません。
固定長テキストファイル数千レコードのデータを、データベース風にSQL文を発行して該当のレコードのみを抽出するようなことは出来ないのでしょうか?
その固定長テキストファイルには、キーとなる項目が存在します。
もし抽出が可能であるならば、追加や更新の方法もご教授していただけたらお願いいたします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2

テキストファイルをSQL形式で読み込むなら
shigatsuさんも書かれている通りにODBC経由で
の方が楽だと思います。
がしかしODBC経由だとはっきりいって遅いです。

1レコードサイズが何バイトかはわかりませんが
仮に1レコード1024バイトとしたとき
5000件データがあってもオンメモリで5Mほどです。
現状のPCではメモリを豊富に載せてあるので特に問題は
ないと思います。

で、これを、SQLと同じくselect時にファイルをオープンし
ファイルごとメモリに保存し、ファイルをクローズする。

そして、必要なものを別のメモリに確保するほうが楽で
す。

更新は修正があったもの検索結果データに書き込む
commit時は元のデータのメモリを更新し
ファイルをseekして書き込む

roolbsck時は、元のデータを検索結果データに書き込む

select終了のコマンドでメモリを開放する

といったほうが楽でしょう

削除は処理内容としては更新と同じですが
削除したレコードが検索結果にわかるようにする
commit時は元のデータのメモリから削除し
ファイルをseekして削除する

削除は、先頭からスペースにするか、先頭にNULL等削除されたことがわかるようにすればOKだと思いますよ

#単に削除したレコード以下をつめるのが面倒なだけです
#が...

上記はローカルでのみの処理です。

ネットワーク上で複数からのアクセスがある場合は
TCP/IPなどを使ってC/S形式にすればいいかと思います

#この場合は、色々と考えなくてはいけませんが
#更新中、削除中の場合をどうするか?ですね
#この後は、考えてみてください
関連するQ&A
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 26% (511/1924)

ODBC経由にしたら何とかなりそうなんですが、やったことは無いのでとりあえずヒント程度で。 コントロールパネルにODBCデータソースとかアドミニとかが有ると思いますので、それを使います。 詳細はヘルプを見てください。というか前述の通り私もテキストを使ったことは無いので・・・
ODBC経由にしたら何とかなりそうなんですが、やったことは無いのでとりあえずヒント程度で。

コントロールパネルにODBCデータソースとかアドミニとかが有ると思いますので、それを使います。
詳細はヘルプを見てください。というか前述の通り私もテキストを使ったことは無いので・・・


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ