このブログを検索

大文字小文字を区別する 正規表現

Atelierで“関数”が含まれるブログ記事

2013年10月20日

隠居のパソコン備忘録: フォルダー内のMP3ファイル一覧をコピーしてテキストにする方法


 PCにライブラリとして収納しているMP3ファイルから、車で聞くためなどに音楽CDを作成することは結構多い。(最近の車には、車のオーディオHDDにmp3ファイルを保存できるようであるが)
このようなときには、インクジェット対応の白色CDに、音楽CDを作成し、CDにラベル印刷をしたり、CDケースにCDの内容を印刷したラベルを挿入したい。そのようなときに、例えば次のようなことができれば簡便である。

フォルダー内のファイル一覧
List-02.JPG

⇓⇓⇓⇓
上の情報を下のような表にしたい。(表-1)

List-01.JPG


このようなとき、プリンターメーカーのソフトで上のファイル一覧を見ながら20曲以上の曲名を1つずつ入力するのは、めんどくさい作業である。パソコンには対象とするファイルに、曲名が表示されているのに、これをCopy&Pasteする手立てがない。
 ファイル名だけでもコピーできれば、CDに直接、曲名をプリントする時にも随分楽である。

 それで、何か手立てはないのかとググってみると、Yahoo!知恵袋に次のような方法が紹介されていた。
  1. テキストエディター ( メモ帳等 ) を開く
  2. dir /b > List.TXT の1行を記述
  3. 名前をつけて保存で、一覧を作りたいフォルダーへ、X.BAT のファイル名で保存
  4. X.BAT をダブルクリック


これを応用して、上で例として表示した K: ドライブにある WriteCD フォルダーにある mp3 ファイルの一覧をコピーしてみた。
  1. テキストエディター ( 私の場合「秀丸」 ) を開く
  2. 「秀丸」の一行目に、dir /b > List.TXT と入力する
  3. 秀丸の「ファイル」⇒「名前をつけて保存」で、WriteCD フォルダーへ album.BAT のファイル名で保存する。
  4. エクスプローラでK: ドライブにあるフォルダー WriteCD を開くとalbum.BATというファイルがあるので、これををダブルクリックする。

 すると、次のようにファイル名一覧をテキストにすることができるので、CD に曲名を直接プリントするときの文字入力は随分楽となった。

ファイル名一覧のテキスト「秀丸」
List-03.JPG


 ただ、上の方法では、フォルダー内のファイル名一覧だけしかテキスト化できない。ファイル名だけではなく、ファイルの属性(この例でいえば、Artists、Album や長さなど)もテキスト化できなければ、表-1のような表にするにはめんどくさい入力作業が必要である。
 それでもっと簡便内方法はないのかと、いろいろと探っているうちに、MP3などの音楽ファイルを含むフォルダーに特化しているが、Windows7 用に最近導入したMP3 ファイルのタグ編集ソフトの Mp3tag が、そのような機能を持っていることを見つけた。

 このMp3tag は様々な機能をもっているが、テキスト化したいフォルダーを【ファイル】⇒【ディレクトリ追加】で、選択(例の場合:k:WriteCD)すると、下のような表示になる。(属性として表示する項目は選択できる)

Mp3tag の画面
クリックすると大きくなります。


 このとき、【ファイル】⇒【出力】で出てくるセレクトボックスから、csv を選択するとExcel 用のcsvテキストファイルとなり、デフォールトでは、MP3ファイルがあったフォルダー(例の場合:k:WriteCD)に保存される。Excel を立ち上げ、このcsvテキストファイルを読み込み、Excel 作業をすれば、表-1のような表を作成することができる。
 ただし、曲の長さは、例えば 219 のように トータル秒数表示となっており、次のような関数【 =TEXT(D2/86400,"m:ss") 】(D2は計算対象のセル)で、3:39に表示を変える必要がある。まあこれも Excel 操作の一つではあるが。
 なお、この作業は、Google ドキュメントのスプレッドシートでも同様なのことができる。

 

