タイトル : Re^5: VB6.0でデータをバイナリ処理 投稿日 : 2010/02/23(Tue) 15:18 投稿者 : あかちん
魔界の仮面弁士さん とても丁寧な解説をありがとうございます 以下の3点でとても参考になりました。 1 同時アクセスの可能性 > それは考慮済みという事であれば、Remote Desktop による複数人同時ログオンや > アプリの同時起動などにより、同一ファイルへの同時アクセスが発生していないかを > 確認してみてください。 対策 ファイルは開いてすぐに閉じます。やはり不十分ですよね 2 Lock Writeについて > > Open Datafile For Binary Access Read As #1 > > Open Datafile For Binary Access Write Lock Write As #2 > 書きこみ時には「Lock Write」していますが、その反面、 > 読み込み時には未指定ですが、それは意図的な物ですか? 読込にはlockが必要無いと思っていたのですがどうも大きなミスらしい 3 末尾のゴミ > > Get #1, 1, RW() > > Put #2, 1, RW() > この方法は、テキストファイルへの読み書きには使えませんが、その点は大丈夫ですか? > また、各要素の文字列長が短くなった場合、末尾にごみデータが残る可能性があります この件については全く予想してませんでした。この場合書き込んだデータを読み込むとき書き込んだデータと異なるデータが返される事になるのでしょうか。 ちなみに書き込むデータは join関数で普段使用しない"|"や"^"でテキストデータを結合(?)して rw(0)="|ア行^あ^い^う^え^お|カ行^か^き^き^け^こ||||||"つぃます。 このような文字列を書き込んで 読み込むときにsplit関数で分解(?)するようにしています。自己流も甚だしいと思いますが 学校現場にあったレベルだと思っています。 以上を参考にコード修正を検討していきたいと思っています。解決したらまたこの場をお借りして報告したいと思っています。すでにリタイヤしているがこのような作業は楽しみです。 |