misc.log

日常茶飯事とお仕事と

プログラミング

Base64エンコーディングと、デコーディング

文字列をBase64エンコード、デコードするロジックの例を忘れないように書いておく。 エンコードのサンプル SOURCEの部分は適宜置き換えて。指定された文字列をBase64エンコードする処理の例。 Dim base64Encoder As System.Text.Encoding = System.Text.Enco…

マルチページTIFF画像ファイルを作る

古いソースを引っ張り出して整理してみました。Visual Studio.NET 2003のVisual Basic.NET(2003)で作った、複数画像をTIFFファイルにまとめるコードの抜粋です。最初に「CreateBaseImage」で1枚目の画像ファイルを作成してから、「AddImage」で2枚目以降を…

VB6.0 Error 35605 このアイテムのコントロールは削除されています

VB6.0のアプリにて、エラー番号 35605のエラー「このアイテムのコントロールは削除されています」が発生、Webでとりあえずエラー番号を検索してみましたが、海外サイトにいくつか情報があるくらいであまり該当しそうなケースが無い。 仕方ないのでどうやった…

WindowsAPI/WNetAddConnection2とWNetCancelConnection2の動作

1台のPC上で動く複数のアプリによる共有フォルダアクセスについてメモ。OSはWindows XP。共有フォルダに対してネットワークドライブを割り当てられるWNetAddConnection2と、割り当てを解除(切断)するWNetCancelConnection2の動作について確認しました。コ…

XAMLでのバインディング

エッセンシャルWPFのサンプルを追いかけ中。XAMLで書いたチェックボックスの文字列に、別のテキストボックスの入力内容をバインドしてみようとして、以下のような記述をしてみた...。 <TextBox x:Name='SampleText'>テキストボックス(編集可能)</TextBox> <CheckBox Content='{Binding ElementName=SampleText,Path=Text}'>チェックボックス</CheckBox>で、MSBuildでビルドして…

手書きXAMLでサンプル

エッセンシャルWPF(asin:4798114200)を見ながら、とりあえずやってみるテスト。MSBuildも使ったこと無かったので、まずは手書きXAMLをMSBuildでビルドしてアプリを動かしてみる実験。ホント基礎の基礎だね。用意するものは アプリケーション定義を書いたapp.…

DataTableにImportRowするときの注意

DataTableにImportRowで別のDataTableからデータを1行ずつ突っ込む場合、事前に「テーブルごとまるまる突っ込む」といった処理が行われていれば良いのだが、そうでない場合はうまくいかない。理由は、受け入れ側のDataTableに、データ構造等の情報が全く無い…

NULLに気をつけましょう

とあるプログラム修正で、「あるカラムの値が「ABC」でないものだけを表示する」という条件を追加するのに、 A != 'ABC' とやっちゃったら、大量のデータが表示されなくなった。よーく考えると、これだと「NULL」のデータもはじかれちゃうのね。というわけで…

デシリアライズ先のクラス定義

開発プロジェクトで共通的に利用するライブラリを作成している。 設定情報をXMLで記述したファイルをデシリアライズして、クラスに情報を格納しようとしたところ、格納先クラスの宣言を「Public」から「Friend」に変更したらとたんに以下のエラーが出た。 保…

テストアプリの配布をシミュレートする(3)

http://d.hatena.ne.jp/frontline/20051116/p2 の続き。というわけで、まずはアセンブリに厳密名を付けてみよう。 sn -k test.snk でキーペアを作成し、 sn -i test.snk CspContainer でCSPコンテナに格納、ソースのAssemblyInfo.vbに <Assembly: System.Reflection.AssemblyKeyName("CspContainer")> という記述を追加して</assembly:>…

PCのIPアドレスやPC名を取得する

ちょっと取得する必要があったので方法を探してみた。 'PC-Name PCName=System.Net.Dns.GetHostName 'IP-Addr IPAddr=System.Net.Dns.GetHostByName(PCName).AddressList(0).ToString 内部ではどうやってるんだろう...DNS名前空間...もしかしてネットの世界…

VB.NETでCCITT Group4圧縮のTIFFファイルを作る

表題の通り。苦戦した。 以下のコードは、テキストボックスにランダムに表示した5000文字の文字データをキャプチャして、G4圧縮TIFFを作成する処理を指定回数繰り返すというツールの一部抜粋。コメントとかはまたいつか整備します。

ストリームとフラッシュ

暗号化されたXMLファイルを復号し、メモリストリーム経由でデシリアライザに渡すという処理を書こうとして、どうもうまくいかない。ファイルをストリームに読み込んだ時点では448バイトなのだが、復号ストリームを通すと440バイトになる。念のため、出てきた…

log4netでイベントログに書く際のイベントID

イベントログにlog4netを使ってログを書きたいのだが、今の業務仕様では、決められたイベントIDを書くように指示されている。しかし、標準のEventLogAppenderには、そのような指定をする機能が無いようだ。 とりあえず検索検索♪以下のURLの情報を見つける。h…

InputManを継承して使う

