Showing posts with label プログラミング. Show all posts
Showing posts with label プログラミング. Show all posts

Thursday, October 15, 2015

C Sharp Memo - How to Allow only Numerical Input in Textbox で数値しか入力できないようにするには?

  nanoblog(ナノブログ)にズバリ回答がありましたので、メモっておきます。


private void textBox1_KeyPress( object sender, KeyPressEventArgs e ) {
    // 制御文字は入力可
    if ( char.IsControl(e.KeyChar) ) {
        e.Handled = false;
        return;
    }

    // 数字(0-9)は入力可
    if ( char.IsDigit(e.KeyChar)  ) {
        e.Handled = false;
        return;
    }

    // 小数点は1つだけ入力可
    if ( e.KeyChar == '.') {
        TextBox target = sender as TextBox;
        if ( target.Text.IndexOf('.') < 0 ) {
            // 複数のピリオド入力はNG
            e.Handled = false;
            return;
        }
    }

    // 上記以外は入力不可
    e.Handled = true;
}

Wednesday, January 30, 2013

Copy and Paste of Cell Formats with VBA 教室 形式を選択して貼り付け

 ある範囲のセルの形式を選択して、指定の場所にコピーする操作をVBAで書いてみました。
 そのコピー先が、あるルールに従って沢山のところにある場合、ループで一気にコピーすることはできます。
 以下の例は、B2からC5のブロックの形式を選択し、B7から10セルずつ離れるブロックに1000セル目までコピーします。
Sub CopyAndPasetCellFormat()

    Dim range1 As Range
      Dim i as Interger
      Dim A as String

      Set range1 = Range("B2:C5")
      range1.Copy
  
      For i=7 to 1000 step 10
        A = "B" & Format(i)
        Range(A).PasteSpecial Paste:=xlPasteFormats
      Next
    Application.CutCopyMode = False

End Sub

Wednesday, October 17, 2012

Download the Contents of a URL 指定ウェブアドレスのページを自動的にダウンロード

 Perlで書くと以下のように簡単に実現できます。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
my $url = 'http://example.com/example.html';
my $file = 'data.kml';
getstore($url, $file);

 メモリにダウンロードして、そこで処理したい場合、WWW::Mechanizeを使った方は便利です。
#!/usr/bin/perl
use strict;
use WWW::Mechanize;
my $url = 'example.com/example.html';
my $mech = WWW::Mechanize->new;
$mech->get($url);
WWW::Mechanizeでは、指定URLにあるすべてのリンクを階層指定して持ってくることも可能です。

Wednesday, August 15, 2012

How to Control GIMPをPythonで自在に操る

(このページは「Part3 フリーの画像ソフトGIMPをPythonで自在に操る」のコピーです。サーバーの変更による内容の消失を防ぐためです)

Part3 フリーの画像ソフトGIMPをPythonで自在に操る

2009/02/25
増田 泰
出典:日経ソフトウエア 2008年8月号  pp.62-67
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
日経ソフトウエア2008年8月号にて掲載した「マクロで始める実用プログラミング」をお届けします。Partごとにアプリケーションを定め、プログラミング言語を用いて操作したり、機能を追加したりします。また、2009年4月号においても、Excel/VBAの徹底活用法を紹介しています。
※ 記事は執筆時の情報に基づいており、現在では異なる場合があります。
GIMP(The GNU Image Manipulation Program、ギンプ)はオープンソースのフォトレタッチ・ソフトです。もともと、UNIXやLinux用のアプリケーションであり、多くのLinuxディストリビューションで収録されています。今ではGIMPは、WindowsやMac OS Xでも動作します。
 GIMPは無料で使えるソフトとしては驚くほど多くの機能を備えています。画像の切り取り、拡大/縮小といった簡単な操作から、ホワイト・バランスの自動調整、赤目の自動補正、レイヤーを使った画像編集、画像中の色成分の分布を表したヒストグラムの操作まで対応します。個人で使うレベルなら必要十分な機能を持っていると言えるでしょう。
 そして、この特集で紹介しているほかのソフトと同じように、GIMPも「Script-Fu」というマクロの実行環境を備えています。Script-Fuのマクロ記述言語はScheme(スキーム)という言語です。SchemeはLISP(リスプ)から派生した関数型言語で、LISPと同様にカッコ「( )」を多く使った記法が特徴です。
 しかし、LISPやSchemeの独特な書き方や考え方のために、とっつきにくさを感じている人は多いのではないでしょうか。そこで、本稿ではGIMPがオプション機能として用意している「Python-Fu(GIMP Pythonと呼ぶこともある)」を利用したマクロ・プログラミングを解説します。
 Python-Fuは、動的型付け言語の一種であるPython(パイソン)で記述したマクロをGIMPで実行する環境です。日本では動的型付け言語といえばRubyが有名ですが、Pythonもなかなか使いやすい言語です。
 Pythonは文法として覚えなければならないことが少ない言語です。一方で、ライブラリが充実していて、ほんの小さなプログラムで複雑な処理を簡単に実現できます。
 Pythonの有名な特徴の一つに「インデント(字下げ)」があります。多くの言語では、インデントにはコードの見通しを良くする程度の意味しかありませんが、Pythonでは、インデントがプログラムのブロック構造を表しています。正しくインデントしないと、プログラムが動かないのです。美しく書くことが正しいプログラムにもつながるという点では、プログラミングの学習に向いた言語の一つと言えるでしょう。

Python-Fuを使うための準備

本稿では、Windows版GIMPを使って、Python-Fuのマクロを作ります。Python-Fuのスクリプトは、OSが異なっても動作することが多いので、Mac OS XやLinuxを使われている方にも参考になると思います。
 Windows版GIMPでPython-Fuを使うには、ちょっと準備が必要です*1。もちろん、GIMP本体をインストールしなければ始まらないのですが、その前に四つほどソフトをインストールする必要があります。
 一つ目は、Windows用のPython実行環境です。これは、Pythonの公式Webサイトで入手できます。本稿では、2008年6月中旬の時点で最新版となるバージョン2.5.2を使います。ダウンロード・サイトを開いたら、「Python 2.5.2 Windows Installer」のリンクをクリックして、インストーラをダウンロードします。Python実行環境のインストールには特別難しい部分はありません。
 次に、PythonからGIMPの構成要素を操作するライブラリを三つインストールします。グラフィックス描画機能を提供するフリーのライブラリ「cairo」をPythonから操作する「PyCairo」と、様々な環境で動作するGUI(Graphical User Interface)部品を提供するライブラリ「GTK+(The GIMP Toolkit)」をPythonから操作する「PyGObject」「PyGTK」です。三つとも、PyGTKのダウンロード・サイトでインストーラをダウンロードできます。