2008年7月27日

隠居のお勉強:JavaScript(12) throw

 MT のバージョンを 3.35 から 4.1 へアップグレードするのにずいぶん時間をとられて、続けていた JavaScript のお勉強がほったからしになっていた。
 過去の JavaSCript のエントリーを見直していると、 4.1 へアップグレードによってリンク切れを起こしていたり、必要なスクリプトがサーバーにアップされていなかったりしていた。それらを修復しながら復習することができた。

 W3School tutorial の続きで、今回は throw の勉強である。
  throw statement によって、例外処理ができる。前回の try....catch と一緒に使うと適切なエラー・メッセージによってプログラムを流すことができる。
 以下の例では、変数x に値を求め、x が 0 より小さかったり、10 より大きかったり、数字以外の文字がインプットされた場合に、それぞれにあったエラーを表示する。
 
<html>
<body>
<script type="text/javascript">
var x=prompt("Enter a number between 0 and 10:","");
try
{ 
if(x>10)
  {
  throw "Err1";
  }
else if(x<0)
  {
  throw "Err2";
  }
else if(isNaN(x))
  {
  throw "Err3";
  }
}
catch(er)
{
if(er=="Err1")
  {
  alert("Error! The value is too high");
  }
if(er=="Err2")
  {
  alert("Error! The value is too low");
  }
if(er=="Err3")
  {
  alert("Error! The value is not a number");
  }
}
</script>
</body>
</html>


 上の例を実行するボタンを作ってみた。Script は外部化し<head> 部で呼び出している。 

 

 ボタンをクリックしたときに、上の js を実行するためには、関数化しておかねばならない。作った関数は以下である。
// throwEx sample
function throwEx()
{
  ・
  ・
(上の青字部分)
  ・
  ・
}


これを<body> で実行するボタン(上のボタン)を置く、HTML は、次のコードである。
<input type="button" onclick="throwEx()" value="throw statement Sample" />


2008年4月19日

隠居のお勉強:JavaScript(10) event

 ちょっとサボっていた W3Schools の JavaScript のお勉強を再開した。じつは順序に従って、for..in という構文の学習していたのだが、example の文法がよく理解できない。あとで学習する object のときにも出てくるようなので、スキップすることにした。 object がよく理解できていないことが原因のようなので、その学習の中で理解していくことにした。

 それで今回は、次のステップである event の勉強である。

 Web ページの全ての要素(element)は、JavaScript 関数(function) のトリガーであるイベント(event)となる。例えば、ボタン element の onClick event は、ボタンをクリックすると実行される関数を指示する場合に使用される。イベント(event)は、HTMLタグの中で定義する。

 event には次のようなものがある。
  • マウス・クリック
  • Web ページあるいはイメージのロード
  • Web ページ上のホットスポットにカーソルが乗る。
  • HTML form で input box が選択される。
  • HTML form をサブミットする。
  • 何らかのキーが叩かれる。

 event は通常、関数との組み合わせで使用される。関数は、event が発生する前には実行されない。

 例えば、 onClick event は次のように使われる。
Field1: <input type="text" id="field1" value="おはよう!!">
Field2: <input type="text" id="field2">
Click the button below to copy the content of Field1 to Field2.
<button onclick="document.getElementById('field2').value= document.getElementById('field1').value">Copy Text</button>

 このコードを実行すると次のようになる。Copy Text ボタンをクリックしてみてください。

Field1:
Field2:

Click the button below to copy the content of Field1 to Field2.


 JavaScript で認められている event の一覧を、英語であるが W3Schools から引用加工させていただいて、下のテーブルに記載した。
 詳細は、W3Schools の complete Event reference にある。それぞれの event の使い方を詳しく説明している。

   
