初心者です。宜しくお願い致します。
・機械の稼働状態のログを取るアプリを作っています。10数秒毎にファイルに追記していきます。
機械とのやりとりはシリアルポートを使っています。
・外部(ホスト)からLANで随時このログファイルを読むことが出来るようにしたいのですが、どのような仕組みにすればいいのでしょうか?
・Delphi2007です。
宜しくお願いします。
>・外部(ホスト)から
って、LANの外からアクセスして、LANの中にあるPCのログファイルを読みたいって事なのかな?
外部(ホスト)から?様
遅くなって済みません。同じ構内LANのPCからログPCへの読み込みです。
宜しくお願い致します。
単純に共有フォルダに入れてしまうってんじゃダメですよね(^^;
単純にファイルを開くことができるんで楽ですけど
ログを書き込む側との排他処理をきちんとしないといけないですが。
ログを取るアプリが自前のものなら、そのアプリに通信機能を持たせて
外部からはそのアプリに対してログの取得を依頼するようにすれば
ログファイルの排他処理もやり易くなりそうです。
Quest 様
ご教示有り難うございます。共有フォルダも考えたのですが、外部からのアクセスで共有フォルダの書換等
やられてしまうと、もともこもなくなってしまうようで。
「ログアプリ側に通信機能をもたせる」というのは、具体的にはDelphiのどういう機能を使えばいいのでしょうか?
ご教示いただけませんでしょうか。宜しくお願い致します。
ところで、今回私がやろうとしていることは、一般的によく行われていることだと思うのですが、何か定型的なも
のというのは無いのでしょうか?ご存知のかた、経験ありの方いらっしゃいましたら、どうぞよろしくお願いいた
します。
こういうときはFTPですかね?
http://mrxray.on.coocan.jp/Delphi/plSamples/773_Indy_FTPGetPut.htm
黒猫さん、こんにちは。
共有フォルダでも、書き込みの権限を与えなければ大丈夫だと思いますが。
「通信機能」とざっくりとした表現をしましたが、ログファイルの構造
(DBなのか、ただのテキストファイルなのか)や、ログの読み方(1件ずつ
でいいのか、1日分いっぺんにとかなのか)で、いろいろな方法が考えられます。
たとえば、1日分が1つのファイルになったテキストファイルで
1日分丸ごと欲しいような場合は、deldelさんが仰る様なFTP(やTFTP)などが
考えられます。
また、ログを書く頻度が1分に数回程度のようですので、ログをDBに書いてしまうというのも
一つの方法かもしれません。
TCPやUDPで通信するのを想像しましたが、ログを読みにいく「外部(ホスト)」が
何台あるのか、どのくらいの頻度でどのくらいの量のログを読むのかなどの
詳細な条件をご提示いただければ、もう少し突っ込んだお話も出来ると思います。
でも、このシステムのLAN環境が自由になるのなら、やはり共有してしまうのが
簡単なような気がします。
deldel 様 情報有り難うございます。FTPについて勉強してみます。
Quest 様 訳の分からない初心者に付き合って頂いて、感謝致します。
条件を明確にします
・ログファイルは単なるテキストデータです。(依頼部署からの指示により、CSVです)
・読み方はファイルを一度に、データ数は最大10000データ位です。
・読み手PCは1台で、頻度は1日に1回程度です。このPCを操作する人は複数で、PC操作
に慣れていない人も含まれます。
共有フォルダを躊躇した私なりの理由
・読み手PCを操作する人が、読み込みプログラムを終了せずにそのままで立ち去ったり
した場合、ログ保存ができなくなる??と
以上です。ご教示いただければ幸いです。
データーベースに保存して、アクセスする側のデーターベースへの権限をReadOnlyにすれば良いでしょう。
ツイート | ![]() |