![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
プログラミングの仕方がわからないため、
プログラムを作成していただけませんでしょうか?
csvファイルに
「1,apple,りんご<改行>
2,grape, ぶどう」
と記入されていれば、
一行ずつ読み込んで
1.jpgというファイルは"apple"という文字の書かれた画像ファイル
1.pngというファイルは"りんご"という文字の書かれた画像ファイル
2.jpgというファイルは"grape"という文字の書かれた画像ファイル
2.pngというファイルは"ぶどう"という文字の書かれた画像ファイル
を作成するソフトなのですが
作成するのが簡単であれば、作成いただけないものでしょうか?
特に言語は問いませんが、vbsを使用していただけると助かります。
よろしくお願いします。
No.6ベストアンサー
- 回答日時:
なんか、めちゃくちゃになってたみたいなので、Perlだけ動作検証、(大幅に)改編しました。
m(_ _)miPodが壊れていて動かないため、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();
No.5
- 回答日時:
すみません。
BBSに投稿するときに少し編集したのですが、どうやら消しすぎたみたいです。
use strict('vars');
の行を削除して、
exit()の上に
}
を1行追加してみてください。
最後の部分は以下のようになります。
---------
print FT $key."\n".$line;
}
close FT;
}
}
exit();
---------
use strictは一言で言えば、変数の宣言を強制するものですが、スペルミスなどのチェックにも使えます。
たぶん、スペルミスなどはないと思いますので。
No.4
- 回答日時:
長文失礼。
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 "}"
上記のようなエラーが出てきました。
何かパッケージなどが必要なのでしょうか?
No.3
- 回答日時:
拡張子.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 …
No.2
- 回答日時:
作りました! (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
No.1
- 回答日時:
作るのは簡単ですが、それをどーやってあなたに伝えるんですか?
それをどーやってiPodで動かすんですか?
そっちのほーが難しいですよ(^_^;
りんご?
小学校のお受験ですか?(^_^;
なんの試験なんだろー?
この回答への補足
弁理士を受けようと思うのですが、非常に覚えることが多く、仕事もしているため、
どこでも見れる単語帳を使用したほうがいいかと思いまして。
失礼しました。
jpgとpngファイルをそれぞれピクチャにおいてそれをiPodのピクチャのディレクトリに入れてipodのピクチャーをスクロールすることで単語帳になるのかと思いました。
失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) 画像のファイル形式、拡張子が変わると、性能が変わると思うのですが、ファイル名の「jpg、png、do 8 2022/08/10 13:37
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- その他(ソフトウェア) コマンドプロンプトについて教えてください。 状況: 画像編集ソフト上でネットから保存した画像を使うの 3 2022/05/26 11:14
- iPhone(アイフォーン) iphoneで撮影した写真、動画を連番のファイル名で保存したい。 1 2022/04/28 02:12
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル名を複数個配列で確保...
-
Fortranで1行飛ばして読み込む方法
-
1件だけ表示させる方法
-
文字列操作に関する質問です。
-
日本語のマッチング(正規表現)
-
シェルスクリプトについて
-
Pythonで非日本語のUnicode文字...
-
ファイルの内容をスカラー変数...
-
shellのコマンド deffの差分の...
-
絶対+相対アドレスから絶対ア...
-
「パスが見つかりません」とい...
-
ファイル読み込みで一部分書き...
-
CGIで複数のデータファイルを利...
-
VBAでCSVファイルを途中行まで...
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
Perlで特定文字列から特定文字...
-
fgets で値が取得できない
-
VBAでCSVファイルの特定行を書...
-
エラー 'dir.h' : No such fi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名を複数個配列で確保...
-
一行だけ読込
-
Pythonでegrep機能をつかいたい
-
ifstream/ofstream について
-
「パスが見つかりません」とい...
-
shellのコマンド deffの差分の...
-
Perl エラーログを指定の場所...
-
MATLABでカーブフィットしたデ...
-
ifstream を利用した1行分のテ...
-
perlでCSVをソートする方法につ...
-
system関数と引数について
-
C++でのテキストファイル読み込...
-
連番のファイルを何個も開きたい
-
[perl] もっとシンプルに改良、...
-
Perl 重複カウント 上位3名
-
Pythonで非日本語のUnicode文字...
-
Pythonでテキストを行数指定し...
-
while文がうまく動かない
-
Fortranで1行飛ばして読み込む方法
-
あるファイルないから日付指定...
おすすめ情報