dポイントプレゼントキャンペーン実施中!

プログラミングの仕方がわからないため、
プログラムを作成していただけませんでしょうか?

csvファイルに
「1,apple,りんご<改行>
 2,grape, ぶどう」
と記入されていれば、
一行ずつ読み込んで
1.jpgというファイルは"apple"という文字の書かれた画像ファイル
1.pngというファイルは"りんご"という文字の書かれた画像ファイル
2.jpgというファイルは"grape"という文字の書かれた画像ファイル
2.pngというファイルは"ぶどう"という文字の書かれた画像ファイル
を作成するソフトなのですが
作成するのが簡単であれば、作成いただけないものでしょうか?

特に言語は問いませんが、vbsを使用していただけると助かります。
よろしくお願いします。

A 回答 (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();
    • good
    • 0

すみません。


BBSに投稿するときに少し編集したのですが、どうやら消しすぎたみたいです。


use strict('vars');

の行を削除して、

exit()の上に

}

を1行追加してみてください。

最後の部分は以下のようになります。

---------
print FT $key."\n".$line;
}
close FT;
}
}
exit();
---------


use strictは一言で言えば、変数の宣言を強制するものですが、スペルミスなどのチェックにも使えます。
たぶん、スペルミスなどはないと思いますので。
    • good
    • 0

長文失礼。


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>

この回答への補足

ありがとうございました。
動かしてみました
(環境は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 "}"

上記のようなエラーが出てきました。
何かパッケージなどが必要なのでしょうか?

補足日時:2009/01/04 18:16
    • good
    • 0

拡張子.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個という制限にあわせると非常に読みづらくなったという理由により、作るのを途中でやめました。
自分で作るより、単語帳ソフトの購入をお勧めします。

参考URL:http://support.apple.com/kb/HT2234?viewlocale=ja …
    • good
    • 0

作りました! (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
    • good
    • 0

作るのは簡単ですが、それをどーやってあなたに伝えるんですか?



それをどーやってiPodで動かすんですか?

そっちのほーが難しいですよ(^_^;

りんご?
 小学校のお受験ですか?(^_^;

なんの試験なんだろー?

この回答への補足

弁理士を受けようと思うのですが、非常に覚えることが多く、仕事もしているため、
どこでも見れる単語帳を使用したほうがいいかと思いまして。
失礼しました。

補足日時:2009/01/04 17:32
    • good
    • 0
この回答へのお礼

jpgとpngファイルをそれぞれピクチャにおいてそれをiPodのピクチャのディレクトリに入れてipodのピクチャーをスクロールすることで単語帳になるのかと思いました。
失礼しました。

お礼日時:2009/01/04 18:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!