たつをの ChangeLog : 2011-07-04

山形の妻のいとこからさくらんぼ「佐藤錦」を1kgも頂きました!!!
ありがとうございます!

サクランボ 佐藤錦

さくらんぼの生産量日本一で佐藤錦発祥の地である東根市のサクランボです。

- 東根市観光物産協会
http://www.higashine.com/

さくらんぼ 佐藤錦

たくさんあるので非常に充実したサクランボライフを送っております。
会社に持ってっておやつに食べたり♪

会社でさくらんぼ

積み木を頂きました。ありがとうございます。週末に届きました。

積み木

無塗装のつみきだそうです。

無塗装つみき

うちの子はさっそく舐めています。

積み木を舐める

まだ積んで遊ぶには早いですね。

U1 無塗装積木S

良質で美しいブナ材の木目を生かしたシンプルに仕上げられた積み木です。
この記事に言及しているこのブログ内の記事

実家からヘチマの苗をもらいました。

ベランダでヘチマを育てるよ

今年はベランダ菜園には手をつけてなかったんだけど、「ヘチマは育てるの簡単」とのことなので、日よけカーテンになってくれることを期待して育ててみます。

日曜の午前中、鉢に植えました。

ベランダでヘチマを育てるよ

すくすく育てよー!
この記事に言及しているこのブログ内の記事

妻がとらちゃん(もうすぐ10ヵ月)のために西松屋で買ってきた「ミニかいまきタオル」がよい感じです。
タオル地のスリーパーみたいなもので、お風呂上がりにバスローブとして使うと水分をぐんぐん吸い取ってくれます。

ミニかいまきタオル

しかも、着てる姿がかわいいんですよね。

西松屋の「かいまきタオル」

これはもっと早い時期に入手すれば良かったと思いました。

ミニかいまきタオル ミニかいまきタオル

対象年齢:約3ヵ月〜3才まで
組成:綿80%、ポリエステル20%(パイル部分 綿100%)
品番:NM-272(黄)、NM-273(青)
価格:各779円

簡単なテキスト検索 CGI の雛型」を改訂。
テキスト走査によるgrep的なシンプルな検索を行います。
新たにページ分割機能を付けました。

■コード(textgrep.cgi):
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI;
use HTML::Template;

my $filename = "test.txt";
my $n = 10;

my $q = new CGI;
my $from = $q->param('f') || 1;
my $next_line = $from + $n;
my $pre_line = ($from - $n > 1) ? $from - $n : 1;

my $key_org = $q->param('key') || "";
my $key = quotemeta $key_org;
$key =~ s/[<>]//g;

my $url = $q->url(-query => 1);
$url =~ s/[;&]f=(\d+)//;

print $q->header(-charset => 'UTF-8');

my $str = "";
if (not $key =~ /^\s*$/) {
   if (open(my $fh, "<", $filename)) {
       my $count = 0;
       while (<$fh>) {
	   my $line = $_;
	   next if not $line =~ s|($key)|<font color="red">$1</font>|g;
	   $count++;
	   next if $count < $from;
	   last if $count >= $from + $n;
	   $str .= "$count: ".$line;
       }
       close($fh);
       $str = "NOT FOUND" if $str eq "";
    } else {
	$str = "ERROR: Can't open '$filename'";
    }
}

my $template = join("", <DATA>);
my $t = HTML::Template->new(scalarref => \$template,
			    global_vars => 1,
			    die_on_bad_params => 0);
$t->param(from => $from);
$t->param(str => $str);
$t->param(next_line => $next_line);
$t->param(pre_line => $pre_line);
$t->param(path => $url);
$t->param(key => $key_org);

print $t->output();

__DATA__
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Text Search</title>
</head>
<body>
<form action="" method="get">
<input type="text" name="key" value="<TMPL_VAR name=key>">
<input type="submit">
</form>
<TMPL_IF name=str>
<a href="<TMPL_VAR name=path>&f=<TMPL_VAR name=pre_line>">&lt;&lt;</a>
<a href="<TMPL_VAR name=path>&f=<TMPL_VAR name=next_line>">&gt;&gt;</a>
<hr>
<pre><TMPL_VAR name=str></pre>
<hr>
<a href="<TMPL_VAR name=path>&f=<TMPL_VAR name=pre_line>">&lt;&lt;</a>
<a href="<TMPL_VAR name=path>&f=<TMPL_VAR name=next_line>">&gt;&gt;</a>
</TMPL_IF>
</body>
</html>

■設置例:
http://chalow.net/misc/textgrep.cgi

関連


- 簡単なテキスト検索 CGI の雛型 http://ta2o.net/tools/stct/
(今回のCGIの原型その1)

- [を] 巨大なテキストファイルをブラウザで覗き見するための簡単な CGI[2011-03-08-2]
(今回のCGIの原型その2)

- [を] SUFARYを用いた簡単辞書検索CGIの雛形[2011-03-15-2]
(インデックスを使った高速版)

たつをの ChangeLog
Powered by chalow