InputMan for .NET 3.0J 1開発ライセンスパッケージ出版社/メーカー: グレープシティ発売日: 2005/02/24メディア: CD-ROMこの商品を含むブログ (2件) を見るInputManを継承して利用しようとして、以下のようなエラーが発生した*1。 "型 '********' …

DNN、RSSフィード用のスタイルシート

サイト内のQ&A掲示板から、最新のものをピックアップするように設定してみた。 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:param name="TITLE"/> <xsl:template match="rss/channel"> </xsl:template></xsl:param></xsl:output></xsl:stylesheet>

ASP.NETでエクセルファイルの内容を一覧表示

エクセルで作られた各種台帳類をWeb経由で見られないものかと、ちょいと試してみる。ソースはMSDNのサンプル。 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化するユーザー コー…

Serialize/Deserialize失敗が稀に発生

設定情報をクラス化して、Serialize、Deserializeを使ってXMLファイルに記録、読み込みしているのだが、ソースを軽くいじったり、また、設定情報じゃない部分をちょっといじっただけで、ビルド後のアセンブリが「シリアライズ失敗」というエラーを出すことが…

文字列→日付型への変換

文字列として表記された日付情報を、データベース上の日付フィールドと照合する必要があるため、方法を模索。すると、意外や意外... [イミディエイトウィンドウでの実験] ?cdate("2005/01/02") #1/2/2005# ?cdate("2005/02/02") #2/2/2005# ?cdate("20050202…

VB.NETでのLTrim、RTrim

忘れないようにメモ。VB.NETで、VB6.0にあった「LTrim」(先頭の空白を除去)、「RTrim」(末尾の空白を除去)を行う場合、String型が持つTrimStartおよびTrimEndメソッドが使える。以下のような感じ。 Dim Result as String Dim Source as String = " ABC "…

イメージビューワ作成(ほぼ完成?)

特定の条件に基づくイベントを受け、定義テーブルに設定された検索条件にマッチするイメージを表示するアプリケーションほぼ完成。イメージストレージとしては、自社製品のイメージ管理システムと、SQL Serverに対応することになっているが、SQL Serverへの…

ShowDialogでフォームが勝手に...

ShowDialogで表示したログイン画面、キャンセルを押された際にメッセージボックスで「本当にキャンセルする?」という質問を出し、「いいえ」なら抜けずにそのままログイン画面を表示し続ける、というロジックを書いたつもりだった。が、うまくいかない。 キ…

別スレッドから親スレッドのコントロールをいじる

別スレッドで動くC++.NETで作成したライブラリから発生するイベントを受けて、自作ビューワコントロールに「タブを追加して複数のイメージを各タブに表示」という処理を行うと、下記のエラーが発生した。 System.ArgumentExceptionのハンドルされていない例…

読み込んだイメージがロックされる

発生するだろうな、とは思っていたが、やはり。ImageオブジェクトにFromFileを使ってイメージを取り込むと、何も考えずに元のファイルを読もうとしたときに「別のプロセスが使用中」とのエラーが出て削除できない。おそらく、 ファイルを閉じる ファイルスト…

次のエラー

こんなのが出た。 'System.Runtime.InteropServices.InvalidComObjectException' のハンドルされていない例外が HASL_Viewer.exe で発生しました。 基になる RCW から分割された COM オブジェクトを使うことはできません。現象はまだ特定できていないが、COM…

COMコンポーネントの利用がうまくいかない

VB6以前のライブラリを使うアプリを開発中。だが、処理がうまくいかない。問題のコンポーネントにデータベースからのデータ取得を依頼し、取得した結果を取り出したり戻したりするところで、 ’System.Runtime.InteropServices.COMException’; のハンドルされ…

Sortメソッドを使えるオブジェクト(IComparableの実装)

自分で作ったクラスを、簡単に並べ替える必要があったので、IComparableをインプリメントしてArrayListやArrayオブジェクトのSortメソッドを適用可能にする方法を調べる。 '比較されるデータを実現するクラス Public Class EachObj Implements IComparable '…

ウィンドウの点滅を制御する

背後に回ってしまったプログラムのウィンドウ(タスクバーのボタンと、ウィンドウのタイトルバー)が点滅するというのは、Windowsが持っている機能の1つだ。これについて、顧客から「点滅を何とかできないか」という問い合わせが。今は別のもっと重たい問題…

VB6のエラー処理から呼んだ処理でエラー

いつも忘れてサンプルを作ってしまうので備忘録。 VB6.0で、エラートラップ処理の中から呼んだ関数内のエラートラップ、どうなるんだっけ?と思って試行。 'エラーを起こして、エラー処理からさらにエラーが出る処理を呼ぶ Private Sub Command1_Click() On …

COMのバグ?

顧客より、先日発生した原因不明の問題に対して埋め込んだログ機能が活きて、ログが出力されたとのメール。内容を確認したところ、以下のような記録が。 '~' メソッドは失敗しました: '~' オブジェクト 問題が発生したと思われる関数内に仕掛けておいたError…