• ベストアンサー

アクセスのように

3つの項目を入力し、ファイルに保存していきます。 そして、入力フォーム上にそれまで入力したデータを 表示させ、修正などを行うことは可能でしょうか? アクセスのように1レコードごと参照でき、編集できるようにしたいのですが(とにかくPerlで)。 どうかよろしくお願いします。

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

  • ベストアンサー
  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.4

win2000でしたか・・・。 ランダムアクセスが出来ない以上、一度読み込んで連想配列に入れてからデータを指定して編集し、もう一度保存するという方法しかないかと思います。 windowsならアクセスそのものを使ってデータの保存をしてみてはいかがですか? ただし、実行速度としてどちらが速いかはデータ量によるかと思いますが・・・。 DB接続については下記URLを参考にしてください。

参考URL:
http://member.nifty.ne.jp/hippo2000/
jkkm
質問者

お礼

そうですか、やはり無理ですか。#3の方も同様に言われているやり方でやってみます。2日間にわたってありがとうございました。

その他の回答 (3)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.3

> win2000上では無理なのでしょうか? と言っているのでいささか不安を感じますが、、 保存させる時は、# 2 の方が言ってらっしゃるように、 「行の指定」は出来ません。ピンポイント追加は不可能なわけです。 なので、 編集して送られたデータを一度、「整形して変数に格納」してから その「変数」を、ファイルに「上書き保存」という形でやるといいです。 ----------------------------- リンゴ,アップル,赤, みかん,オレンジ,青かな?, ----------------------------- ↑このデータに ----------------------------- リンゴ,アップル,赤, みかん,オレンジ,橙, ----------------------------- ↑これを上書きするという形ですね。

jkkm
質問者

お礼

なるほど、ファイルの中身を丸ごと入れ替えるわけですね。そういうやり方もあるんですね。ありがとうございました。

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.2

データの位置を指定してそれを読み書きができる入出力方法をランダムアクセスと言います。 アクセスを始めとしたデータベースはこの方式です。 通常のPerlのファイル入出力はシーケンシャル方式といって先頭から読み書きしたり、最後に追加したりは出来ますが位置の指定は出来ません。 テキストファイルの読み書きの場合、通常はシーケンシャルなので位置指定は出来ません。 UNIXには簡易データベースとしてDBMというものが用意されています(環境によって無い場合もある)。 これを利用すれば連想配列を利用したランダムアクセスが出来ます。 詳しくは下記URLを参考にしてください。

参考URL:
http://www.psl.ne.jp/perl/pdojo03.html
jkkm
質問者

補足

どうもありがとうございます。 そうなんですか。win2000上では無理なのでしょうか?

  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.1

> 可能でしょうか? そんなに特殊なことではないのではないでしょうか? 問題はUIに何を使うのかというだけなんではないでしょうか。

関連するQ&A

専門家に質問してみよう