(現在 過去ログ4 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■7665 / inTopicNo.1)  Child Tree ログのJsへの書き出し方法
  
□投稿者/ ゆう -(2003/08/31(Sun) 10:41:45)
    りゅういちさん、こんにちわ。
    度々お世話になっております。
    いつも丁寧なご指導を頂けまして、私のように素人でも
    充分に理解する事が出来、また勉強にもなり大変ありがたく思っております。

    今回もまた、お知恵をお貸し頂きたく思いまして参りました。
    度重なる質問で申し訳ございません。

    今まで、I-BOARD 2001 のログから、
    題名や名前など必要部分を取り出して、JsでHTML上に書き出すCGIを使っておりました。
     ※以前こちらでサポートされていた方が作られた物を多少いじった物です
    I-BOARD 2001 のログは、単純に「<>」でのみ区切られているので、
    splitで<>として、必要データを取り出してJsに書き出していました。

    Child Tree のログなのですが…
    <>以外に、「:」や「|」などが利用されていて、
    今までのままのスクリプトが通用しなくなりました(当たり前ですが…)。

    本当に初歩的な事を伺っているのかもしれませんが…
    Child Tree ログの名前($name)や題名($d_may)を取り出すのは簡単なのですが
    $sel や $txt が取り出す事が出来ません。
     ※つまりは、:や|の中に入っているデータだと思います

    以前のスクリプトは以下のような感じです。
     ※短い物なので、直接貼り付けしてしまいましたが、
       ご迷惑となりましたら編集で削除して頂いても構いません。
       お手数お掛けします。
    Child Tree のログで再現する事は可能でしょうか…。
    まず今の所私の力量で、chopで並べる要素も曖昧です…。
     ※PerlはVer.は5なので、chompじゃなくても動作します

    大変お手数では有りますが、アドバイス的な事でも構いません。
    こちらでは当然テストしながら試行錯誤致しますので、
    何かしらご指南頂けると幸いです。

    お忙しいところすみません、宜しくお願い致します。

    ▼I-BOARD2001 での使用時のものです。
      最新ログから必要部分を3件書き出すようにしています

    @disp=();
    open(FILE,"<掲示板ログ.dat");
    for(1..3){
    $_=<FILE>;
    chop;
    ($n,$date,$name,$email,$title,$comment,$http,$color1,$color2,$icon,$no,$host,$ip)=split("<>",$_);
    push(@disp,"$date<>$name<>$n<>$title");
    }
    close(FILE);

    open(FILE,">date.js");
    print FILE "document.open();";
    foreach $i (@disp) {
    ($date,$name,$n,$title)=split("<>",$i);
    $d=substr($date,5,5);
    print FILE<<END;
    document.write('$d [$name]$title');
    END
    }
    print FILE "document.close();";
    close(FILE);

    # 透過PNGを定義
    @spriteblank=(137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,1,0,0,0,1,1,3,0,0,0,37,219,86,202,0,0,0,32,116,112,78,103,71,76,68,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,77,30,174,0,0,0,6,80,76,84,69,0,0,0,255,255,255,165,217,159,221,0,0,0,1,98,75,71,68,0,136,5,29,72,0,0,0,1,116,82,78,83,0,64,230,216,102,0,0,0,10,73,68,65,84,120,218,99,96,0,0,0,2,0,1,229,39,222,252,0,0,0,0,73,69,78,68,174,66,96,130);

    # 透過PNG表示
    print "Content-type: image/png\n\n";
    foreach (@spriteblank) {
    $data = pack('C*',$_);
    print $data;
    }

    exit;
引用返信 [メール受信/OFF] 削除キー/
■7669 / inTopicNo.2)  Re[1]: Child Tree ログのJsへの書き出し方法
□投稿者/ りゅういち -(2003/08/31(Sun) 23:06:48)
http://www.cj-c.com/
    No7665に返信(ゆうさんの記事)
    > > Child Tree のログなのですが…
    > <>以外に、「:」や「|」などが利用されていて、
    > 今までのままのスクリプトが通用しなくなりました(当たり前ですが…)。
    > > 本当に初歩的な事を伺っているのかもしれませんが…
    > Child Tree ログの名前($name)や題名($d_may)を取り出すのは簡単なのですが
    > $sel や $txt が取り出す事が出来ません。
    >  ※つまりは、:や|の中に入っているデータだと思います

    split() 関数を用いて、さらに分割すればよいです。
    例えば、$ip の部分は : で7つに区切られています。

    (IP,添付ファイル名,表示許可,拡張子,$TXT,$SEL,発言数)=split(/:/,$ip);

    で、ここの $TXT は | で、 $SEL は || でさらに区切られています。

    (ミニアイコン画像番号,アイコン画像名,フォント色,枠線色)=split(/\|/,$TXT);
    (フリーテキスト内容,フリーセレクト内容,ID)=split(/\|\|/,$SEL);

    といった感じになっています。
    (便宜上普通の日本語で書いていますが、変数で扱ってくださいね)

引用返信 [メール受信/OFF] 削除キー/
■7692 / inTopicNo.3)  [感謝] 難なく実現できました!!
□投稿者/ ゆう -(2003/09/03(Wed) 14:01:41)
    > split() 関数を用いて、さらに分割すればよいです。

    りゅういちさん、いつも丁寧なご返信とアドバイス有難うございます。
    本当に心よりお礼申し上げます。

    304行目辺りを参照にした所、りゅういちさんの仰る通りのアドバイスで
    再現する事が出来ました。
    ずっと悩んでいた事が、実現できてとても嬉しいです。
    有難うございました。

    最後に質問になってしまって、申し訳ないのですが…
    先のプログラムが掲示板ログを引っ張り、Jsへ書き出した物を
    サイトTOPページで(Jsを呼び出し)、表示させる利用用途なのですが…
    アクセスの度に先述プログラムが全ログを読み込む事となり、
    もしかしてサーバーへ負荷になりますか?
    プログラミングと関係ない事で申し訳ありません…。

    今回の事例に関しては、大満足で解決という事で解決チェックさせて頂きます。
    もしお手すきでしたら、負荷に関しても一言頂けると幸いに思います。

    お忙しい中、ご指導有難うございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■7698 / inTopicNo.4)  Re[3]: [感謝] 難なく実現できました!!
□投稿者/ りゅういち -(2003/09/03(Wed) 23:16:32)
http://www.cj-c.com/
    No7692に返信(ゆうさんの記事)
    > 先のプログラムが掲示板ログを引っ張り、Jsへ書き出した物を
    > サイトTOPページで(Jsを呼び出し)、表示させる利用用途なのですが…
    > アクセスの度に先述プログラムが全ログを読み込む事となり、
    > もしかしてサーバーへ負荷になりますか?

    それは当然そうです。サーバへの負荷はかかります。
    表示回数がさほど出なければ大きな不可にはなりませんが、
    多いと結構負荷は高いでしょう。
    ログに書き込みがあったときにファイルに書き込む、という方が、いいかもしれません
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -