ファイルリストの整形 マクロにつきましNo.07132
ノノムン さん 12/10/03 10:01
 
こんにちは ノノムンともうします。

SHOUTcast という WAN無料放送のリストがあるのですが、
(「 」)は情報の区切りです。
これを選局リストに変換するのにマクロを使わないと、手間が掛かりすぎるので、
やってみたのですが、上手く行きませんでした。
キーワードは
File1=
Title1=(#)
で順序が逆になります。


[playlist]
numberofentries=1
File1=http://206.217.213.236:8560
Title1=(#1 - 9/1000) GotRadio - Christmas Celebration
Length1=-1
Version=2

[playlist]
numberofentries=3
File1=http://108.61.73.119:8018
Title1=(#1 - 90/1000) 181.FM - Highway 181 (Classic Country)
Length1=-1
File2=http://108.61.73.118:8018
Title2=(#2 - 97/1000) 181.FM - Highway 181 (Classic Country)
Length2=-1
File3=http://108.61.73.117:8018
Title3=(#3 - 103/1000) 181.FM - Highway 181 (Classic Country)
Length3=-1
Version=2

の様な情報リストになっています、(1局 と 3局 の例で 局間は空行を開
けて続いています)
*******************************
秋月のBB-Shoutcast というインターネットラジオに
選局リストを登録するとき、は次のような型式で登録します。
「BB-Shout ChannelList v1.0」はヘッダで型式を問いませんし字数が少ないの
で、手で記入します。
「---」は区切り記号でやはり手で記入します。
始めの番号は「00」は有ってもなくてもかまわず、編集の目安です。
全部で「00 から 99」まで100局 登録出来ます。

BB-Shout ChannelList v1.0
---
00 GotRadio - Christmas Celebration
http://206.217.213.236:8560
01 181.FM - Highway 181 (Classic Country)
http://108.61.73.119:8018
02 181.FM - Highway 181 (Classic Country)
http://108.61.73.118:8018
03 181.FM - Highway 181 (Classic Country)
http://108.61.73.117:8018
---


この様な場合マクロにすることは出来ますでしょうか?
それでは宜しくお願いします。

[ ]
RE:07132 ファイルリストの整形 マクロにNo.07134
秀まるお2 さん 12/10/03 14:35
 
 どのように整形したいのかよく分からないので具体的なマクロをお返事するこ
とは出来ないのですが、とりあえず、正規表現を使って不要な情報を除去してか
ら、それからまた正規表現を使ってデータを加工するようなやり方がいいんじゃ
ないかと思います。

 とりあえず、必要な情報が

   FileXX=
   TitleXX=

 で始まる行だけのようなので、それ以外の情報を除去するために、例えば全置
換コマンドで、

   検索(S):  ^(?!File|Title).*\n
   置換(E):  (空っぽ)

 で正規表現の全置換をすれば、FileXX=, TitleXX=以外の行がすべて削除され
てくれます。

 それから先は、タグ付き正規表現を使って加工すればなんとかなりそうな気が
します。

 タグ付き正規表現は、例えば

   FileXX=http://....

   みたいな文字列の「http:」を取り出したい場合に、

  検索(S): ^(File[0-9]+=)(http:.*)$

 みたいな形で検索すると、置換文字列の方で、例えば「\2」を指定すれば
http:....」の部分が取り出せるとか、そういう感じになります。

 マクロで「カーソルを何個右に動かしてDeleteキーを押して…」のような形で
実現しようとしてもなかなか難しいと思うので、タグ付き正規表現で置換するこ
とをまず実現して、それをマクロ化するって作戦がいいと思います。

[ ]
RE:07132 ファイルリストの整形 マクロにNo.07136
山紫水明 さん 12/10/03 17:21
 
 ノノムンさん,

こういうことでしょうか?
//------------------------------------------------
replaceall "^(?!(File|Title)).*\\n", "", regular;
replaceall "^(File.+)\\n(Title.+$)", "\\2\\n\\1", regular;
replaceall "^(File[0-9]+=|Title[0-9]=\\(.+?\\) )", "", regular;
gofiletop;
insert "BB-Shout ChannelList v1.0\n---\n";
while( code != eof ) {
    insert rightstr( "0" + str(#n), 2 )+ " ";
    movetolineno 1, lineno + 2;
    #n = #n + 1;
}
endmacro;
//------------------------------------------------

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07136 ファイルリストの整形 マクロにNo.07141
ノノムン さん 12/10/04 19:48
 
山紫水明 さん ノノムンです

試験用マクロをお教え有り難うございました。
マクロ登録をしました。

結果は3種類出ました。

.pls の
1行の場合
[playlist]
numberofentries=1
File1=http://80.245.113.11:8010
Title1=(#1 - 0/1000) pop.CT.FM - AAC+ 128kbps
Length1=-1
Version=2
結果
BB-Shout ChannelList v1.0
---
00 pop.CT.FM - AAC+ 128kbps
http://80.245.113.11:8010

タイトルのない.plsの場合
[playlist]
NumberOfEntries=1
File1=http://199.19.105.215:8200/
結果
BB-Shout ChannelList v1.0
---
00 http://199.19.105.215:8200/

2行以上の場合
[playlist]

NumberOfEntries=2

File1=http://109.123.116.202:8020
Title1=Venice Classic Radio - European Server
Length1=-1

File2=http://174.36.206.197:8000
Title2=Venice Classic Radio - USA Server
Length2=-1

Version=2
結果
BB-Shout ChannelList v1.0
---
00 Title1=Venice Classic Radio - European Server
http://109.123.116.202:8020
01 Title2=Venice Classic Radio - USA Server
http://174.36.206.197:8000
69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46
45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22
21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 99 98
97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74
73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52
数字が停止しません

m3uの場合
http://50.7.241.10:8006
結果
http://50.7.241.10:8006
マクロが停止しません

ヘッダと開始マーク 終了マーク
BB-Shout ChannelList v1.0
---

---
は1回だけですので手で入れた方がよいようです。
また番号は有れば勘定しやすいですが、逆に入れ替えるとふり直さないといけな
いのも不便でない方が良いかもしれません。

局リストは開始から終了まで2行使い、
00から99(ラジオが勝手に先頭からの順番を表示します) まで
100タイトル以下です、(200行)

plsファイルは 全部同じ名前の 「tunein-station.pls」
m3uファイルはそれぞれ名前が違います。

リストで得られる URL:ポーt を ブラウザのURL窓に貼りますと
SHOUTcast D.N.A.S. Status が表示されます。
他には デタラメに文字が流れてくる場合があり(データが連続出来ているよう
です)
こちらの方はポートの後の文字を抜いて貼ると、違う型式の
SHOUTcast stream Status が表示されます。

ジャンルやアーチストを絞って データファイルを集め
局名リストを作らないと、リストの分しか聞くことが出来ません。

効率よく集めて整理し、画面から見えるタイトルは中にないことが多く、
2行以上入っている局は、同じ局名が並んでしまうことがあります。
これらを踏まえてリストにする方法を考えています。

それでは有り難うございました。

(2012/10/03 17:21), 山紫水明 wrote:
>  ノノムンさん,
>
> こういうことでしょうか?
> //------------------------------------------------
> replaceall "^(?!(File|Title)).*\\n", "", regular;
> replaceall "^(File.+)\\n(Title.+$)", "\\2\\n\\1", regular;
> replaceall "^(File[0-9]+=|Title[0-9]=\\(.+?\\) )", "", regular;
> gofiletop;
> insert "BB-Shout ChannelList v1.0\n---\n";
> while( code != eof ) {
>      insert rightstr( "0" + str(#n), 2 )+ " ";
>      movetolineno 1, lineno + 2;
>      #n = #n + 1;
> }
> endmacro;
> //------------------------------------------------
>
>                            山紫水明
>                            SANSHISUIMEI
>
>

[ ]
RE:07141 ファイルリストの整形 マクロにNo.07142
山紫水明 さん 12/10/04 20:20
 
 ノノムンさん,

 データ自体がどうも不規則のようですので,マクロは最初の3行(あるいは5行)
だけにして運用された方がいいと思います。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07142 ファイルリストの整形 マクロにNo.07144
ノノムン さん 12/10/06 22:03
 
山紫水明さん こんばんは ノノムンです

replaceall "^(?!(File|Title)).*\\n", "", regular;
replaceall "^(File.+)\\n(Title.+$)", "\\2\\n\\1", regular;
replaceall "^(File[0-9]+=|Title[0-9]=\\(.+?\\) )", "", regular;
gofiletop;
endmacro;

この様にしますと、ダウンロードごとに処理されまして、
最後にカーソルの位置へ読み込んで継ぎ足して、ファイルリストが作れました。

それではありがとうございました。

(2012/10/04 20:20), 山紫水明 wrote:
>  ノノムンさん,
>
>  データ自体がどうも不規則のようですので,マクロは最初の3行(あるいは5行)
> だけにして運用された方がいいと思います。
>
>                            山紫水明
>                            SANSHISUIMEI
>
>

[ ]