• 締切済み
  • すぐに回答を!

Perlを使用してひらがな表の作成

Perl全くの初心者です。「.cgi」ファイルを利用して下記のひらがな表を作成しようと考えているのですが、全くうまくいきません。。。 どのうようにソースを書いたら良いでしょうか?おしえて頂くと助かりますのでよろしくお願いします! ※1 表の罫線は外側は太線で、他の罫線はすべて破線(点線)にしたいです。 ※2 あ段(あかさたな…わ)の上の部分は1マス空欄を入れたいです。 ※3 CSS(スタイルシート)を使用して罫線、フォントの設定をします。 ---------------                ←この部分は空欄 わ ら や ま は な た さ か あ り み ひ に ち し き い を る ゆ む ふ ぬ つ す く う れ   め へ ね て せ け え ん ろ よ も ほ の と そ こ お どうぞよろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数488
  • ありがとう数1

みんなの回答

  • 回答No.3
  • 15mm
  • ベストアンサー率65% (65/100)

何もわかっていただけなかったようで・・・ ループ処理というのは本来規則性のある処理に対して使うものです。 @a=unpack("C*","わらやまはなたさかあ");print "@a"; を実行してみてください。 わらやまはなたさかあ を1バイトずつ文字コードの数字に変えるものです。 あなたが使う文字コードは知りませんが、数字を見てみてください。 同じ数字が何度か出るでしょうが、2バイト文字ですので必然です。 それ以外に、その中に規則性を見出すことができますでしょうか? それらがきれいな数列に見えますでしょうか? 計算式でそれらの数値をはじき出すことができますでしょうか? 九九表のようにきれいな世界ではありません。 規則性の無いものにループ処理を適用しようとすると、条件分岐だらけになり、 処理も遅くなる、スクリプトファイルの容量が肥大化。デメリットだけが残るのです。 どうしてもというなら @a=( "わ","ら","や","ま","は","な","た","さ","か","あ", " ","り"," ",(略)); のような各要素一文字の最初から五十音表を見越した配列でも作って きれいなループ処理のように見せかけておけばいいです。 そうすると今度はメモリを喰うだけという悲劇もついてきますがね。 もういちど、「手動」をお勧めします。

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • 15mm
  • ベストアンサー率65% (65/100)

>文字コードを意識したものを perlのエスケープシーケンスによるものですかね? なんにしろ、文字コード表を見れば分かると思いますが、 ぁあぃいぅうぇえぉお かがきぎくぐけげこご さざしじすずせぜそぞ ただちぢっつづてでとど なにぬねの はばぱひびぴ (略) とならんでおり、日本人の目からしてみれば不思議な順番で並んでおり、 (五十音表どおりではなく、濁音・半濁音・促音が途中に混ざる) 単純なループ処理では日本人が見慣れた五十音表を作るのは非効率的です。 「手動」で作るのをお勧めします。 それに、perlとはいえ出力はHTMLでやるようなのでHTMLを学ばない限りは進みませんね。 >参考になるサイトでも良いのでおしえて頂けると助かりますので 私はとほほさんのところで大体分かりました。 とりあえず個人利用のみであれば文法なんか気にしなくて大丈夫です。それっぽければOK。 質問内容を見る限りでは、 <table>タグ系列と、cssの<table>関連と文字装飾だけ覚えればできます。

共感・感謝の気持ちを伝えよう!

質問者からの補足

※ご返答ありがとうございます。 初心者で、難しいと思いますが、ループ処理で作成しようと考えています。 文字の並び方については理解ができたのですが、ひらがなを文字コードを利用して出力したいのですがうまくいきません。。。 どのように、コーディングしたら良いでしょうか? とほほさんも参考にしてみます。

  • 回答No.1
noname#169205
noname#169205

まずはHTML+CSSで希望する内容のもを作れますか? 作れないならその作り方をまず調べて下さい 作れたならその内容をprintで出力します なんで固定の内容をCGI-Perlで出すのでしょうか? なにか一部動的変化をかけるなら別の方法が必要となりますが?

共感・感謝の気持ちを伝えよう!

質問者からの補足

※phpとperlの学習しようと思っています。 phpに関しては九九表を作成してうまくいきました。 perlに関しては、九九表と違い文字コードを意識したものを作成してみたかったので、作成しています。 ちなみに、HTML+CSSでも希望のものは作れないのが現状です。。。 色々サイトを見ていますが、理解ができていないのが現状なので、参考になるサイトでも良いのでおしえて頂けると助かりますので、どうぞよろしくお願い致します。

