VB.NETの最近のブログ記事

ブログ開始直後からこの関係の記事を書き続けているわけですが、一応個人ベースでは使えるものができあがったので本当はまだ途中なんですけど書きます。

「タグ入り楽曲ファイル(アルバム単位)のタグの内容からHTMLのtableを生成するアプリ」

  • 対応OS: WindowsXP/Vista/7 (64bit可) ※要.NET Framework 3.5
  • 対応している(と思われる)形式:mp3, wma, ogg, m4a, m4p 
  • 既知のバグ:「id, class設定」ボタンで例外(Vista/7)→続行後は未実装
  • 既知のバグ:保存したhtmlファイルが閉じられてないような気がする

メイン画面です。

左上の「フォルダを開く」ボタンを押して、楽曲ファイルの入ったフォルダを選択します。基本的に1フォルダ=1アルバム(のDisc1枚)であることをこのアプリでは想定しています。


ここではナムコの「RAGE RACER Original Sound Track」を選択してみました。
なお、こんなアルバムは存在しないんです。これは自分が自主録したものです。


こうんな感じでDataGridViewにタグ情報が入ります。

基本はあとはこれをもとにHTMLのtableを生成することだけです。なお、一番左下の「id, class設定」ボタンは、tableに適用するCSSのidやclass名を設定する・・・のが目標の未実装機能です。
ここでは「table生成」ボタンをクリックしてみます。

こんな感じの簡易エディタが開いて、既にHTMLが生成されています。CSSのclass名はサンプルで、CSSファイルはサンプルが付属しています。
「保存」してもいいですし、「クリップボードにコピー」しても結構です。エンコーディングも選べますよ。


「rage」という名前で保存しました。拡張子は勝手に付くので「rage.html」になるかと。

ここら辺でちょっとヘマをしたっぽいです。なんかファイルが閉じられてない気が。→改善事項

CSS適用しないで素で表示したところ。ブラウザはChromeです。

ほんでサンプルのCSSを適用したところ

 

とまあ、今のところはこんな感じでございます。
個人的には成長したなぁと思います。いやぁ、この調子でC#も覚えられればねぇ・・・

使ってみたいという奇特な方がいましたら、右サイドバーの「contact me」からメールを下さいませ。あくまで自己責任でお使い下さい。このアプリによって楽曲ファイルなどがおかしくなったとかいう苦情は受け付けませんので宜しくお願い致します。


便利だと思って入れたソフトがこんな悪さをしているとは思いませんでした。

Folder Size : インストールするとエクスプローラ等の詳細表示にフォルダサイズを表示できるようになるソフト
http://foldersize.sourceforge.net/
http://www.forest.impress.co.jp/lib/sys/wincust/explrextn/foldersize.html

確かに便利なのですが、実は非常に重大な罠が入ってました。

なんと、VB系や.NETで使われるGetDetailsOfのコード番号をずらしてしまう、というもの。

以下の比較表をご覧下さい。

WindowsXPのものですが、左が通常のもの。何かアプリケーションで拡張する場合、38番以降の空き番号に追加されるのが普通です(AutoCADなど)。ところが右を見ると、8~11番にFolder Sizeによる拡張が挿入されてしまっています。

どうしてこんな実装をされてしまったのか理解に苦しみます。私が個人的に作ってるソフトはGetDetailsOfをよく利用しますのでこんなことをされてしまうと困ります。したがって速攻でアンインストールしました。

なお、アンインストールすると無事に元の通りに戻りました。唯一の良心でしょうか(笑

皆さんもお気を付け下さい。

 

2010年03月25日(木) 

 

ホント最近知ったこと>VB.NETはMsgboxじゃなくてMassageBox.Showを使うのが正解ぽい

posted at 02:14:15

【備忘録】XMLのserialize,deserialize VB.NET >http://dobon.net/vb/dotnet/file/xmlserializer.html

posted at 16:58:44

 

 

2010年03月30日(火) 

 

VB.NET テキストボックスの改行をbrタグにするのは超単純にこれでいけた>Replace(txtA,vbCrLf, ("<br>" & vbCrLf))

posted at 17:27:23

 

2010年03月31日(水) 

 

VB.NET これは非常に参考になった。複数イベントをまとめるとか。>http://goo.gl/0hIe

posted at 16:15:53

 

2010年04月02日(金) 

 

[VB.NET] Small BasicのLibraryを利用してMP3を簡単再生させてみた>http://goo.gl/5u1k

posted at 18:24:37

 

2010年04月08日(木) 

 

明日はListView (MultiColumn)への値の代入とTimer, Tickイベントについて調べて実装する予定。#vbnet

posted at 02:59:17

ああそうだ、そろそろTry~Catchを覚えないといかん #vbnet

posted at 03:06:09

VB2010関連記事>VBの自動プロパティ、コレクション初期化子、行継続 http://bit.ly/9rSNqh#vbnet

posted at 09:12:14

【備忘録】VB.NETのクラスをVBAで使用 http://7ujm.net/VB/VBAVBnetActiveX.html#vbnet

posted at 12:09:18

Functionプロシージャの勉強をVBAから始めたのが失敗だったか。戻り値はプロシージャ名じゃなくてReturnに入れるのがVB.NET流らしい>http://goo.gl/Nqll #vbnet

posted at 12:17:53

 

2010年04月09日(金) 

 

マルチカラムのListViewから例えば4列目の1行目に入っている値だけ取得したいのだが、方法が分からない・・・ #vbnet

posted at 19:54:13

 

2010年04月10日(土) 

 

それにしてもListViewが全然わからん。ListBoxは簡単だったのに。マルチカラムになるだけでこうも違うとは。#vbnet

posted at 02:25:08

 

2010年04月11日(日) 

 

ListView(マルチカラム)への値の代入例:配列tag()を作っておいて ListView1.Items.Add(New ListViewItem(Tag)) で入る。#vbnet

posted at 03:50:15

ところがListViewからの値の取得の方が難しくて未だに分からない状態 #vbnet

posted at 03:50:54

 

2010年04月14日(水) 

 

自分用に作っていたヤフオク出品ヘルパーアプリケーションがやっと完成。ありがとうVB2008Express。

posted at 00:13:19

Visual Studio 2010を4月20日から提供開始。パッケージ版は6月18日発売。Express版(無料)は4月27日からダウンロード開始>http://goo.gl/SVBe

posted at 16:45:26

 

2010年04月15日(木) 

 

勢いでmp3/wmaプレーヤソフトを作った。#vbnet

posted at 21:44:06

SmallBasicのLibraryを使う方法は結局は駄目だった。ファイル名の指定がSBだとPrimitive型で、VB.NETでこれをStringに変換するのが分からなくて挫折。結局WMP.DLLを参照して利用。#vbnet

posted at 21:45:58

それにして各種イベント処理が難しい。たとえばポーズされているかの判定とかも分からなくて、1ボタンで一時停止/再開を実装したかったのが出来なかったorz #vbnet

posted at 21:48:27

そうそう、あとListViewはすっぱり諦めたw ListBoxマンセーw #vbnet

posted at 21:57:39

あとはTwitterAPIを組み込めば、つぶやきプレーヤーになる!ってところまで作った。#vbnet

posted at 22:07:38

 

2010年04月16日(金) 

 

ソースコードの最適化。同じ塊が何カ所もあるので、Sub化またはFunction化 #vbnet

posted at 10:49:36

CodeZineの.NET関連記事は有料のWindows Forms Controlの話題が多い。初心者講座とかやってほしい。 #vbnet

posted at 17:14:40

異なるフォーム間の値の受け渡し。DOBON.NETさんには頭が上がらないな。本当にいいサイト>http://dobon.net/vb/dotnet/form/accessanotherformdata.html

posted at 18:41:46

@dz11 別のフォームのデータを取得するhttp://dobon.net/vb/dotnet/form/accessanotherformdata.html

posted at 20:25:47

@dz11 外部アプリケーションを起動 http://dobon.net/vb/dotnet/process/openfile.html

posted at 20:26:30

 

2010年04月17日(土) 

 

昨日作ったMP3Playerを精査。無駄な重複コードをSub・Function化、デバッグとインターフェイスの一部変更。フォーム間の値渡しを覚えたので設定フォームの追加(モーダルダイアログ)。#vbnet

posted at 02:48:16

数年前、覚えたい言語のNo.1はPHPとMySQLだったが、今覚えたのはVB.NETだった。開発環境の導入しやすさが決め手だったのかな。XHTML/CSSはやるのでPHPは今でも覚えたいが・・・

posted at 03:48:17

以前は何か覚えるんだったらWebサイトのデータベースをPHP/MySQLでなんとかしたいなぁと漠然に考えていただけでしたが、VB.NETの方は、MP3タグ情報をHTMLに自動変換させたいなぁと思っていたところに@ITの記事を見つけたので導入してみたという感じ。

posted at 03:51:45

派生言語としてOfficeVBAやAutoCAD VBAなんかもいじれるようになったのは良かったような悪かったような。

posted at 03:52:39

 

2010年04月22日(木) 

 

WMP.DLLを使うならあれこれ考えるより、フォルダを開いた時点でプレイリスト(ASX)をロード(なければ作成)してそれを使う方がコントロール的に楽かなぁ。#vbnet

posted at 19:10:05

 ■ マイクロソフト、最新開発環境「Visual Studio 2010 日本語版」を4月20日より提供(Impress Enterprize Watch, 2010.4.13)

マイクロソフト株式会社は4月13日、統合開発環境の新版「Visual Studio 2010日本語版」を発表した。英語版のVisual Studio 2010は同日にRTM(製造工程向けリリース)を完了し、MSDN Subscription会員向けの提供を開始。日本語版については、4月20日より順次提供開始され、無償版の「Visual Studio 2010 Express」も4月27日にダウンロード提供が開始される。また今回は同時に、.NET Framework 4も正式リリースされている。

Visual Studio 2010および.NET Framework 4の正式日本語版がついに提供開始です。無料のExpress版は4月27日から、パッケージ版は6月18日からの販売となります。

エディションは見直しがなされ、ローエンドがExpress、ローレンジがProfessional、ミドルレンジがPremium、ハイエンドがUltimateとなります。見直しされたんでしょうけど今までのエディションとの関係がちょっと分かりづらいですね。

  • 2005/2008 Standard → 2010 Professional
  • 2005/2008 Professional → 2010 Premium
  • 2005/2008 Professional Team Edithion → 2010 Ultimate

といったところでしょうか。

ライセンス形態は相変わらず複雑です。趣味プログラマーな自分などには基本的にはExpressで十分なんでしょうけど、今回はちょっと製品版が欲しいなぁと思ったりしています。キャンペーンで「2005/2008 Standardから2010 Professionalが39,800円」というのがあるので、今のうちにAmazonで2008 Standard(24,100円)を買っておこうか悩んでます。このアップグレードパスだと2008 Professionalからは適用されないのでしょうか?

どうせ買うなら、2008 Expressから2008 Professional (UPG)にすればWindows Moible 6.x向けの開発も出来るしなぁと思ったりもしますし、2010 Professional ではモバイル開発の扱いがどうなのかも気になるところです。

  1. 2008 Standard 24,100円(Amazon) + 2010 Professional UPG 39,800円 = 63,900円
  2. 2008 Professional UPG 54,000円(NTT-X) + 2010? = 54,000円+α

1.くらいの金額だとなんとか出せるんですが、2.で54000円にさらに・・・となると私にはちょっときついかな、と。

 

[VB.NET] Windows XPのGetDetailsOf項目

Windows XP ServicePack3

  • 0 名前
  • 1 サイズ
  • 2 種類
  • 3 更新日時
  • 4 作成日時
  • 5 アクセス日時
  • 6 属性
  • 7 状態
  • 8 所有者
  • 9 作成者
  • 10 タイトル
  • 11 表題
  • 12 カテゴリ
  • 13 ページ数
  • 14 コメント
  • 15 著作権
  • 16 アーティスト
  • 17 アルバムのタイトル
  • 18 年
  • 19 トラック番号
  • 20 ジャンル
  • 21 長さ
  • 22 ビット レート
  • 23 保護
  • 24 カメラのモデル
  • 25 写真の撮影日
  • 26 大きさ
  • 29 この回のタイトル
  • 30 プログラムの説明
  • 32 オーディオ サンプル サイズ
  • 33 オーディオ サンプル レート
  • 34 チャンネル
  • 35 会社名
  • 36 説明
  • 37 ファイル バージョン
  • 38 製品名
  • 39 製品バージョン

覚え書きとして載せておきます。

27と28が無いのはよく分かりません。また、40以降は標準以外のアプリケーションで拡張されるようです。

 

Small Basicのリファレンスを眺めていたら出来そうだったのでちょっと作ってみたらあっさり出来てしまいました。

まず、Small Basicをインストールしておいてください。Microsoftが子供向けに出している開発言語で、VB.NETより簡単に導入、ビルド、公開など出来ます。各国語版が全て入っていますので日本語でも使えます。

Microsft Small Basic

それではVB.NETの方のコードです。その前に、プロジェクトの参照の追加でSmallBasicLibrary.dllを追加して下さい。C:\Program Files\Microsoft\Small Basic\内にあります。

Imports Microsoft.SmallBasic.Library

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
        Dim OFD1 As New OpenFileDialog()
        With OFD1
            .Filter = "MP3File(*.mp3)|*.mp3"
            .FilterIndex = 1
            .InitialDirectory = "D:\"
            .Title = "Open MP3 File"
        End With
        If OFD1.ShowDialog() = DialogResult.OK Then
            Label1.Text = OFD1.FileName
            Sound.Play(OFD1.FileName)
        ElseIf OFD1.ShowDialog() = DialogResult.Cancel Then
            Exit Sub
        End If
    End Sub
End Class

OpenFileDialogでMP3ファイルを指定してやると再生します。If文の中にある、

            Sound.Play(OFD1.FileName)

が再生用のメソッドです。簡単すぎます。これは非常に便利。WAVとWMAも再生出来ますよ。

Small Basic API Referencesも公開されていますのでご覧になって下さい。 

以前のエントリーで『[VB.NET] MP3ファイルのプロパティ値を取得する (2)-GetDitailsOf -』というのをやりましたが、この中でファイルのプロパティ値を得る部分をFunctionプロシージャにしてみました。

まず、プロジェクトに「参照の追加」でCOMオブジェクト「Microsoft Shell Controls and Automation」を追加します。

肝心要のFunctionプロシージャの内容

Imports System
Imports Shell32
'---------------------------------------------
Public Class Form1

    ' 指定のフォルダ、ファイル、タグナンバーからタグ情報を得るFunctionプロシージャ
    Public Function GetItem(ByVal Dir As String, _
                            ByVal File As String, _
                            ByVal ItemID As Integer) As String

        Dim shell As New ShellClass()
        Dim f As Folder = shell.NameSpace(Dir)
        Dim item As FolderItem = f.ParseName(File)

        Dim tag As String

        ' ***プロパティの抽出***
        tag = f.GetDetailsOf(item, ItemID)

        GetItem = tag

    End Function

End Class

これで、ユーザ定義関数 GetItem が出来ました。使い方は、

GetItem(Dir, File, ItemID)

   Dir    : フォルダパス (文字型)
   File   : ファイル名 (文字型)
   ItemID : GetDetailsOfで使うプロパティID値 (整数型)

   返り値は文字型となります。

実際に使ってみます。デザイナで適当なものを作ります。

この部分のコードは

    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) Handles Button1.Click

        Dim Dir As String = TextBox1.Text
        Dim File As String = TextBox2.Text
        Dim ItemID As Integer = TextBox3.Text

        If (Dir = Nothing Or File = Nothing) Then
            Exit Sub
        ElseIf ItemID = Nothing Then
            Exit Sub
        End If

        Dim ItemProperty As String

        ItemProperty = GetItem(Dir, File, ItemID)

        TextBox4.Text = ItemProperty

    End Sub

参考までプロパティIDの例を以下に示します。

この中から例として 2:種類, 3:更新日時 を出してみます。

 

前は MP3ファイルだけに的を絞ってましたがこれなら汎用的に使えますので結構便利なのかなぁという気がします。

2010年、明けました。今年の抱負。

ついに2010年です。未だに宇宙旅行は実現されていないのですね。

そんな訳で、今頃となりましたが、明けましておめでとうございます。

今年はニュース系の話題は少し控え目にして、本来のプログラミングの方の記事を細々と書いていこうと思います。初心者なので参考にならないとは思いますがお付き合い下さい。

宜しくお願い致します。

 Microsoft Visual Basic 2008 Express SP1を今使ってるWindows7マシンに入れたので、GetDetailsOfのプログラムを走らせてみました。@ITの記事にも注意があるように、XPとVistaでは結果が異なります。ということは7も違うだろうということで(Vistaと一緒かもしれません。今環境がないので試せませんが)。

結果 (長いです)

  • 0 名前
  • 1 サイズ
  • 2 項目の種類
  • 3 更新日時
  • 4 作成日時
  • 5 アクセス日時
  • 6 属性
  • 7 オフラインの状態
  • 8 オフラインで利用可能
  • 9 認識された種類
  • 10 所有者
  • 11 分類
  • 12 撮影日時
  • 13 参加アーティスト
  • 14 アルバム
  • 15
  • 16 ジャンル
  • 17 指揮者
  • 18 タグ
  • 19 評価
  • 20 作成者
  • 21 タイトル
  • 22 件名
  • 23 分類項目
  • 24 コメント
  • 25 著作権
  • 26 トラック番号
  • 27 長さ
  • 28 ビット レート
  • 29 保護
  • 30 カメラのモデル
  • 31 大きさ
  • 32 カメラの製造元
  • 33 会社
  • 34 ファイルの説明
  • 35 プログラム名
  • 36 継続時間
  • 37 オンライン
  • 38 再帰
  • 39 場所
  • 40 任意出席者アドレス
  • 41 任意出席者
  • 42 開催者住所
  • 43 開催者名
  • 44 アラーム時刻
  • 45 必須出席者アドレス
  • 46 必須出席者
  • 47 リソース
  • 48 会議の状態
  • 49 空き時間情報
  • 50 合計サイズ
  • 51 アカウント名
  • 52 進捗状況
  • 53 コンピューター
  • 54 記念日
  • 55 秘書の名前
  • 56 秘書の電話
  • 57 誕生日
  • 58 住所 (会社)
  • 59 市 (会社)
  • 60 国/地域 (会社)
  • 61 私書箱 (会社)
  • 62 郵便番号 (会社)
  • 63 都道府県 (会社)
  • 64 番地 (会社)
  • 65 FAX 番号 (会社)
  • 66 会社のホーム ページ
  • 67 会社電話
  • 68 コールバック番号
  • 69 自動車電話
  • 70 子供
  • 71 会社代表電話
  • 72 部署
  • 73 電子メール アドレス
  • 74 電子メール2
  • 75 電子メール3
  • 76 電子メールの一覧
  • 77 電子メール表示名
  • 78 表題2
  • 79
  • 80 氏名
  • 81 性別
  • 82 名2
  • 83 趣味
  • 84 住所 (自宅)
  • 85 市 (自宅)
  • 86 国/地域 (自宅)
  • 87 私書箱 (自宅)
  • 88 郵便番号 (自宅)
  • 89 都道府県 (自宅)
  • 90 番地 (自宅)
  • 91 自宅 FAX
  • 92 自宅電話
  • 93 IM アドレス
  • 94 イニシャル
  • 95 役職
  • 96 ラベル
  • 97
  • 98 住所 (郵送先)
  • 99 ミドル ネーム
  • 100 携帯電話
  • 101 ニックネーム
  • 102 勤務先所在地
  • 103 住所 (その他)
  • 104 ほかの市区町村
  • 105 他の国/地域
  • 106 他の私書箱
  • 107 他の郵便番号
  • 108 他の都道府県
  • 109 他の番地
  • 110 ポケットベル
  • 111 肩書き
  • 112 市区町村 (郵送先)
  • 113 国/地域
  • 114 私書箱 (郵送先)
  • 115 郵便番号 (郵送先)
  • 116 都道府県
  • 117 番地 (郵送先)
  • 118 プライマリ電子メール
  • 119 通常の電話
  • 120 職業
  • 121 配偶者
  • 122 サフィックス
  • 123 TTY/TTD 電話
  • 124 テレックス
  • 125 Web ページ
  • 126 内容の状態
  • 127 内容の種類
  • 128 取得日時
  • 129 アーカイブ日時
  • 130 完了日
  • 131 デバイス カテゴリ
  • 132 接続済み
  • 133 探索方法
  • 134 フレンドリ名
  • 135 ローカル コンピューター
  • 136 製造元
  • 137 モデル
  • 138 ペアリング済み
  • 139 クラス
  • 140 状態
  • 141 クライアント ID
  • 142 貢献者
  • 143 コンテンツの作成日時
  • 144 前回印刷日
  • 145 前回保存日時
  • 146 事業部
  • 147 ドキュメント ID
  • 148 ページ数
  • 149 スライド
  • 150 総編集時間
  • 151 単語数
  • 152 期限
  • 153 終了日
  • 154 ファイル数
  • 155 ファイル名
  • 156 ファイル バージョン
  • 157 フラグの色
  • 158 フラグの状態
  • 159 空き領域
  • 160 ビットの深さ
  • 161 水平方向の解像度
  • 162
  • 163 垂直方向の解像度
  • 164 高さ
  • 165 重要度
  • 166 添付
  • 167 削除
  • 168 暗号化の状態
  • 169 フラグの有無
  • 170 終了済
  • 171 未完了
  • 172 開封の状態
  • 173 製作者
  • 174 日付時刻
  • 175 フォルダー名
  • 176 フォルダーのパス
  • 177 フォルダー
  • 178 参加者
  • 179 パス
  • 180 場所ごと
  • 181 種類
  • 182 連絡先の名
  • 183 履歴の種類
  • 184 言語
  • 185 最終表示日
  • 186 説明
  • 187 リンクの状態
  • 188 リンク先
  • 189 URL
  • 190 メディアの作成日時
  • 191 リリース日
  • 192 エンコード方式
  • 193 プロデューサー
  • 194 発行元
  • 195 サブタイトル
  • 196 ユーザー Web URL
  • 197 作者
  • 198 添付ファイル
  • 199 BCC アドレス
  • 200 BCC
  • 201 CC アドレス
  • 202 CC
  • 203 会話 ID
  • 204 受信日時
  • 205 送信日時
  • 206 送信元アドレス
  • 207 差出人
  • 208 添付ファイルの有無
  • 209 送信者アドレス
  • 210 送信者名
  • 211 ストア
  • 212 送信先アドレス
  • 213 To do タイトル
  • 214 宛先
  • 215 経費情報
  • 216 アルバムのアーティスト
  • 217 アルバム ID
  • 218 ビート数/分
  • 219 作曲者
  • 220 イニシャル キー
  • 221 コンパイルの一部
  • 222 雰囲気
  • 223 セットのパート
  • 224 期間
  • 225
  • 226 保護者による制限
  • 227 保護者による制限の理由
  • 228 使用領域
  • 229 EXIF バージョン
  • 230 イベント
  • 231 露出補正
  • 232 露出プログラム
  • 233 露出時間
  • 234 絞り値
  • 235 フラッシュ モード
  • 236 焦点距離
  • 237 35mm 焦点距離
  • 238 ISO 速度
  • 239 レンズ メーカー
  • 240 レンズ モデル
  • 241 光源
  • 242 最大絞り
  • 243 測光モード
  • 244 向き
  • 245 人物
  • 246 プログラムのモード
  • 247 彩度
  • 248 対象の距離
  • 249 ホワイト バランス
  • 250 優先度
  • 251 プロジェクト
  • 252 チャンネル番号
  • 253 この回のタイトル
  • 254 字幕
  • 255 再放映
  • 256 SAP
  • 257 放送日
  • 258 プログラムの説明
  • 259 記録時間
  • 260 ステーション コール サイン
  • 261 局名
  • 262 概要
  • 263 抜粋
  • 264 自動要約
  • 265 検索のランキング
  • 266 秘密度
  • 267 製品名
  • 268 製品バージョン
  • 269 サポートのリンク
  • 270 ソース
  • 271 開始日
  • 272 課金情報
  • 273 完了
  • 274 仕事の所有者
  • 275 総ファイル サイズ
  • 276 商標
  • 277 ビデオ圧縮
  • 278 ディレクター
  • 279 データ速度
  • 280 フレーム高
  • 281 フレーム率
  • 282 フレーム幅
  • 283 総ビット レート
 

