• 締切済み

テキストファイルでの1件データ更新について

最近、学校でVB4.0を使ってましてやっとファイルの読み、書きができる程度のレベルの初心者なんですが、例えば1万件ぐらいあるデータがテキストファイルにあってそれをある項目で探し出して更新かけちゃうってゆプログラムを作りたいのですが、更新がわかりません。読むんで位置を確定するのはseek命令でよいと思うのですが、1件のデータの更新ってゆうのはどうすればよいのでしょうか? ひょっとしら馬鹿馬鹿しい質問かもしれませんが超初心者な者で勘弁してください~m(__)mペコ

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

Seekとあるところから、多分旧Basic系のGET,PUT などを使う勉強かと思います。ランダムに情報を扱うには (A)レコード番号を扱う(B)先頭からの文字数を扱う の2つがある。先頭より全部読んで行くシーケンシャルに 比べ、目的のところを一発で読めるメリットがあるが、目的のものが何処にあるかが、すなわちa.何番目のレコードにあるか,b.または何バイト目にあるか、判ってないといけない。探すレコードの項目(変数)の中身が例えば「山田」(苗字を探すとして)と判っていて、それを指定して探すことは出来ない。そんなことをしてくれる検索ソフト(アプリ)が勿論あるが、Seek等だけ使ってやっているわけで無い。例えば索引という「構造」を別途持っていて、山田という苗字の人のレコード番号は123、343、1234番の3人いると言う情報を使う前に別途準備として割り出して保持していて、その情報により123番レコードを読みに行けるのです。ただ何百番台に山田がいるという情報だけで、その100人は総なめチェエクするというやり方もあり得ます。色々組み合わせは行われる。データ構造を持ちこむということは勉強とか実務にとっても大きなテーマです。ここを勉強してください。 ●質問の「1件」は何番目のレコード番号か言えますか。 言えないでしょう。ではダメです。 ●後はVBの本などで「PUT #」ステートメントの項を 読んでください。レコード番号を指定して、そのレコード番号 のデータを指定した変数内容で書きかえる(上書きする)事が 出来るとなっているはずです。Put #1,123,aのように。しかし 123のところへ、何番を入れたら良いのか。 ●「馬鹿馬鹿しい質問かもしれませんが-->もっとも難しい 且つ重要な問題の入り口に来ました。ソフト関係者はこれに皆 苦闘したはずです。