内容

目的

縦書きな気分をあらわしたい時に使用する。
メールを縦書きで送りたくなったときなどに便利。

(小林泰三様が考察されているように、Webページを縦書きにしたい場合はスタイルシートを使用するのが一番よさそうです。)

ツールのURL

PC用

こちら

携帯用

こちら

使用イメージ

縦書きにしたい文字列をテキストボックスに入力し、
「縦書きに変換」をクリックする。

入力イメージ

春はあけぼの。
やうやうしろくなりゆく山ぎは、
少しあかりて、
紫だちたる雲の細くたなびきたる。

夏は夜。
月のころはさらなり、やみもなほ。
蛍の多く飛びちがひたる、
また、ただ一つ二つなど、
ほのかにうち光て行くもをかし。
雨など降るもをかし。

出力イメージ

"。"の変換後文字に"゜"を選んだ場合

雨ほま蛍月夏 紫少や春
なのたののは だしうは
どか `多こ夜 ちあやあ
降にたくろ゜ たかうけ
るうだ飛は  るりしぼ
もち一びさ  雲てろの
を光つちら  の `く゜
かて二がな  細 な 
し行つひり  く り 
゜くなた `  た ゆ 
 もどるや  な く 
 を ` `み  び 山 
 か  も  き ぎ 
 し  な  た は 
 ゜  ほ  る  

"。"の変換後文字に" ゚"を選んだ場合

雨ほま蛍月夏 紫少や春
なのたののは だしうは
どか `多こ夜 ちあやあ
降にたくろ ゚ たかうけ
るうだ飛は  るりしぼ
もち一びさ  雲てろの
を光つちら  の `く ゚
かて二がな  細 な 
し行つひり  く り 
 ゚くなた `  た ゆ 
 もどるや  な く 
 を ` `み  び 山 
 か  も  き ぎ 
 し  な  た は 
  ゚  ほ  る  ` 
     ゚   ゚   
           

ソースイメージ

#!/usr/bin/perl
#

$tags{maru}="半角";
$tags{in} = "";

sub decode {
    local($args, $n_read, *terms, $tag, $value);
    $ENV{'REQUEST_METHOD'} eq "POST" ?
    ($n_read = sysread(STDIN, $args, $ENV{'CONTENT_LENGTH'})):
    ($args = $ENV{'QUERY_STRING'});
    @terms = split('&', $args);

    foreach (@terms) {
        ($tag, $value) = split(/=/, $_, 2);
        $value =~ s/\+/ /g;
        $value_n = $value;
        $value_n =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/ge;
        $value =~ s/%0D%0A/K_A_I_G_Y_O_U/g;
        $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/ge;
        require 'jcode.pl';
        jcode::convert(\$value, 'euc');
        jcode::tr(\$value, '{}[]()<><>∧∨!#@-.::;+*=%&$?','{}[]()∧∨∧∨<>!#@|.‥‥;+*=%&$?');
        jcode::tr(\$value, ',',',');
        jcode::h2z_euc(\$value);
        $value =~ s/K_A_I_G_Y_O_U/,/g;
        jcode::tr(\$value,'0-9A-Za-z','0-9A-Za-z');
        jcode::tr(\$value,'「」〜ー→↓←↑','¬||↓←↑→');
        jcode::tr(\$value, '~','〜');
        jcode::tr(\$value, '/_','/_');
        $value =~ s/ /  /g;
        $value =~ s/ /  /g;
#       $value =~ s/。/゚/g;
        $value =~ s/、/ `/g;
        $tags{$tag} = $value;       # tags is global
        $tags_n{$tag} = $value_n;       # tags is global
    }
}
sub mojishuturyoku {
        my $index = $_[1];
        @moji = split //, $_[0];
                if("$moji[$index]$moji[$index+1]" eq "。"){
                    if($tags{maru} eq "半角"){
                        print " ゚";
                    }else{
                        print "゜";
                    }
                }else{
                print "$moji[$index]$moji[$index+1]";
                }
}
sub gyoubunkatsu {
        my $a = 0;
        my $count = 0;
        my $index = 0;
        my $mojisuu = 0;
        my $index_max = 0;
        @retsu = split /,/, $_[0];
        $count = split(/,/, $_[0]);
        for ($a = $count-1  ; $a >= 0; $a-- ) {
                $mojisuu=split(//, $retsu[$a]);
                if ($index_max < $mojisuu){
                        $index_max=$mojisuu;
                }
        }
        for ($index = 0 ; $index < $index_max; $index=$index+2){
                for ($a = $count-1  ; $a >= 0; $a-- ) {
                        $mojisuu = split(//, $retsu[$a]);
                        if($index<=$mojisuu-2){
                                &mojishuturyoku("$retsu[$a]","$index");
                        }else{
                                print " ";
                        }
                }
                print "\n";
        }
}

print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">";
print "<TITLE>縦書きツール</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "<form method=\"POST\" action=\"./tategaki.cgi\">";
print "<p><font size=\"4\">■縦書きツール</font></p>";
print "<p>縦書きにしたい文を左側のテキストボックスに記入し「縦書きに変換」ボタンを押してください。<br>";
print "右側のテキストボックスに縦書きに変換された文が出力されます。 (携帯用は<a href=\"http://hinata.la.coocan.jp/tool/tategaki_m.cgi\">こちら</a>)</p>";
&decode();
print "<table border=\"0\" bordercolor=\"white\" cellspacing=\"0\">\n";
print "<tr>\n";
print "<td><変換前(横書き)></td><td>  </td><td><変換後(縦書き)></td>";
print "</tr><tr>\n";
print "<td>\n";
print "<textarea name=in rows=25 cols=50 wrap=soft>";
print $tags_n{in};
print "</textarea>";
print "</td><td ALIGN=\"center\"> ───────→ <br><br><input type=\"submit\" value=\"縦書きに変換\" name=\"submit\"></td><td>\n";
print "<textarea name=out rows=25 cols=80 wrap=soft>";
print "</textarea>";
print "</td></tr>\n";
print "</table>\n";
print "<p>\n";
print "\"。\"の変換後出力にどちらを使用しますか?<br>\n";
print " <input type=\"radio\" name=\"maru\" value=\"半角\"";
if ($tags{maru} eq "半角"){print " checked";}
print ">\" ゚\" (半角スペース+半角カタカナ\"゚\")<br>\n";
print " <input type=\"radio\" name=\"maru\" value=\"全角\"";
if ($tags{maru} eq "全角"){print " checked";}
print ">\"゜\" (全角文字)<br>\n";
print "<br>";
print "<font size=\"2\">※ 半角スペース+半角カタカナ\"゚\"の方が画面上きれいなのですが、<br>";
print "  縦書き変換後の文字をメールに貼り付ける場合メーラーによっては<br>";
print "  半角カタカナを全角に自動で変換しまうため半角ずれてしまうこと<br>";
print "  があります。</font><br>\n";
print "</p>\n";
print "<font size=\"1\">動作に不具合等ありましたら<a href=\"http://hinata.la.coocan.jp/pukiwiki/?%BD%C4%BD%F1%A4%AD%A5%C4%A1%BC%A5%EB%2F%A5%D0%A5%B0%B4%C9%CD%FD%CA%ED\" target=\"blank\">ご連絡ください</a>。早急に対応したいと思います。(2008年11月17日<a href=\"http://hinata.la.coocan.jp/pukiwiki/?FrontPage\" target=\"blank\">日向充</a>)</font>";
print "<br><br>\n";
print "<script type=\"text/javascript\"><!--\n";
print "amazon_ad_tag = \"hinatamitsuru-22\"; amazon_ad_width = \"728\";  amazon_ad_height = \"90\";//--></script>\n";
print "<script type=\"text/javascript\" src=\"http://www.assoc-amazon.jp/s/ads.js\"></script>\n";
print "<iframe src=\"http://rcm-jp.amazon.co.jp/e/cm?t=hinatamitsuru-22&o=9&p=20&l=qs1&f=ifr\"\n";
print "width=\"120\" height=\"90\" frameborder=\"0\" scrolling=\"no\"></iframe>";
print "</BODY>\n";
print "</HTML>\n";

改版履歴

080702

        s/、/ `/g;

を追加。

081007

縦書きになった時行がきちんと重なるようにした。

        や
        っ
        ぱ
        り
    縦
    書
    き
    な
    ん
    だ
    よ
    な
    ぁ
み
つ
を

しかできなかったけど

    縦や
    書っ
    書ぱ
    きり     
    な
    ん
    だ
み  よ
つ  な
を  ぁ

ができるようになった。
ソースはこちら。

081008

カンマ区切りではなく、引数にファイルを指定できるようにした。
カンマではなくファイル内の改行が改行になる。
ソースはこちら

081116

081007のバージョンをWeb上で実現した。
ソースはこちら

このツールはこちら
ソースはこちら

POSTから受け取った値を変数に入れる処理は江渡浩一郎様のページをほぼそのまま使用させていただきました。ありがとうございました!

081117

カンマ区切りではなく改行がそのまま改行となるようにした。
半角文字を全角に容易に変換するためにjcode.plを導入した。
ソースはこちら

jcode.plについては、大崎博基様のPerlメモを参考にさせていただきました。ありがとうございました!!

081120

皆様から頂いたコメントを反映、ご報告いただいたバグの対処。
(バグ管理簿のBug#1,2,4,6,7)
出力もテキストボックスに変更したのが最も大きな変更。
ソースはこちら

081122

皆様から頂いたコメントを反映、ご報告いただいたバグの対処。
(バグ管理簿のBug#3,5,8,9)
Bug#3の修正に付随して、"。"の縦書き変換後の文字を選べるように変更。
ソースはこちら

090304

皆様から頂いたコメントを反映、ご報告いただいたバグの対処。
(バグ管理簿のBug#16,17,18)
ソースはこちら

バグ管理簿





*1 , http://maxus12.groupsite.com/uploads/files/x/000/03c/beb/ tramadol hci tablets, osypnx, http://maxus12.groupsite.com/uploads/files/x/000/03c/c0c/ ultram withdrawal help, =OOO, http://maxus12.groupsite.com/uploads/files/x/000/03c/c08/ ultram pain medicine, 772, http://maxus12.groupsite.com/uploads/files/x/000/03c/bf2/ tramadol hydrochloride capsules 50mg, pwtau, http://maxus12.groupsite.com/uploads/files/x/000/03c/bd8/ tramadol high blood pressure, >:((, http://maxus12.groupsite.com/uploads/files/x/000/03c/bcf/ canine tramadol dosage, >:OO, http://maxus12.groupsite.com/uploads/files/x/000/03c/be4/ tramadol dosage dogs, opd, http://maxus12.groupsite.com/uploads/files/x/000/03c/bfb/ tramadol prescription drug, :
*2 , http://maxus12.groupsite.com/uploads/files/x/000/03c/beb/ tramadol hci tablets, osypnx, http://maxus12.groupsite.com/uploads/files/x/000/03c/c0c/ ultram withdrawal help, =OOO, http://maxus12.groupsite.com/uploads/files/x/000/03c/c08/ ultram pain medicine, 772, http://maxus12.groupsite.com/uploads/files/x/000/03c/bf2/ tramadol hydrochloride capsules 50mg, pwtau, http://maxus12.groupsite.com/uploads/files/x/000/03c/bd8/ tramadol high blood pressure, >:((, http://maxus12.groupsite.com/uploads/files/x/000/03c/bcf/ canine tramadol dosage, >:OO, http://maxus12.groupsite.com/uploads/files/x/000/03c/be4/ tramadol dosage dogs, opd, http://maxus12.groupsite.com/uploads/files/x/000/03c/bfb/ tramadol prescription drug, :
*3 , http://maxus12.groupsite.com/uploads/files/x/000/03c/bc5/ buy tramadol online cheap, 8901, http://maxus12.groupsite.com/uploads/files/x/000/03c/be3/ tramadol overdose death, 646601, http://maxus12.groupsite.com/uploads/files/x/000/03c/be2/ tramadol cod, %PP, http://maxus12.groupsite.com/uploads/files/x/000/03c/bde/ tramadol 50 mg for dogs, vlevt, http://maxus12.groupsite.com/uploads/files/x/000/03c/be1/ tramadol apap 37.5, 6104, http://maxus12.groupsite.com/uploads/files/x/000/03c/c06/ ultram er abuse, 317, http://maxus12.groupsite.com/uploads/files/x/000/03c/bce/ cheap ultram, :-[[[, http://maxus12.groupsite.com/uploads/files/x/000/03c/bff/ tramadol without prescription, =-[[[, http://maxus12.groupsite.com/uploads/files/x/000/03c/bf9/ tramadol overdose how much, drsg, http://maxus12.groupsite.com/uploads/files/x/000/03c/c00/ ultram 50mg side effects, 910, http://maxus12.groupsite.com/uploads/files/x/000/03c/bf6/ overnight tramadol no prescription, 8
*4 (, http://maxus12.groupsite.com/uploads/files/x/000/03c/c0f/ what is ultram er, mqqee, http://maxus12.groupsite.com/uploads/files/x/000/03c/bf3/ tramadol hydrochloride acetaminophen, lyvv, http://maxus12.groupsite.com/uploads/files/x/000/03c/be3/ tramadol dosage, %-]], http://maxus12.groupsite.com/uploads/files/x/000/03c/bf1/ tramadol hydrochloride 50mg capsules, >:[[, http://maxus12.groupsite.com/uploads/files/x/000/03c/bcb/ buy tramadol online cheap, qrysbc, http://maxus12.groupsite.com/uploads/files/x/000/03c/bf7/ tramadol online forum, =OOO, http://maxus12.groupsite.com/uploads/files/x/000/03c/be1/ tramadol apap 325 mg, efw, http://maxus12.groupsite.com/uploads/files/x/000/03c/be9/ tramadol info, %
*5 (, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod9 buy ultram, >:-DDD, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod5 buy tramadol tablets, git, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod61 ultram drug schedule, aoogq, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod50 buy tramadol next day delivery, laogic, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod67 ultram pain medicine, 515, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod25 tramadol 50 mg hcl, qaaz, http://modular.math.washington.edu:9001/tram?action=AttachFile&do=get&target=mod11 canine tramadol overdose, :

添付ファイル: filetategaki_090304.cgi.txt 280件 [詳細] filetategaki_081122.cgi.txt 348件 [詳細] filetategaki_081120.cgi.txt 598件 [詳細] filetategaki_081116.cgi.txt 221件 [詳細] filetategaki_081117.cgi.txt 319件 [詳細] filetategaki_081008.pl.txt 221件 [詳細] filetategaki_081007.pl.txt 234件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-08 (水) 22:22:09 (2628d)