
No.3ベストアンサー
- 回答日時:
うーん、原因不明ですね。
Vista環境では一応改行区切りできてます。考えられるのはエスケープ文字(Vistaでは円マーク OS Xではバックスラッシュ) の関連でしょうか。
$buf =~ sub/(m4a|m4p)/\1\n/g;
でもかわらないでしょうか。
後「CotEditor」をお使いとのことですが、このエディタの正規表現置換の
機能を利用されてみてはいかがでしょうか。
検索文字列に「(m4a|m4p)」を指定して置換文字列に「\1\n」を指定して
みてください。
こちらでは、「CotEditor」は使えないのであくまで推測を域を脱しませ
んが。
できました!
なんのことはない、正規表現置換だけでできたのですね。
私のプレイリストにはmp3エンコードの楽曲やビデオなんかも混じっているので、iTunesから書き出したplaylist.txtをエディタの検索で(m4a|m4p|mp3|m4v)として\1\nで置換したらできました。
最初のレコードだけは見出しの「場所」の後になっているので手動で改行しましたが、あとは問題ありませんでした。
いろいろとお手数をおかけしてすみません。本当にありがとうございました。
No.2
- 回答日時:
#1です。
返信が遅れ申し訳ありません。こちらではWindowsVistaSP1、iTunes8.1のエクスポートで確認しました。
Em-Editor FREE、サクラエディタともUTF-16LE(BOMつき)でレコード区切り
は空白2個になっています。
別法ですが、拡張子が「m4a」「m4p」しかないのならそれを利用できないでしょうか。
デフォルトの文字コードがUTF-8なら
use utf8;
use Encode;
open $in,"<",ファイル名;
$/=undef;
$buf = <$in>;
chomp $buf;
close $in;
Encode::from_to($buf,'UTF-16LE','UTF-8');
$buf =~ s/(\.m4a|\.m4p)/\1\n/g;
$buf =~ s/\n */\n/g;
print $buf;
ではだめでしょうか?
回答ありがとうございます。
今度は文字化けしませんでしたが、やはりレコードごとに改行は入りませんでした。
今回の作業はちょっと私には敷居が高すぎたようです。
いろいろとありがとうございました。
No.1
- 回答日時:
OS XならPerlが使えると思います。
iTuneのプレイリストのエクスポートファイルはUTF-16LEでレコードが2個の空白で区切られているから、
use Encode;
open $infile,"<","ファイル名" or die;
$/=undef;
$buf =<$infile>;
Encode::from_to( $buf, "UTF-16LE", "shiftjis" );
@s = split( "__",$buf );
#第一引数は1バイトスペース二個です。
print join( "\n", @s );
の要領でいけませんか?
この回答への補足
ご回答ありがとうございます。
Perlはやったことがないのですが、私なりにネットで調べて実行してみました。
しかし実行したデータがターミナル上で文字化けして表示され、レコードごとの分割もされていないようでした。
以下に実行した手順を記します。私の環境はMacOS 10.5.6です。
1.教えていただいたコードをテキストエディタ(CotEditor)に貼付けて、bunkatsu.plとして保存しました。
その際、”ファイル名"のところをiTunesのプレイリストから書き出したplaylist.txtまでのパス(/Users/******/Desktop/playlist.txt)に変更しました。
保存形式は、行末コードはCR/LF、エンコードはUnicode(UTF-8)です。
2.ターミナルから perl /Users/******/Desktop/bunkatsu.plを実行しました。
どこが悪かったのかご指摘いただけませんか?
また、よければコードをド素人にもわかるように、解説していただけませんか?
あと、CotEditor上でiTunes8.1から書き出したplaylist.txtを開くとエンコードがUnicode(UTF-16)で、レコードとレコードの間には、スペースが1つしか入っていないように見えるのですが、「UTF-16LEでレコードが2個の空白で区切られている」というのはどこからご判断されたのでしょうか?
ド素人のため、たいへんお手数をおかけしますが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- その他(Microsoft Office) VBA CSV出力について 3 2023/04/19 14:14
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access2007のオートナンバーに...
-
レコードセレクタ、移動ボタン...
-
ACCESSのフォームで次のレコー...
-
ファイルメーカーのポータル内...
-
ADOで現在のレコードの次のレコ...
-
PSQLで-- More --を表示しない方法
-
日付の加算・減算ってできますか?
-
ファイルメーカーで最大シリア...
-
新規レコードをボタンで開くと...
-
「ファイルメーカー」で宛先の...
-
アクセスのクエリ日付が変わる...
-
差込印刷ヘルパーの設定方法
-
access2003 初期値の指定方法
-
ACCESS2000 クエリの抽出条件に...
-
レポートを作成してみたんです...
-
「Access2010」グループ化、集...
-
Access2000でのレポートの出し...
-
ファイルメーカーについて
-
Accessの参照整合性
-
ファイルメーカーでの質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ACCESSのフォームで次のレコー...
-
Accessのレポートの集計に条件...
-
ACCESSでオフセットを求める方法
-
「ファイルメーカー」で宛先の...
-
日付の加算・減算ってできますか?
-
ADOで現在のレコードの次のレコ...
-
ファイルメーカーで最大シリア...
-
ファイルメーカーで該当件数を...
-
ラベルをクリックしてレコード...
-
accessのマクロで「一時変数設定」
-
ホスト汎用機でのNDBアクセス方法
-
FileMakerで全レコードを対象外...
-
FM8で文字列の連結
-
アクセスデータベースのUnicode...
-
ファイルメーカーで一括入力す...
-
PSQLで-- More --を表示しない方法
-
Accessで最終レコードの削除に...
-
ファイルメーカーで検索条件の...
-
ACCESSでのランダムのレ...
おすすめ情報