仮定条件
name.txtとしてファイルで提出する必要がある。
そこで、末尾のm1_member.csvを利用して、
人数分のname.txtを生成するプログラムを作成しなさい。
・申し込みフォーマット(template.txt)
—————————————-
○×研究会 申し込み
氏名 :
フリガナ:
所属 :
e-mail :
—————————————-
・yottan.txtの作成例
—————————————-
○×研究会 申し込み
氏名 :その名はよったん
フリガナ:ソノナハヨッタン
所属 :よったん大学
e-mail :yottan@yottan.com
—————————————-
・m1_member.csv(氏名,フリガナ,e-mail,name)
“その名はよったん,ソノナハヨッタン,yottan@is.naist.jp,yottan”
windows7
m1_member.csvはutf8で書かれています。
使ったファイルは全部同じディレクトリに入ってます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #!usr/bin/perluse strict;use warnings;use Template;use Encode;use open IN => ":utf8";my $file = "m1_member2.csv" ; # 読み込みたいファイル名open(my $fh, "<", $file)or die "Cannot open $file: $!";while( my $line = readline $fh ){# readline関数で、一行読み込む。my @s =split( /,/, $line);my $name =$s[0];my $kana =$s[1];my $shozoku = "よったん大学";$shozoku =decode('utf8',$shozoku);my $mail = $s[2];my $romaji = $s[3];chomp $romaji; # chomp関数で、csv形式の改行を取り除く#作成するファイルネーム***.txtの作成my $filename = $romaji.".txt";open(OUTPUTFILE, ">>$filename");my $vars = {name => $name,kana => $kana,shozoku => $shozoku,mail => $mail,};#テンプレート'template.txtの格納場所・文字コードの指定など'my $config = {UNICODE => 1, #これでテンプレファイルがENCODING => 'utf-8', #utf-8フラグ付きとなる。# テンプレート(template.txt)の置いている場所INCLUDE_PATH => 'C:\Perl\program',};my $tt = Template->new($config)|| die $Template::ERROR, "\n";$tt->process('template.txt',$vars,$filename) || die $tt->error(),"\n";close( OUTPUTFILE );} |
実行結果
○×研究会
氏名:その名はよったん
フリガナ:ソノナハヨッタン
所属:よったん大学
メール:yottan@yottan.com
参考ページ
参考ページ
template:toolkit全般について↓
のsynopsysのところ
文字コードの扱い↓
0 件のコメント:
コメントを投稿