関連するQ&A

  • WORDの線の引き方が分かりません

    WORDの線の引き方が分かりません  WORD2007を使って作図しようとしてますが、罫線や点線の引き方が分かりません。メニューで「挿入」→「表」を選ぶと「罫線を引く」が出てきますが、それを選ぶと線というより勝手に四角い図が出来てしまい、普通の線が引けません。また「挿入」→「図形」を選ぶといろいろな線の種類が出てきますが、その中に点線や破線、太線がなくて選べません。  表をつくるのではなく、簡単な地図のような作図をするときはどうすればいいのでしょうか。また線の種類を選択するにはどこを探せば出てくるのですか。  よろしくお願いします。

  • 「エクセル」行を表示・非表示にした時の罫線について

    表の中に、太さ、実線、点線、様々な罫線が混在している表で、行を非表示にしたり表示する際、どの部分の罫線が表示されているかご教示ください。 例:全て格子で、行10の上罫線と下罫線だけを太線にしている場合。 行5~9までを非表示にした際、4と10の間は太線ですが、 行5~10までを非表示にした際、4と11の間は太線ではありません。 何かルールがあるのでしょうか? 変な質問で恐縮ですが、どうぞお願いします。

  • Wordでの罫線入力について

    Wordでの罫線入力について 現在、大学の通信課程の情報の課題を家で作成していて 私のWordは2003なのですが Wordで表を作って で、作った当初は線がどの部分も一緒なので、中の部分の線は破線にしたり 外枠は太目の1.5ptの実線(通常0.5ptのところ)にしているのですが 添付画像の通り 一番下の部分だけ太くできないんです。 罫線入力で、通常矢印のポインタが罫線入力用の鉛筆型に変わって入力をしていたのですが 一番下、総金額の下の部分だけいくら選択しても 総金額の上の部分が太線になってしまい、一番下の部分が太線にならず困っています。 何か原因があるのでしょうか? 教えてください。

  • マウスがおかしい。

    パソコンがおかしかったので、ほかのカテゴリーで質問しなんとかシステムの復元で直ったのですが、今度はマウスがおかしくなってしまいました。 そのパソコンがおかしかったとき、マウスを動かすと罫線を引くときのような点線が出てきてしまい、全く左クリックがきかない状態でした。 また、インターネットエクスプローラーでは何もしていないのにマウスポインタのところでダブルクリックされたり、マウスを動かすと動かした部分が選択されて青い帯が出てきたりしていました。 システムの復元後、これらの症状はなくなりましたが、左クリックが全くきかなかったのでマウスの設定を左きき用(?)にし、今は右クリックでなんとか使っています。 これはマウスの故障なのでしょうか? もしくはまだどこかおかしいのでしょうか? ちなみにまだパソコン自体、購入後半年しか経っておらず、マウスも付属のもので光化学式です。 よろしくお願いいたします。

  • PerlでHTMLを作成する事は可能でしょうか…?

    こんにちは。 いつもお世話になっております。 Prelで、存在しないテキストファイルをOPENする 命令をだすと、空の(書き込みの無い状態の)テキストファイルが作成されるのは調べられたのですが、 同じような感じで、HTMLを作成する事は可能でしょうか…? 無理、というお返事でも凹みませんので、どうか ご指導よろしくお願い申し上げます。

    • ベストアンサー
    • Perl
  • ローマ字変換アルゴリズムを教えてください。

    #include<stdio.h> #include<stdlib.h> #include<string.h> wchar_t t[50][5]={ L"あ",L"い",L"う",L"え",L"お", L"か",L"き",L"く",L"け",L"こ", L"さ",L"し",L"す",L"せ",L"そ", L"た",L"ち",L"つ",L"て",L"と", L"な",L"に",L"ぬ",L"ね",L"の", L"は",L"ひ",L"ふ",L"へ",L"ほ", L"ま",L"み",L"む",L"め",L"も", L"や",L" ",L"ゆ",L" ",L"よ", L"わ",L" ",L"を",L" ",L"ん" }; char t2[50][3]={ "a ","i ","u ","e ","o ", "ka","ki","ku","ke","ko", "sa","si","su","se","so", "ta","ti","tu","te","to", "na","ni","nu","ne","no", "ha","hi","hu","he","ho", "ma","mi","mu","me","mo", "ya"," ","yu"," ","yo", "wa"," ","wo"," ","nn" }; wchar_t *henkan() { wchar_t str[150]; char str2[300]; int i=0; int j; scanf("%s",&str2); while(str2[i]) { for(j=0;j<50;j++) { if(strcmp(str2,t2[j])==0) { str[i]=t[j]; str[i+1]='\0'; } } i+=2; } printf("入力された文字は%sです。\n",str); return str; } int main(void) { wchar_t str[1000]; while(1) { str=henkan(); } return 0; } ローマ字から、ひらがなに変換するアルゴリズムを考えているのですが、 なかなかうまくいきません。このソースコードはコンパイルもできませんでした。 どうすれば、うまくいきますでしょうか?

  • perlでファイルが作成できません

    初めて質問させていただきます。 perlに関しては素人でうまくいかず悩んでおります。 皆様のお知恵を拝借できればと思います。 linuxで下記のようにamezo.cgiからファイルを作りたいのですが、 ファイルを生成したい場所だけ作成することが出来ません。 amezo.cgiと同じフォルダや上位フォルダ(htmlフォルダ)にはhtmlファイルを作成できるのですが、 testbbsフォルダを指定したら生成できなくなってしまいます。 なんらかの環境変数なり指定する必要があるのでしょうか? ご教授よろしくお願いいたします。 html-------testbbs------ファイルを生成したい場所     |     |     -----cgi-bin-----amezo.cgi | .....

    • ベストアンサー
    • Perl
  • Perlで作成したCGIについて

    Perlで作成したCGIについて Perlで作成したCGIについて質問させていただきます。 #################### ##(1)system.cgi ## #################### #!c:/Perl/bin/perl.exe use strict; use warnings; use CGI; use CGI::Carp('fatalsToBrowser'); use CGI qw(:standard); print "Content-type:text/html;charset=utf8\n\n"; system('C:\\test.txt'); ##################################################### C直下にあるtest.txtの中身は「abcd」など 簡単なものです。 ##################################################### ################### ##(2)win32.cgi ## ################### #!c:/Perl/bin/perl.exe use strict; use warnings; use CGI; use CGI::Carp('fatalsToBrowser'); use CGI qw(:standard); use Win32::API; print "Content-type:text/html;charset=utf8\n\n"; my $MessageBox = Win::API -> new("user32","MessageBoxA","NPPN","N"); $MessageBox -> Call(0,"HelloWorld","Message",0); ##################################################### ##################################################### 以下にスペックを書きます。 Microsoft Windows XP Professional version2002 Service Pack2 Genuine Intel(R)CPU L2300 @1.50GHz 1.50GHz,1.49GB RAM ・ActivePerl ver5.10.1 built for MSWin32-x86-multi-thread ・Apache Apache 2.2.14(Win32) ##################################################### 上記の(1)、(2)のプログラムをエクスプローラ上(ローカル)で実行させて(1)ではテキストファイルを、 (2)ではメッセージボックスを表示させたいです。 結果は時間がかかるだけでTimeOutの設定である5分で切れてしまい何も起こりません。 しかし、全く同じプログラムで拡張子を.plに変更してコマンドプロンプトで実行すると、 期待通り(1)はテキストファイルが開かれ、(2)ではメッセージボックスが出てきます。 (1)、(2)ともCGIではsystemおよびMessageBoxの部分をコメントアウトして print文などを書けば普通にエクスプローラに表示されます。 (かなりhtmlとしては不備があると思いますが・・・) どうすればCGIで(1)、(2)のプログラムが期待通りの動きをするのか どうぞご教授のほどよろしくお願いいたします。 何か足りない情報や意味の分かりづらい個所がありましたら、仰ってください。 ちなみにこのプログラムは公開するために作成しているのではありません。 下手な説明、長文すみません。

  • Perlでのファイルリスト作成

    Perlで、ファイルリストを作成したいのですが、あるディレクトリにあるファイル(.htm)からファイル名、フルパス、<title>タグのタイトル部分をはきだす方法を教えてください。

    • ベストアンサー
    • Perl
  • perlで作成中ですが、改行がおかしいです

    よろしくお願いします data.txtに 入っているデータをすべて読み込み(@lines)、HTMLのテキストエリアにそのまま@linesで書き出すと、 ------------texterea------------ 1,名前,タイトル・・・・  2,名前,タイトル・・・・  3,名前,タイトル・・・・ ------------/texterea----------- というように、テキストエリアには、2行目以降の行頭に半角スペースが出てしまいます。 まずは、こちらを正しく表示する方法を教えてください。 また、このテキストエリアで データを訂正したものを、再びdata.txtに書き込みたいのですが name=newlogでクエリして、 print OUT $in{'newlog'}; としてdata.txtにそのまま書き出そうとすると、ログには改行が増えてしまい、下記のようにログがどんどん壊れていってしまいます。 1,名前,タイトル・・・・  2,名前,タイトル・・・・  3,名前,タイトル・・・・ この対策方法を教えて頂きたいのです。 どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI