From: Koichi KAMICHI Date: Fri, 26 Jan 2007 00:44:04 +0000 (+0000) Subject: Added web page for checking data. X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=035d452b37663e199ebb66204c3a713de0c720de;p=chise%2Fkage.git Added web page for checking data. --- diff --git a/makettf/checkdata.cgi b/makettf/checkdata.cgi new file mode 100755 index 0000000..d156024 --- /dev/null +++ b/makettf/checkdata.cgi @@ -0,0 +1,98 @@ +#!/usr/bin/perl + +$ERROR_SYNTAX = 1; +$ERROR_NOPARTS = 2; + +use utf8; +binmode STDOUT, ":utf8"; +use CGI; +$form = new CGI; +$| = 1; + +my $data = $form->param('partsdata'); +utf8::decode($data); +@buffer = split(/\r\n|\r|\n/, $data); + +$result = ""; + +$pre1 = ""; +$pre2 = ""; + +%parts = (); +foreach $temp (@buffer){ + if($temp =~ m/:/ && $temp =~ m/[0-9]/){ + @temp = split(/ |\t|\r\n|\r|\n/, $temp); + $parts{$temp[0]} = 1; + } +} + +foreach $temp (@buffer){ + if($temp =~ m/:/ && $temp =~ m/[0-9]/){ + $error = 0; + $check = 0; + @temp = split(/ |\t|\r\n|\r|\n/, $temp); + @temp2 = split(/\$/, $temp[1]); + foreach $temp2 (@temp2){ + if($temp2 =~ m/^1:(0|2):(0|2):/){ $check++; } + if($temp2 =~ m/^1:(0|12|22|32):(0|13|23|32|4):/){ $check++; } + if($temp2 =~ m/^2:(0|12|22|32):(4|5|7):/){ $check++; } + if($temp2 =~ m/^2:7:(0|4|8):/){ $check++; } + if($temp2 =~ m/^2:2:7:/){ $check++; } + if($temp2 =~ m/^3:(0|12|22|32):(0|5):/){ $check++; } + if($temp2 =~ m/^6:22:5:/){ $check++; } + if($temp2 =~ m/^7:(0|12|22|32):7:/){ $check++; } + if($temp2 =~ m/^99:[^:]+:[^:]+:[^:]+:[^:]+:[^:]+:[^:]+:([^:]+)/){ + $check++; + if(!exists($parts{$1})){ + $error = $error | $ERROR_NOPARTS; + } + } + if($temp2 =~ m/^0:/){ $check++; } + } + if($check == 0){ + $error = $error | $ERROR_SYNTAX; + } + if($error != 0){ + if($error & $ERROR_SYNTAX){ + $result .= "** 文法エラー・処理できない筆画があります **\n"; + } + if($error & $ERROR_NOPARTS){ + $result .= "** 99番で使用されている部品が存在しません **\n"; + } + $result .= "$pre2\n$pre1\n==> $temp\n"."-" x 70 . "\n"; + } + } + $pre2 = $pre1; + $pre1 = $temp; +} + +if($result eq ""){ + $result = "エラーはありませんでした\n"; +} + +print <<"EOT"; +Content-type: text/html; + + + + + + +チェック結果 + + +
+

チェック結果

+

チェック結果は以下の通りです。

+
+$result
+
+

戻る

+ +fonts.jp +
+ + +EOT diff --git a/makettf/checkdata.html b/makettf/checkdata.html new file mode 100644 index 0000000..82e26e4 --- /dev/null +++ b/makettf/checkdata.html @@ -0,0 +1,31 @@ + + + + + +TTF(TrueType)フォント生成 データチェック + + +
+

TTF(TrueType)フォント生成 データチェック

+ +
+部品データ
+ +
+ +
+ +

部品データを貼り付けてチェックボタンをクリックしてください。文法チェック(処理できない筆画のチェックを含む)および足りない部品のチェックを行います。

+ +戻る + + +fonts.jp +
+ + diff --git a/makettf/index.html b/makettf/index.html index ab3e05a..8f66b36 100644 --- a/makettf/index.html +++ b/makettf/index.html @@ -22,6 +22,8 @@ +

データのチェックを行う

+

説明

部品データは 1部品ごとに1行 で、「部品名、スペース、部品データ」の順に記述します。