Kan-Ru Chen's Weblog

小程式...

因為抓了不少midi檔, 乾脆就寫個小程式來建立檔案列表, 可以餵給timidity按順序播放 用的語言有perl跟ruby, 其實用find加echo應該就可以寫出來了, 跟本不用動用到script 就當做是練習吧 :P

Perl :

    #!/usr/bin/perl
    # filename : mklist.pl
    open(LIST, ">list.tpl");
    opendir(DIR, "/home/kanru/download/midi");
    @dir=readdir(DIR);
    $i = 0;
    $addr = `pwd`;
    chomp $addr;
    foreach(@dir) {
            print LIST m/.*\.mid/ ? "$addr/$_\n" : "";
            $i++;
    }
    print "列表完成,總共有 $i 個檔案\n";
    close(LIST);
    closedir(DIR);

Ruby :

    #!/usr/bin/ruby -w
    # filename : mklist.rb                          
    pwd = Dir.pwd
    dir = Dir.open('.')
    filelist = open('filelist.tpl','w+')
    count = 0
    dir.each do |filename|
            filelist.puts "#{pwd}/#{filename}" if filename.include?('.mid')
            count += 1
    end
    dir.close
    filelist.close
    puts "列表完成, 共有#{count}個檔案"

兩個程式產生的列表是一樣的