2009年7月アーカイブ

前回、「[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

実行結果がこちら。

置換-結果

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

AutoCADで図面を書くとき、基本的にモデル空間では原寸で描きレイアウトで縮尺を持たせることが多いですが、概要図などでノンスケールの図面を書くことも多いと思います。こんな時、寸法も実寸の寸法値ではなく、「寸法値上書き」で対応することと思いますが、これ、毎回寸法を選択してオブジェクトプロパティ管理から「寸法値上書き」の部分を選んで書き込む、という手作業が非常に面倒くさいです。まあ一つ二つなら良いんですが複数あると面倒くさく感じてきます。画面サイズが1280×1024の場合、オブジェクトプロパティ管理で1スクロールさせないと出てきませんから。

ということで、VBAで連続で出来るようにマクロを組んでみました。

使用するのは、寸法オブジェクトの「TextOverrideプロパティ」です。これを書き換えるだけという至って単純なものです。ただし、寸法オブジェクトもいろいろあるので全てに対応するように工夫してみました。

VBAの「InStr関数」を使って、取得したAcadEntity.ObjectNameに「Dimension」が含まれている場合、に処理をするという感じです。

  • 距離寸法(回転):AcDbRotatedDimension
  • 距離寸法(平行):AcDbAlignedDimension
  • 弧長寸法:AcDbArcDimension
  • 角度寸法:AcDb3PointAngularDimension
  • 角度寸法:AcDb2LineAngularDimension
  • 半径寸法:AcDbRadialDimension
  • 半径寸法:AcDbRadialDimensionLarge(大きな円・円弧の場合)
  • 直径寸法:AcDbDiametricDimension
  • 座標寸法:AcDbOrdinateDimension

また、上書きする文字列は「GetStringメソッド」でその都度キーボードから入力とし、Nullを入力できるように「InitializeUserInputメソッド」に 128 を与えています。

Option Explicit

Public Sub DimTextOverride()

start:

    Dim ReturnObject As AcadEntity
    Dim BasePoint As Variant
    Dim strRetObjName As String
    Dim Hantei As Long
    
    Dim strOverride As String
    
    ' エラー処理
    On Error GoTo ersub
    
main:
    
    ' オブジェクトの選択:GetEntityメソッド
    ThisDrawing.Utility.GetEntity ReturnObject, BasePoint, _
        "寸法を選択して下さい / Cancel=ESC"
    
    ' 選択オブジェクトが「寸法」なら処理
    strRetObjName = ReturnObject.ObjectName
    Hantei = InStr(1, strRetObjName, "Dimension", 1)
    If Hantei > 0 Then
            
        ' 文字列をキーボードから入力
        Call ThisDrawing.Utility.InitializeUserInput(128)
        strOverride = ThisDrawing.Utility.GetString(True, _
                                        "上書きする文字列を入力:")
    
        ' 上書き値をTextOverrideプロパティにセット
        ReturnObject.TextOverride = strOverride
            
        ' オブジェクトを更新
        ReturnObject.Update
                        
        ' 選択に戻る
        GoTo main
            
    Else
            
        ' エラー処理:寸法じゃなかったら警告を出して線分選択に戻る
        MsgBox "これは寸法ではありません。選択し直して下さい。"
            
        GoTo main
            
    End If
        
Exit Sub
    
ersub:
    
    ' エラー処理
    Err.Clear
    
    ThisDrawing.Utility.Prompt "コマンドを終了します。"

End Sub

いつものように、アイコンを作ってボタンに登録してしまいましょう。これまた便利になりました。

 

---閑話休題

 

そういえば以前、「文字列を動かさずに基点変更したい」と申していましたが、これって実は標準のコマンドにあったんですね。「JUSTIFYTEXTコマンド(文字位置合わせ)」です。AutoCAD2002から標準で組み込まれています。何かを検索していて以下のブログさんのところで知りました。アイコンは文字ツールバーの中に入っています。

★文字の配置をかえずに、位置あわせのみを変更する方法 (ふるかわっちの便利なAutoCAD手帳。,2006.6.16)

  • オブジェクトプロパティ管理の「位置合わせ」を変更→『現在設定されている基点の座標』が不変
  • 「JUSTIFYTEXTコマンド」を使って基点を変更→『文字列の見た目の位置』が不変(基点の座標が変わる)

 

米Sony、400枚収納可能なBlu-ray Discチェンジャー-実売800ドル。アナログマルチ搭載新BDプレーヤーも (AV Watch, 2009.7.24)
ニュースリリース (Sony America, 2009.7.23)

またしてもSony Americaです。日本のSonyはあくまでもBDプレーヤとしてPS3を売りたいのでしょうか。BDP-S5000ESとBDP-S350を発売して以来新型機の発表がありませんね。

ということで、Sony Americaがまたしても新型BDプレーヤを発表しました。

■ 400枚収納可能なBD/DVD/CDチェンジャー

まずは、400枚収納可能なBlu-ray Discチェンジャーが2機種。エントリー機「BDP-CX960」と“ES”型番がついた上位モデル「BDP-CX7000ES」です。

BDP-CX7000ES
BDP-CX7000ES

BDP-CX960
BDP-CX960

双方とも、400枚のBlu-ray Disc, DVD, CDを収納可能で、有線LANポート経由でGracenoteのMusicIDおよびVideoID技術によりネットワーク上からディスク情報を取得可能です。BDプレーヤーとしての基本機能は押さえてあり、DTS-HD Master Audio, ドルビーTrue HDのビットストリーム出力、x.v.colorに対応。上位機種のBDP-CX7000ESのみDeep Colorにも対応しています。

また、BDP-CX7000ESにはRS-232C端子が備えられ、サードパーティ製のオートメーションコントロールシステムとの連動操作が可能。また、7.1chアナログ音声出力や、「HDリアリティエンハンサー」、 「Super Bit Mapping」などの高画質化技術、独自のアップスケール技術「Precision Cinema HD」も、CX7000ESのみ装備しています。

BDP-CX7000ESが8月発売で実売価格1900ドル前後、BDP-CX960は今秋発売予定で実売800ドル前後とのこと。

■ ESシリーズの新型、でも価格控えめ

BDP-S1000ES
BDP-S1000ES

次に、BDP-S1000ESです。Sonyの"ES"ラインでありながら実売700ドル前後に抑えられたミドルレンジの製品。無線LAN規格IEEE802.11a/b/g/n装備でDLNA, BD-Liveに対応しています。

HDMI出力はx.v.color, Deep Colorに対応、音声系はドルビーTrue HD, DTS-HD Master Audio, DTS-HD HighResolution Audioのデコード出力およびビットストリーム出力に対応し、7.1chのアナログ音声出力端子も装備しています。

 

---

以前紹介したBDP-S560と今回のBDP-S1000ESって競合しないのかな?とも思いましたが、改めて見直してみるとBDP-S560が350ドル、BDP-S1000ESが700ドルなので競合はしてないですね。それにしてもSony AmericaのBDプレーヤーサイトを見ると、ローエンドBDP-S360からハイエンドBDP-S5000ESまで、それに加えて400枚BDチェンジャーが2機種とラインナップが充実していますね。ローエンドのBDP-S360は現在50ドルオフ、ハイエンドのBDP-S5000ESは500ドルオフになっています。

本当に早く日本でもこの充実のラインナップを揃えて欲しいものです。

KDDI、「LISMO Video DVDレンタル」開始――月額1260円から (ITmedia+D Mobile, 2009.7.15)

KDDIは、au WIN端末からオンラインでDVDレンタルが出来るサービスを7月16日から開始しました。このサービスは月額1260円でDVD 4枚をレンタルできるというもの。1枚あたり315円です。新規登録の場合、月末までの料金は無料となります。また、追加でさらに4枚借りられる月額693円の「さらに4枚コース」も用意しています。この場合、1枚当り約244円となります。

2009年7月15日現在、約5万5000件タイトルを用意されており、ユーザーはau WIN端末から申込むとDVDが送られてきます。返却期限は設けられておらず、ポストに投函することで返却できます。発送・返却ともに送料はかからず、サービス料金は「まとめてau支払い」として携帯電話料金に込みで請求されます。

 

--
返却期限が設けられていないというのがちょっと危ういかも・・・、通常のレンタルビデオ屋さんでさえ、返却しないでばっくれる人がいるくらいですからね。学生時代レンタルビデオ屋でバイトしてました。

個人的には、BDソフトが借りられるようになれば利用しても良いかなと思っています。

microSDサイズの無線LANカード USB 2.0の赤外線ワイヤレス化――KDDIの新技術 (ITmedia+D Mobile, 2009.7.22)

KDDIが携帯電話向けとしてmicroSDサイズの無線LANカードを公開しました。これにより、無線LAN機能のない携帯電話にも無線LAN機能を付加するというものです。IEEE802.11b/gに準拠しています。また、カードの規格がSDIOですので、SDIO対応のSDスロットを備えていることが必要です。

つまり、現在皆さんが手元に持っている携帯電話には対応しないということです。

個人的にはこの技術には疑問があります。これほど小型化できているのであれば、わざわざSDIO対応スロットを設けて後付けさせるよりも携帯電話内にチップを埋め込む方が早いのではないでしょうか。また、IEEE802.11n規格が9月には正式化されるこの時期に11b/gだけというのも頂けない気がします。

■ Windows 7が完成 コンピュータメーカーに出荷 (ITmedia+D PC User, 2009.7.23)
■ Windows 7とWindows Server 2008 R2が開発完了、RTMへ (Internet Watch, 2009.7.23)
■ 「Windows 7」RTM版、開発者向けには8月6日提供開始 (Internet Watch, 2009.7.22)
■ Windows 7のボリュームライセンスは9月1日発売 (Internet Watch, 2009.7.15)
■ 「Windows 7」日本語版も10月22日発売 (Internet Watch, 2009.7.7)
 

様々なニュースで触れられていますが、Microsoftの次期OS Windows 7 RTM (Release To Manufacturing : 製造工程向けリリース)版が完成し、数日中にはコンピュータメーカーに出荷されるようです。RTMはRC版から特に大きな変更はなかったとのこと。

今後のリリーススケジュールですが

  • 8月6日 英語版のMSDN会員、TechNet会員、Microsoft Connect会員向けにRTMリリース
  • 9月1日 ボリュームライセンスリリース
  • 10月22日 パッケージリリース・プレインストールPC発売

という流れになっています。日本語版は10月22日までに用意されるとのこと。

ヤマハ、AVアンプ「DSP-Z7」「DSP-AX3900」の2機種でアップデートを実施 (Phile-web, 2009.7.14)

ヤマハは、AVアンプ「DSP-Z7」「DSP-AX3900」の2機種において、HDMI接続時の安定性およびネットワーク機能の不具合修正や安定性などを改善するアップデートを実施する。

最近はAV機器でもこのようなファームウェアのアップデートが行われるようになってきました。これは、機器本体にネットワーク回線を繋ぐ端子やUSB端子が備わってきたからですね。まだそういうのはある程度上位機種に限られますが、ファームアップにより機能向上や機能安定を図れるのは大変良いですね。

およそ言語というものは、しばらく使ってないと忘れてしまうもので、日本人だから日本語は忘れないけど、英語やらドイツ語やらはどんどん忘れていくのですね。プログラミング言語も似たようなもので、しばらく使ってないと忘れてしまったりするのです。

そんなわけで、リハビリも兼ねて一つAutoCAD VBAのマクロを組んでみました。

お題は「連続距離計算」です。通常の距離計算ですと、アイコンをクリックするかdistと入力、マウスで1点目、2点目を選択すると結果が得られるものです。連続してやると毎回1点目、2点目と選ばなくてはいけないので面倒くさいなと。

点を選択するのはGetPointメソッドです。選択可能な点数は暫定で1000点まで。マクロ中に明示的に指定しています。Longなのでもっと増やせると思いますが、1000点選ぶ人がいるとは思えないですね。

n個目の点を選ぶところでやめたくなったらどう処理しようと(頭の中で)探っていたんですが、ESCキーを押すとエラー(No.18)が出ることを利用して別ルーチンに飛ばして処理しました。本当は良くないんでしょうけど、とりあえず目的は達成できてるのでよしとします。(というか、割り込み処理をどうやればいいのかを勉強しなくては・・・)

Option Explicit

Public Sub CDIST()

Main:

    ' ----- Continuous DIST for 2D : 連続距離計算 -----
    '
    '
    '
    ' 点の取得の時にESCを押すとエラーが出るのを利用して
    ' トータル距離を表示している
    
    On Error GoTo ErrorHundle

    Const num As Long = 1000 'とりあえず1000点まで対応
    Dim n As Long
    Dim valPt(1 To num) As Variant
    Dim dblLength As Double
    Dim dblTotalLength As Double
    Dim strLength As String
    Dim strTotalLength As String
        
    ' 値の初期化
    dblLength = 0
    dblTotalLength = 0
        
    ' 1点目の取得
    valPt(1) = ThisDrawing.Utility.GetPoint(, "1点目")

    ' 2点目以降の取得
    For n = 2 To num

        valPt(n) = ThisDrawing.Utility.GetPoint(, n & "点目")
        
        ' 点間距離の計算とStringフォーマットへの変換
        dblLength = Sqr((valPt(n)(0) - valPt(n - 1)(0)) ^ 2 _
                            + (valPt(n)(1) - valPt(n - 1)(1)) ^ 2)
        strLength = Format(dblLength, "##0.0000")
    
        ' プロンプトに表示
        ThisDrawing.Utility.Prompt _
            ("Length=" & strLength & vbCrLf)
    
        ' トータル距離を加算
        dblTotalLength = dblTotalLength + dblLength
        
    Next

    Exit Sub
    
ErrorHundle:
    
    'MsgBox (Err.Number & "番のエラー発生")
    
    ' エラーをクリア
    Err.Clear
    
    ' トータル距離をStringフォーマットへ変換してプロンプトに表示
    strTotalLength = Format(dblTotalLength, "##0.0000")
    ThisDrawing.Utility.Prompt _
        ("Total Length=" & strTotalLength & vbCrLf)

End Sub

 

[ 追記 (2009.7.17) ]

通常の距離計算(Dist)では1点目から2点目を選ぶときにラインが引かれますが、このマクロでも同様のことが出来ました。

GetPointメソッドの第一引数を一つ前の点に設定するだけです。

        valPt(n) = ThisDrawing.Utility.GetPoint(valPt(n - 1), n & "点目")

 

[HTML/XHTML] W3C, XHTML 2をHTML 5に統合へ

W3C,マークアップ言語「XHTML 2」を「HTML 5」に統合へ (ITpro, 2009.7.3)

XHTMLというのはHTMLをXMLで再定義したマークアップ言語ですが、次期バージョンのXHTML 2はHTML側の次期バージョン HTML 5に統合されることになったとのことです。

コーディングする側から見れば、Webのマークアップ言語が2つも3つもあるというのはどうかなとも思えるので、変に複雑にならなければ良い方向なような気はします。

XHTML 1.1は制約が厳しかったのですが、あまり厳しいのも運用していくのに柔軟性がなくて困りものだったのですが。そんなわけでは、ブログはともかく、Web構築の際は私はXHTML 1.0 Transitionalを使っています。HTML 5に統合されるXHTML 2というのはどんなものだったのかも気になります。

Mozilla、Firefox3.5をリリース!!Webを真にオープンな世界へ (Mozilla Japan, 2009.7.1)
Firefox 各国語版と各OS対応版のダウンロード (Mozilla Japan)

Mozilla Firefox

ふと覗いてみたらMozillaのWebブラウザ Firefox のバージョン3.5が本日正式公開されていました。Mozilla Japanのトップページは既にFirefox 3.5になっています。トップページではWindows版のダウンロードが出来ますが、Mac OS X版やLinux版、それぞれの各国語版のダウンロードは上記のリンクからどうぞ。

特長として、ブラウズエンジンの高速化が挙げられています。Firefox 3.0系の2倍以上、Firefox 2.0系の10倍以上とのことです。他社ブラウザとの比較というのは今のところMicrosoft Internet Explorerとの簡単な比較が記されているだけですが、IEのどのバージョンとも書いてないし、とりあえずはそんなもんかと思っておくくらいでしょうか。

個人的にはまだ飛びつくのは早計かなと感じています。高速化云々よりも、複数入れているアドオンの対応の方が気になりますので。

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

2017年8月

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 31