Attribute The event occurs when...
onabort Loading of an image is interrupted
onblur An element loses focus
onchange The user changes the content of a field
onclick Mouse clicks an object
ondblclick Mouse double-clicks an object
onerror An error occurs when loading a document or an image
onfocus An element gets focus
onkeydown A keyboard key is pressed
onkeypress A keyboard key is pressed or held down
onkeyup A keyboard key is released
onload A page or an image is finished loading
onmousedown A mouse button is pressed
onmousemove The mouse is moved
onmouseout The mouse is moved off an element
onmouseover The mouse is moved over an element
onmouseup A mouse button is released
onreset The reset button is clicked
onresize A window or frame is resized
onselect Text is selected
onsubmit The submit button is clicked
onunload The user exits the page

2008年3月28日

隠居のお勉強:JavaScript Basic (7) 関数

 全く自己満足の世界であるが、W3Schools での JavaScript Tutorial でお勉強を続けてみたい。

 今回は、[JS Functions]の項である。Function は、Example で既に使われているので、今回はおさらいである。
  • Function(関数)とは、イベントあるいは関数が呼び出されるときに実行される再使用可能なコードの集まりである。
    • おさらいのために、今回次のような学習のためのJavaScript を作成した。
    • ブログ・サーバーにおいた LinkButton.js という名前の js ファイル。
      //JavaScript Study Making Link Button
      function link_button()
      {
      var name=prompt("リンクする URL 名を入力ください。","URL");
      if (name!=null && name!="")
      {
      window.open(name);
      }
      }
    • この中で、prompt box に入力された URL を新しいウィンドウに開くという関数 link_button を設定している。
    • この関数を、ページを開いた時に呼び出すために、HTMLの <head> 部(MTのテンプレートで)においた。関数は、 <head> 部にも、 <body> 部にもおくことができるが、<head> 部におく方が賢明なようである。
    • <head> 部に関数を設定している js file を呼び出すためのHTML。<$MTBlogURL$>はMovableType のテンプレート・タグであり、私の場合、http://n-shuhei.net/blog/ を置換するタグである。
      <script type="text/javascript" src="<$MTBlogURL$>LinkButton.js"></script>
    • 呼び出した関数を実行するために、 <body> 部に関数 link_button() を実行させる次のような HTML を記述する。
      <input type="button" value="URL you want" onclick="link_button()" />

    • 右のボタンをクリックするとリンク先のURLを入力できる。  

    • 上の例は、arrgument (引数)がない場合の関数であるが、一般的には、次のような構文となる。
      function functionname(var1,var2,...,varX)
      {
      some code
      }
    • var1,var2 などは関数に取り込まれる変数または値である。 { と } は、関数の始めと終わりを示す。
    • var1,var2 などの引数がない場合にでも、関数名の後ろに () をつけなければならない。
    • 関数名は、小文字なければならない。JavaScript は大文字・小文字の区分が厳格である。


    • 関数ではまた、次のように関数から戻される値(戻り値)を特定する return statement が使われることがある。
      function prod(a,b)
      {
      x=a*b;
      return x;
      }
    • 上の関数を呼び出すときは、次のように2つのパラメータが必要である。
      product=prod(2,3);
    • 関数 prod() からの戻り値は 6 となるが、この値は product という変数で保存される。
    • 関数の中で宣言された変数は、その関数の中だけで使われるローカル変数となる。関数の外で宣言された変数は、グローバル変数と呼ばれ、宣言されたページのどの関数でも使用できる。ページが閉じられたときに消滅する。

2007年6月16日

隠居のHP備忘録:音の出るリンクボタンの作成

 Atelier Shuhei Weblog の右サイドメニューでのサイト内リンクボタンの統一が取れていなかったので、作り直すことにした。物覚えが悪くなって Flashのリンクボタンを作るたびに参考書を片手に一からやり直すことになるので、今回は備忘録として書き留めておくことにした。Flash製作に長けた人なら幼稚な話であるが。
 下に、今回作成した 蝶の写真集 Studio YAMAKO へのリンクボタンを例示する。

続きを読む "隠居のHP備忘録:音の出るリンクボタンの作成"