重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Perlでスクリプトの変換をしたいのですが、どうにも改行(いろいろ)などが分かりません。
サンプルスクリプトのご教授を、どうぞ、お願いいたします。

具体的には
(1)
^music,rei_bgm0001を
mp3loop "bgm\rei_0001.mp3"に
(bgm0001は~0067まであるので一括変換したいです.)

(2)
^chara,ううう,えええ,いいいa,long,center,あああ

ld c,":a;mp\ううう_えええ_いいいa.あああ.jpg",long,center,
に置換したいです.

【^chara,ううう,えええ,いいいa,long,center,あああ、なのですがlong,center,を上のように置換後、最後に持っていきたいです.】
(3)
//の入った行だけを全て削除する。です。

解りにくいかと思いますが宜しくお願いします.

A 回答 (2件)

結局丸投げじゃん。



use strict;
use warnings;

my @charas;

while (my $line = <DATA>) {
chomp $line;
next if $line =~ m{^//};

if ($line =~ /^\^chara/) {
push @charas, $line;
next;
}
if ($line =~ /^\^music/) {
my @f = split q{,}, $line;
my @name = $f[1] =~m/([a-z]+) _ ([a-z]+) (\d+)/x;
printf qq{mp3loop "%s\\%s_%04d.mp3"\n}, $name[1], $name[0], $name[2];
}
}
foreach my $chara (@charas) {
my @f = split q{,}, $chara;
printf qq{ld c,":a;mp\\%s_%s_%s.%s.jpg",%s,%s\n}, $f[1], $f[2], $f[3], $f[6], $f[4], $f[5] ;
}


__END__
^music,rei_bgm0001
^music,rei_bgm0002
^music,rei_bgm0003
^music,rei_bgm0004
^music,rei_bgm0005
^music,rei_bgm0006
^music,rei_bgm0007
^music,rei_bgm0008
^music,rei_bgm0009
^music,rei_bgm0010
^music,rei_bgm0011
^music,rei_bgm0012
^music,rei_bgm0013
^music,rei_bgm0014
^music,rei_bgm0015
^music,rei_bgm0016
^music,rei_bgm0017
^music,rei_bgm0018
^music,rei_bgm0019
^music,rei_bgm0020
^music,rei_bgm0021
^music,rei_bgm0022
^music,rei_bgm0023
^music,rei_bgm0024
^music,rei_bgm0025
^music,rei_bgm0026
^music,rei_bgm0027
^music,rei_bgm0028
^music,rei_bgm0029
//30
^music,rei_bgm0030
^chara,ううう,えええ,いいいa,long,center,あああ
^music,rei_bgm0031
^music,rei_bgm0032
^music,rei_bgm0033
^music,rei_bgm0034
^music,rei_bgm0035
^music,rei_bgm0036
^music,rei_bgm0037
^music,rei_bgm0038
^music,rei_bgm0039
^music,rei_bgm0040
^music,rei_bgm0041
^music,rei_bgm0042
^music,rei_bgm0043
^music,rei_bgm0044
^music,rei_bgm0045
^music,rei_bgm0046
^music,rei_bgm0047
^chara,くくく,けけけ,ききき,long,center,かかか
^music,rei_bgm0048
^music,rei_bgm0049
^music,rei_bgm0050
^music,rei_bgm0051
^music,rei_bgm0052
^music,rei_bgm0053
^music,rei_bgm0054
^music,rei_bgm0055
^music,rei_bgm0056
^music,rei_bgm0057
^music,rei_bgm0058
^music,rei_bgm0059
//60
^music,rei_bgm0060
^music,rei_bgm0061
^music,rei_bgm0062
^music,rei_bgm0063
^music,rei_bgm0064
^music,rei_bgm0065
^music,rei_bgm0066
^music,rei_bgm0067

結果:
mp3loop "bgm\rei_0001.mp3"
mp3loop "bgm\rei_0002.mp3"
mp3loop "bgm\rei_0003.mp3"
mp3loop "bgm\rei_0004.mp3"
mp3loop "bgm\rei_0005.mp3"
mp3loop "bgm\rei_0006.mp3"
mp3loop "bgm\rei_0007.mp3"
mp3loop "bgm\rei_0008.mp3"
mp3loop "bgm\rei_0009.mp3"
mp3loop "bgm\rei_0010.mp3"
mp3loop "bgm\rei_0011.mp3"
mp3loop "bgm\rei_0012.mp3"
mp3loop "bgm\rei_0013.mp3"
mp3loop "bgm\rei_0014.mp3"
mp3loop "bgm\rei_0015.mp3"
mp3loop "bgm\rei_0016.mp3"
mp3loop "bgm\rei_0017.mp3"
mp3loop "bgm\rei_0018.mp3"
mp3loop "bgm\rei_0019.mp3"
mp3loop "bgm\rei_0020.mp3"
mp3loop "bgm\rei_0021.mp3"
mp3loop "bgm\rei_0022.mp3"
mp3loop "bgm\rei_0023.mp3"
mp3loop "bgm\rei_0024.mp3"
mp3loop "bgm\rei_0025.mp3"
mp3loop "bgm\rei_0026.mp3"
mp3loop "bgm\rei_0027.mp3"
mp3loop "bgm\rei_0028.mp3"
mp3loop "bgm\rei_0029.mp3"
mp3loop "bgm\rei_0030.mp3"
mp3loop "bgm\rei_0031.mp3"
mp3loop "bgm\rei_0032.mp3"
mp3loop "bgm\rei_0033.mp3"
mp3loop "bgm\rei_0034.mp3"
mp3loop "bgm\rei_0035.mp3"
mp3loop "bgm\rei_0036.mp3"
mp3loop "bgm\rei_0037.mp3"
mp3loop "bgm\rei_0038.mp3"
mp3loop "bgm\rei_0039.mp3"
mp3loop "bgm\rei_0040.mp3"
mp3loop "bgm\rei_0041.mp3"
mp3loop "bgm\rei_0042.mp3"
mp3loop "bgm\rei_0043.mp3"
mp3loop "bgm\rei_0044.mp3"
mp3loop "bgm\rei_0045.mp3"
mp3loop "bgm\rei_0046.mp3"
mp3loop "bgm\rei_0047.mp3"
mp3loop "bgm\rei_0048.mp3"
mp3loop "bgm\rei_0049.mp3"
mp3loop "bgm\rei_0050.mp3"
mp3loop "bgm\rei_0051.mp3"
mp3loop "bgm\rei_0052.mp3"
mp3loop "bgm\rei_0053.mp3"
mp3loop "bgm\rei_0054.mp3"
mp3loop "bgm\rei_0055.mp3"
mp3loop "bgm\rei_0056.mp3"
mp3loop "bgm\rei_0057.mp3"
mp3loop "bgm\rei_0058.mp3"
mp3loop "bgm\rei_0059.mp3"
mp3loop "bgm\rei_0060.mp3"
mp3loop "bgm\rei_0061.mp3"
mp3loop "bgm\rei_0062.mp3"
mp3loop "bgm\rei_0063.mp3"
mp3loop "bgm\rei_0064.mp3"
mp3loop "bgm\rei_0065.mp3"
mp3loop "bgm\rei_0066.mp3"
mp3loop "bgm\rei_0067.mp3"
ld c,":a;mp\ううう_えええ_いいいa.あああ.jpg",long,center
ld c,":a;mp\くくく_けけけ_ききき.かかか.jpg",long,center
    • good
    • 0

えぇと, 「改行」って全く関係ないのでは?


とりあえず不明な点をいくつか:
・「^music,rei_bgm0001」とか「^chara,ううう,えええ,いいいa,long,center,あああ」は, 先頭の「^」も入っているのですか?
・これらのフォーマットは固定なのでしょうか? つまり, 「^music,」とか「^chara,」あたりは一定なのでしょうか? また, (2) の方では「long center」も固定なのでしょうか? 1行のカンマの数も, それぞれここに上がっている通りでしょうか?
・「// の入った行」というのは, 「行のどこかにスラッシュが 2個続けて現れる」という解釈でいいですか? それとも, 行の先頭の場合だけを考えますか?
・ここに上がっていない形の行はどうすればいいですか?

この回答への補足

1^music,rei_bgm0001などは(^)も含んでいます。
2「^music,」とか「^chara,」は固定です.

3すいません「// の入った行」は//が先頭にはいった行です。

補足、すいません.これは
ld c,":a;mp\ううう_えええ_いいいa_あああ.jpg",long,center,
ld c,":a;mp\ううう_えええ_long_いいいa.あああ.jpg",center,

^chara,ううう,えええ,いいいa,long,center,あああ
は【,】で区切られている物の中の(^chara)を消し
ld c,":a;mp\ううう_えええ_long_いいいa_あああ.jpgのカタチに置き換えると言う事です。

もう私ではお手上げでした。

補足日時:2008/12/11 16:10
    • good
    • 0

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