- PR -

テキスト整形のアルゴリズム

1
投稿者投稿内容
あのことこのこ
会議室デビュー日: 2003/06/08
投稿数: 10
投稿日時: 2006-03-21 02:09
性能関連のデータをグラフ化(手作業)していて思いました
自動化したい・・・と
でもそれには乗り越えなくてはいけない問題があります
そこで皆様のお知恵を拝借したいと思っています

・性能データは「大体30分毎」にポーリングで収集されてテキストに追記されます
・データ取得ツールの仕様で数時間に一回、「大体30分毎で無いデータ」が取得されてしまいます。これは必要ありません。削除対象です。

上記の条件で不要部分を取り除くにはどの様なスクリプトでどの様な方法でやっつけてやりますか?
※下記に例を示します

1.スクリプト(PHP/Perl/Ruby etc)
2.方法

=================================================================

06.03.07 07:22:40
06.03.07 07:51:40 ←不要
06.03.07 07:53:31
06.03.07 08:23:31
06.03.07 08:53:31
06.03.07 09:23:31
06.03.07 09:53:31
06.03.07 10:23:31
06.03.07 10:53:31
06.03.07 11:23:31
06.03.07 11:52:31 ←不要
06.03.07 11:53:36
06.03.07 12:23:36
06.03.07 12:53:36
06.03.07 13:23:36
06.03.07 13:53:36
06.03.07 14:23:36
06.03.07 14:53:36
06.03.07 15:23:36
06.03.07 15:52:36 ←不要
06.03.07 15:53:42
06.03.07 16:23:42

=================================================================
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-03-21 02:23
「大体30分毎で無いデータ」って仰っていますが、
大体というものをプログラムで表現できません。
誤差何分以内までが30分毎となるかを決定する必要があります。

入出力機能の有無とプラットフォームで
スクリプトは代わると思いますが、一般的な言語であれば
perlでもphpでもVBScriptでもJavaScriptでも、何でも可能と思います。
(入出力機能の有無が重要)

フィルタ的なツールであれば、
1.入力テキストを開く
2.出力テキストを開く
3.行を解析(行数分)
4.行の時間を保持
5.前回の保持された時間との差が閾値以内であれば、3へ
6.出力テキストに行の内容を書き出して3へ
7.最後にファイルをクローズ

って感じでできませんかね。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-03-21 10:39
「大体4時間毎のデータ」が余分に混入している、ように見えます。
-------------
クイックandダーティーなら
06.03.07 07:22:40

06.03.07 07:2
桁までで
uniq
でしょうか。
DBでSQLクイズに強そうな人に相談してみましょう。

[ メッセージ編集済み 編集者: MMX 編集日時 2006-03-21 10:48 ]
あのことこのこ
会議室デビュー日: 2003/06/08
投稿数: 10
投稿日時: 2006-03-21 13:18

回答有難う御座います

>誤差何分以内までが30分毎となるかを決定
>5.前回の保持された時間との差が閾値以内であれば、3へ

なるほど一行一行で前回時間と比べてフィルタリングしていけば不要部分を
取り除く事が出来そうです
課題となるのは下記の様な場合、「閾値の設定」ですね

1行目 06.03.07 07:22:40
2行目 06.03.07 07:51:40 ←不要
3行目 06.03.07 07:53:31

>「大体4時間毎のデータ」が余分に混入している
なるほど!そういう見方もありますね

>SQL-uniq
目から鱗でした
ちょっと調べてみます
1

スキルアップ/キャリアアップ(JOB@IT)