忍者ブログ

ひっそり開発室

Webメインでフリーのシステム開発をやっています。 思いつくままに書いていますので 間違い等はおもむろに突っ込んでもらえれば助かります。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

はじめての InnoSetup

VBの依頼が来たんですが、
ひょんなことからインストーラーもお願いしますとか、
普通にインストーラー作るの面倒だし、
InnoSetupを使ってさらっと作ろうという方向で考えていたのだけれど・・・

案の定、お客さんの要望がどんどん膨らんでいって、
デフォルトのテンプレートだけじゃとても対応できないという。
1.シリアルの入力画面
2.ライセンスコードの入力画面
3.シリアル+ライセンスの組み合わせのチェック
4.入力されたシリアル+ライセンスの保存
5.他、画面の文言の調整

InnoSetupについては完全に初心者なもので
Inno Setup 日本語デベロッパーズ
Inno Setup Help
等のページを見ながらで
最初はほんとよくわからん状態。
日本語デベロッパーズだけじゃ
まったく情報が足らなくて理解できなかったのだけれど、
ひとまず InnoSetup Help の Setup Script Sections が大事でした。
それぞれのセクションを簡単に説明すると
----
[Setup] 基本設定
[Tasks] セットアップ時にショートカット等を作成する設定
[Files] インストールするファイルの設定
[Languages] セットアップ表示言語の設定
[Messages] セットアップ画面のメッセージ文字列の設定
[Registry] セットアップでレジストリに入力する設定
[Run] セットアップ後プログラムを実行する設定
[Code] セットアップ時に動作するプログラム設定
----
4は[Registry]で保存する形にしてしまえば解決かしら。
5も[Messages]で対応ができそう。
1-3は設定だけでは厳しそうなので
[Code]セクションで対応するしかないようです。

当初、シリアルとライセンスコードは
ランダムの英数字だけという認識でいたのですが、
シリアルはハイフンで2つに分けたものにして、
ライセンスはハイフンで4つにわけて入力させたいとか。
それだけならともかく、1のボックスで
ハイフンも一緒に入力する形でいいのかと聞いてみたらNGで
ハイフンをボックスの中に設置するか
ハイフンで区切るところでボックスを分けてほしいみたいな。
InnoSetupでできることもろくに把握してないのに無茶振りだわー

[Code]セクションはPascalでコーディングできます。
むかーしむかーしあるところでDelphiなんてさわっていたのが、
今頃役に立つとかなかなかの驚き。

しかしながら、日本語のサイトでInnoSetupをどんだけ探そうが
サンプルコードなんて出てこない始末。
仕方ないからHelpと英語サイトのサンプルを見ながら組み立て
サンプルを見てすぐわかったのは
----
TInputQueryWizardPage テキストボックス
TInputOptionWizardPage ラジオボタン
TInputDirWizardPage ディレクトリ選択ボックス
TInputFileWizardPage ファイル選択ボックス

上記のクラスでインストーラー画面のページに
それぞれ入力欄を表示することができるようになっている模様
ただし、テキストボックス・ラジオボタン等を
組み合わせて表示することは無理なので、
さらにカスタムしたいなら TWizardPage クラスを利用して、
自分でインストーラページを作成する必要があるようだ。

とりあえず、ある程度できそうなところまでは理解して、
ほっとしたところで・・・・え・・・・?
サンプルソースが見たいって?
今度気が向いたら載せます。
PR

VisualStudio2015(VB.Net) + SQLite

VB.Netでデータを入力した後、印刷するアプリを作成というお話が入って、
入力されたデータを蓄積して解析したいとか。

CSVでいいのかなーと聞いてみたら、
できればなんかのDBがいいなーとか
1台だけなら無償で使えるMSSQLをちょろっと入れて連動するんだけど
複数台で使うらしく、
それもセットアップはインストーラで設定しておしまいくらいのレベルがいいとか
DBインストールしなくていいものを考えてたら、
SQLiteかAccessが使えそうな感じ
今回はとりあえずSQLite

ツール→NuGet パッケージ マネージャー→ソリューションのNuGetパッケージの管理
で、右上の検索ボックスで [SQLite] を検索して
System.Data.SQLite を選択してインストール

とりあえずこんな感じ
2016/07/27追記
ちゃんとUsing使いましょ。

テキストファイル処理

複数のCSVテキストを取り込んで、
ひとつのCSVを作成したい。

プログラムの作業自体は簡単な話なんだけど、
データサイズが50万件300MのCSVで、
そのIDでつながってるサブデータを1つのテキストファイルとして出したいとか
一昔前にExcel-VBAとかで手軽につくったら
えらい処理時間がかかるようなサイズだなと。

内容はファイルの入出力と
中身のテキストのコンバートなんで
簡単だけどExcel-VBAで作ったらやっぱ時間かかるんだろうな
ってわけで検証してみました。

プログラムの中身は
テキストファイルを読み出して
そのまま1行ずつ出力していくだけのコピープログラム
CとExcel-VBAで比較

テキストファイルは17万行 19Mbyte
CPU Intel-i7 2600 / 3.4GHz
メモリ 8.00G

Excel-VBA 1.176sec
C 0.235secs

実際に処理とかいろいろ入れたら
どれくらいかかるのかしら。

とりあえず

とりあえず作ってみました。
どれくらい書くかはネタ次第
期待はしないでください。

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
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

プロフィール

waggy
PHP / JavaScript を中心にプログラム開発を行っています。
お客様のご要望次第で Access Delphi等も触ることがあります。

最新コメント