- ベストアンサー
ipodで使える資格試験単語帳作成プログラムの作成依頼
- 資格試験に向け、ipodで使える単語帳を作成したいです。プログラムの作成方法がわからず、助けが必要です。
- csvファイルに単語とその意味を記入し、画像ファイルを作成するプログラムを作成してほしいです。
- 特にvbsを使用していただけると助かります。簡単に使えるプログラムがあれば、お願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
なんか、めちゃくちゃになってたみたいなので、Perlだけ動作検証、(大幅に)改編しました。m(_ _)m iPodが壊れていて動かないため、Notesのほうは検証できません。 index.txtは、ipoddicフォルダの外に置いてください。 フォルダ構成は下のようになります。 Notes/index.txt Notes/ipoddic/a.txt 、 b.txt 、 c.txt ・・・(英単語の各ファイル) 対訳表示からindexへのジャンプが行われない場合は、 29行目の<a href="index.txt">・・・</a>を出力している部分を、以下のように書き換えてみてください。 print FT "<a href=\"../index.txt\">index</a> >> $initial\n"; あと、カスタマイズに関して、わかりにくそうなところの説明。 これ以外は簡単な英語か、VBSと同じだと思いますので、 Perlに関してわからなくても、だいたい理解、編集できると思います。 *ifの内容が1行だけの場合は、ifの書き方を逆転させ、括弧を省略できます。 if($_ eq ''){ next; } ↓ next if($_ eq ''); 20行目 : next if($line eq ''); 対訳がなければ書き込みしません。 英単語だけ書き込んでおく場合はこの行を削除するか、コメントアウト(行頭に#を追記)してください。 # next if($line eq ''); 21行目 : $line=~s/\t/\n/g; 対訳のタブ区切りを改行に変換します。 22行目 : $line=~s/^/ /mg; 対訳の部分の行頭に半角スペースを入れ、字下げを行います。 -------------------- #!/usr/bin/perl my ($all,@all); my ($prev, $this,$next); my (%initials,$initial); open(FP, "list.txt"); if(FP){ @all=<FP>; close FP; }else{ print "Open Error\n"; exit; } mkdir("ipoddic") unless(-e "ipoddic"); foreach(@all){ next if($_ eq ''); my ($key, $line)=split("\t", $_, 2); $initial=substr($key, 0,1); next if($line eq ''); $line=~s/\t/\n/g; $line=~s/^/ /mg; if(defined $initials{$initial}){ next unless open(FT, ">>", "ipoddic/$initial.txt"); }else{ $initials{$initial} = $initial; next unless open(FT, ">", "ipoddic/$initial.txt"); print FT "<title>ipod dic ... $initial</title>\n"; print FT "<a href=\"index.txt\">index</a> >> $initial\n"; print FT "--------\n"; } print FT "$key\n$line\n"; close FT; } exit();
その他の回答 (5)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
すみません。 BBSに投稿するときに少し編集したのですが、どうやら消しすぎたみたいです。 use strict('vars'); の行を削除して、 exit()の上に } を1行追加してみてください。 最後の部分は以下のようになります。 --------- print FT $key."\n".$line; } close FT; } } exit(); --------- use strictは一言で言えば、変数の宣言を強制するものですが、スペルミスなどのチェックにも使えます。 たぶん、スペルミスなどはないと思いますので。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
長文失礼。 iPod-HTMLについて簡単な説明とサンプルです。 ・<title>タイトル</title> ファイルの1行目に記述。 iPodのNoteなど、ファイル一覧に表示されるタイトル。 これがなければファイル名がそのまま表示される。 ・<a href="xxx.txt">アンカー</a> ファイルの内容を表示したときに、文字部分を選択できるようになる。 iPodのメインボタンを押すと、href=""に指定されたファイルを表示する。 hrefは常にNoteフォルダからのパスを指定しないと行けなかったと思います。 辞書を作ったときのPerlプログラムがありました。 list.txtというファイルに、タブ区切りで英単語と日本語を記述してください。 日本語が複数の場合は、そのままタブ区切りで並べてください。 list.txt apple(タブ)リンゴ(タブ)林檎 grape(タブ)ぶどう(タブ)葡萄 Perlスクリプトを実行すると、 ipoddicというディレクトリに英単語のイニシャルごとに分割保存しますので、後述のindex.txtと一緒にiPodのNotesフォルダにコピーしてください。 動作未検証です。 #!/usr/bin/perl use strict('vars'); my $all; my %db; open(FP, "list.txt"); if(FP){ @all=<FP>; close FP; }else{ print "Open Error\n"; exit; } { my $d; foreach my $i(a..z){ opendir(DIR, "ipoddic/$i"); while($d=readdir(DIR)){ next if($d=~/^\./); unlink "ipoddic/$i/$d"; } close DIR; } } $prev=''; $this=''; $next=''; my %initials; foreach(@all){ if($_ eq ''){next;} my ($key, $line)=split("\t", $_, 2); $initial=substr($key, 0,1); $line=~s/\t/\n/g; if(defined $initials[$initial}){ open(FT, ">>", "ipoddic/$initial/".$key.".txt"); print FT $key."\n".$line; }else{ $initials{$initial} = "$initial"; open(FT, ">", "ipoddic/$initial/".$key.".txt"); print FT "<title>ipod dic ... $initial</title>\n"; print FT "<a href=\"index.txt\">index</a> >> $initial."\n"; print FT $key."\n".$line; } close FT; } exit(); テキストエディタで以下のテキストファイルを作成し、 ipoddic/index.txt に保存してください。 <title>ipod dictionary</title> ipod dictionary <a href="a.txt">a</a> <a href="b.txt">b</a> <a href="c.txt">c</a> <a href="d.txt">d</a> <a href="e.txt">e</a> <a href="f.txt">f</a> <a href="g.txt">g</a> <a href="h.txt">h</a> <a href="i.txt">i</a> <a href="j.txt">j</a> <a href="k.txt">k</a> <a href="l.txt">l</a> <a href="m.txt">m</a> <a href="n.txt">n</a> <a href="o.txt">o</a> <a href="p.txt">p</a> <a href="q.txt">q</a> <a href="r.txt">r</a> <a href="s.txt">s</a> <a href="t.txt">t</a> <a href="u.txt">u</a> <a href="v.txt">v</a> <a href="w.txt">w</a> <a href="x.txt">x</a> <a href="y.txt">y</a> <a href="z.txt">z</a>
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
拡張子.txtで、<title>と<a>しか使えない簡単なHTMLです。 テキストだけなら、以下のような感じのテキストファイルを用意すれば、単語帳になります。 index.txt <title>単語帳</title> <a href="a.txt">aから始まる単語</a> <a href="b.txt">bから始まる単語</a> a.txt <title>a行</title> <a href="apple.txt">apple</a> ------- <a href="index.txt">戻る</a> apple.txt <title>apple</title> 英語:apple 日本語:りんご ------- <a href="a.txt">戻る</a> ・1つのファイルが最大4kbの制限があり、最大1000個の制限があります。 ・iPodに保存された音楽をならすこともできます。 方法は忘れましたが、たしかhref=""にファイルを指定するだけで良かったと思います なお、この作り方は第4世代iPod(画像表示不可)での方法です。 今のiPodなら画像表示もできるかもしれませんが、その方法は知りません。 iPod Touchなどで同じ作り方ができるかどうかは試していません。また、調べていません。 フリーの英和辞典のデータを利用して、英和辞書代わりになる物を作ろうと思ったのですが、 最大1000個という制限にあわせると非常に読みづらくなったという理由により、作るのを途中でやめました。 自分で作るより、単語帳ソフトの購入をお勧めします。
- buriburi3
- ベストアンサー率44% (353/792)
作りました! (w http://www.amazon.co.jp/dp/B000PC1MGE iPodで英語学習を補助する為のソフトは他にも何種類か出ています。 http://www.amazon.co.jp/dp/B000L425CG http://www.amazon.co.jp/dp/B000H1QZ7E http://www.amazon.co.jp/dp/B000FTD134
- wand88
- ベストアンサー率20% (409/1958)
作るのは簡単ですが、それをどーやってあなたに伝えるんですか? それをどーやってiPodで動かすんですか? そっちのほーが難しいですよ(^_^; りんご? 小学校のお受験ですか?(^_^; なんの試験なんだろー?
お礼
jpgとpngファイルをそれぞれピクチャにおいてそれをiPodのピクチャのディレクトリに入れてipodのピクチャーをスクロールすることで単語帳になるのかと思いました。 失礼しました。
補足
弁理士を受けようと思うのですが、非常に覚えることが多く、仕事もしているため、 どこでも見れる単語帳を使用したほうがいいかと思いまして。 失礼しました。
補足
ありがとうございました。 動かしてみました (環境はActivePerl-5.10.0.1004-MSWin32-x86-287188、 Windows Vistaです) >Perl pro.p Global symbol "@all" requires explicit package name at pro.p line8. Global symbol "$prev" requires explicit package name at pro.p line26 syntax error at pro.p line 40, near "}" 上記のようなエラーが出てきました。 何かパッケージなどが必要なのでしょうか?