前回、「[VB.NET] MP3ファイルのプロパティ値を取得する (4) -FolderBrowserDialogでフォルダ内のファイルを選択-」にて、CDアルバム情報の一部のHTML化が出来ましたが、アルバム情報には他にも「アルバム名」「商品番号」「JANコード」「発売元」「販売元」「価格」等の情報があります。アルバム情報のHTMLファイルはこれらの情報が書き込まれれば完成します。その他一般的な部分は一緒なのでテンプレートを一個作っておいて、MP3を読み込ませたときに、ついでにこれらの情報を入力してマージしてしまえばあとでいろいろ弄ることなくHTMLファイルが作れることになります。

ということで、テスト段階として「テキストファイルの文字列を置換するプログラム」を作ってみました。

フォームエディタで作ったのはこんな感じです。

置換-フォーム

起動時にテンプレートファイルを開くようにしたかったのですが、よく分からなかったため、開くボタンで開くようにしています。イベント・・・とかですよね?

コードは以下。最初にtemplate1.htmlをStreamReaderで読み込みます。置換はReplace関数です。

Imports System
Imports System.IO

Public Class Form1

    Private Sub Button2_Click(ByVal sender As System.Object, _
                    ByVal e As System.EventArgs) Handles Button2.Click

        Dim sr1 As New StreamReader("d:\web\template\template1.html", _
                            System.Text.Encoding.GetEncoding(932))

        TextBox1.Text = sr1.ReadToEnd()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
                    ByVal e As System.EventArgs) Handles Button1.Click

        Dim sr1 As String = TextBox1.Text

        Dim strTitle As String = TextBox2.Text
        Dim strH1 As String = TextBox3.Text
        Dim strH2 As String = TextBox4.Text
        Dim strP1 As String = TextBox5.Text

        Dim sw1 As String

        sw1 = Replace(sr1, "(#title)", strTitle)
        sw1 = Replace(sw1, "(#h1)", strH1)
        sw1 = Replace(sw1, "(#h2)", strH2)
        sw1 = Replace(sw1, "(#p1)", strP1)

        TextBox6.Text = sw1

    End Sub

End Class

実行結果がこちら。

置換-結果

特に難しいことはしてません。ハイ(汗

カスタム検索
Access Counter
Powered by Movable Type 4.22-ja

2016年9月

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

最近のブログ記事