Translate

2010年12月25日土曜日

コントロールの操作

■ComboBox

・選択肢以外選べないようにする
DropDownStyle → DropDownList

・先頭の項目を表示
ComboBox1.SelectedIndex = 0

2010年12月23日木曜日





BindingNavigatorって名前なのか。

2010年12月20日月曜日

C++メモ

・mainから始まる
・セミコロンで終わる
・出力はcoutを使う[console outputの略]
・endlは改行を表す。文字を出力させる効果もある。
・flushは改行はしないが、文字を出力させる効果あり。

■文字/文字列
文字は、シングルクォーテーションで囲み
文字列は、ダブルクォーテーションで囲む

■インプット/アウトプット
出力は、cout << [出力したい物]
入力は、cin >> [変数]

■変数スコープ
ローカル変数もグローバル変数も実行時より上で宣言されていないとエラーとなる。

■制御構文
・if文
if(条件式){ 式; }

・for文(括弧内で変数宣言可)
for(初期設定文; 条件式; カウンタ変数の制御){ 式 }

・While文(先に評価)
while(条件式){ 式 }

・Do文(後で評価)
do { 式 } while(条件式);

・ループを抜ける/次のループ
break;
でループを抜け
continue;
で次のループに飛ぶ

■以下いつかまとめる。
・型 配列名[要素数]
・配列初期値 型 配列名[] = { 値1、値2、・・・値X};

2010年12月19日日曜日

vb.netめも

■変数宣言
Dim 変数名 As データ型
Dim 変数名 As データ型 = 初期値


■精度の高い計算結果等が欲しい場合、Decimal型を取り値(or式)の最後にDを付ける。
Dim 変数名 As Decimal = 値(or 式)D


■日付リテラル
 Dim 変数名 As Date = #日付 時間#
 Dim 変数名 As Date = #日付#
 Dim 変数名 As Date = #時間#


■定数の使用
Const 定数名 As データ型 = 値


■アクセス修飾子
Public・・・どこからでもアクセス可
Protected・・・クラス内と派生クラスからのみ
Friend・・・同一のアセンブリ内のみ
Private・・・ 宣言されているクラス内のみ


■配列の宣言と初期値
Dim 変数名(要素数) As 型
Dim 変数名() As 型 = {値1, 値2, ・・・, 値N}

Dim 変数名(要素数1, 要素数2) As 型
Dim 変数名(,) As 型 = {{値11, 値12}, {値21, 値22}, ・・・ {値N1, 値N2}}


■配列のメソッド
変数.Length      ・・・各次元の要素数の合計
変数.Rank       ・・・次元の数
変数.GetLength(次元)・・・各次元の要素の数
変数.GetUpperBound・・・各次元の上限の要素番号

例)

Dim list(5, 3, 1) As String

Debug.Print(list.Rank) '3次元なので 「3」


Debug.Print(list.GetLength(0)) '1次元の要素の数「6」
Debug.Print(list.GetLength(1)) '2次元の要素の数「4」
Debug.Print(list.GetLength(2)) '3次元の要素の数「2」


Debug.Print(list.Length) '6要素 × 4要素 × 2要素 =「48」

Debug.Print(list.GetUpperBound(0)) '「5」
Debug.Print(list.GetUpperBound(1)) '「3」
Debug.Print(list.GetUpperBound(2)) '「1」



■配列の要素から最初に該当するインデックスを返す
Array.IndexOf(変数, "調査する文字列")

例)
Dim test() As String = {"aaa", "bbb", "ccc", "ddd", "aaa"}
Debug.Print(Array.IndexOf(test, "aaa")) '0を返す


■ArrayList
Dim 変数名 As new ArrayList
変数.Add("値") '値を追加
Debug.Print 変数(要素数) '値を表示

''一度に内容を表示
'リストボックス
ListBox1.Items.AddRange(変数.ToArray)

'イミディエイトウィンドウ
? 変数.ToArray


'全ての項目をクリア
変数.Clear


■連想配列
Dim 変数 As Hashtable = New Hashtable
変数("Key") = "Value"
Debug.Print 変数("Key")

if 変数.ContainsKey("Key") then Debug.Print "Keyは存在する"

' エントリ(キーと値)の列挙
For Each 変数 As DictionaryEntry In 連想配列
Debug.Print 変数.Key
  Debug.Print 変数.Value
Next


■算術演算
^   べき乗
+   加算
-   減算
*   乗算
/   除算
\   商
Mod 余り


■比較演算子
Like 文字列パターンの比較 "JavaScript" Like "Java*" → True

?・・・任意の1文字
*・・・任意の0個以上の文字
#・・・任意の数字1桁

[リスト]・・・[]内の任意の1文字
[!リスト]・・・[]内の文字以外の任意の1文字


■短絡評価演算子
AndAlse
OrElse

2010年12月18日土曜日

hello,world的めも


#include
using namespace std;
int main(){
cout << "Hello, world!" << endl;
}

で、test.cppで保存

あとは、お好きなコンパイラでコンパイル。
ただし、gccなら -lstdc++をつける。
gcc -o test test.cpp -lstdc++
./test で実行

というめも。

2010年12月11日土曜日

DataGridViewのメモ。

■見た目を設定するプロパティ

・一番下に表示される新規入力行を非表示にする
AllowUserToAddRows → False

・奇数行の色を変える
AlternatingRowsDefaultCellStyleをクリック
BackColor → 色設定

・列、行のヘッダを非表示する
ColumnHeadersVisible → False
RowHeadersVisible → False

・特定の列幅を自動調整する
列の編集を選択 → 自動にしたい列を選択 → AutoSizeMode → Fill

・列ヘッダーの文字位置をセンタリングするする
ColumnHeadersDefaultCell → Alignment → MiddleCenter

・セルの文字位置を変更する
DefaultCellStyle → Alignment → MiddleCenter



■ユーザーの操作を設定するプロパティ

・行を削除させないようにする
AllowUserToDeleteRows → False

・列の順番を入れ替えできるようにする
AllowUserToOrderColumns → True

・列の幅、行の高さを変更させないようにする
AllowUserToResizeColumns → False
AllowUserToResizeRows     → False

・複数行選択できないようにする
MultiSelect → False

・セルの内容を編集させないようにする
ReadOnly → True

・任意のセルを選択すると1行選択にする
SelectionMode → FullRowSelect


■データの追加
・新しい行にデータを追加する Sample 1
Dim rows As New DataGridViewRow

With rows
.CreateCells(DataGridView1)
.Cells(0).Value = "1列目"
.Cells(1).Value = "2列目"
.Cells(2).Value = "3列目"
End With

DataGridView1.Rows.Add(rows)

・新しい行にデータを追加する Sample 2
DataGridView1.Rows.Add("文字列".Split(","))


■DataGridViewの情報を取得


・行、列の数を取得
DataGridView1.RowCount
DataGridView1.ColumnCount

・任意のセルをカレントセルにする
DataGridView1.CurrentCell = DataGridView1(列、 行)

・任意のセルの値を取得、変更
DataGridView1(列、 行).Value = 値

・カレントセルの値を変更する
DataGridView1.CurrentCell.Value = 値

・全ての行を削除する
DataGridView1.Rows.Clear()

・現在の行、列番号を取得する
DataGridView1.CurrentCell.RowIndex
DataGridView1.CurrentCell.ColumnIndex

2010年10月11日月曜日

めもめも

・モジュールのバージョン
perl -M[モジュール名] -e 'print "[モジュール名]::VERSION¥n"'

・古くなっているモジュールの一覧
perl -MCPAN -e 'CPAN::Shell->r'

・古くなっているモジュールを一斉更新
perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

2010年10月2日土曜日

use Imager;

使い方を調べてみる。

■画像サイズを調べる
#!/usr/bin/perl                                                                 
use strict;
use warnings;
use utf8;
use Imager;

my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();

print "width: $img_x, height: $img_y \n";



■画像サイズを半分にして別名で保存する
#!/usr/bin/perl                                                                 
use strict;
use warnings;
use utf8;
use Imager;

my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();

#オブジェクトを上書き
$img = $img->scale( xpixels => $img_x/2, ypixels => $img_y/2 );
$img->write( file => 'half.jpg' ) or die $img->errstr;




■画像サイズを4分の1にして別名でjpg→pngで保存する
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Imager;

#サイズを4分の1にして、jpgからpngに変換する
my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();

$img = $img->scale( xpixels => $img_x/4, ypixels => $img_y/4 );
$img->write( file => 'quarter.png' ) or die $img->errstr;




■別の画像を右下に合成する
#!/usr/bin/perl                                                                 
use strict;
use warnings;
use utf8;
use Imager;

my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();


my $img2 = Imager->new;
$img2->read( file=>'half.jpg' ) or die $img2->errstr;
my $img2_x = $img2->getwidth();
my $img2_y = $img2->getheight();

$img = $img->paste(
left => $img_x - $img2_x,
top => $img_y - $img2_y,
img => $img2,
);
$img->write( file => 'mix.jpg' );

2010年9月23日木曜日

あれ?
splitって、デリミタを括弧でくくると分割した物と一緒に格納されるのか・・・


split ",", q{aa,bb,cc};
だと aa と bb と cc の3要素

split "(,)", q{aa,bb,cc};

だと aa と , と bb と , と cc の5要素。

2010年9月20日月曜日

Mac OS X ver10.5 emacsを最新の入れてみる。

ひとまず、最新はどれか確認してみる
http://ftp.gnu.org/pub/gnu/emac/
23.2ね。


$curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.2.tar.gz
$tar xvf emacs-23.2.tar.gz
$cd emacs-23.2
ターミナル用としてビルドする
$./configure --without-x
$make
$sudo make install

このままだと古いバージョンを開いてしまうので・・・
aliasを設定する。
zshを使っているので.zshrcに
alias emacs='/usr/local/bin/emacs-23.2'
と書き足してみる

Mac OS X ver10.5にwgetをいれてみる

今最新いくつなんだろ?
ttp://ftp.gnu.org/pub/gnu/wget
ということで、wget-1.12が最新らしーので。

$curl -O http://ftp.gnu.org/pub/gnu/wget/wget-1.12.tar.gz
$wget-1.12.tar.gz
$cd wget-1.12
$ sudo ./configure
$ sudo make
$ sudo make install

2010年5月16日日曜日

さくらインターネットでcpanを利用するめも。

・ライブラリ作成用のディレクトリ。
%mkdir ~/local
最近は、local::libに作るのがいいらしい。。
というか、結構いれてから気づいたので次回はこれでやろう。。


・CPAN設定ファイル作成(言われるがままに設定)
%cpan



~/.cpan/CPAN/MyConfig.pm の設定を変える
'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/local]
'makepl_arg' => qq[INSTALLDIRS=site LIB=$ENV{HOME}/local/lib/perl5 PREFIX=$ENV{HOME}/local]
'mbuildpl_arg' => qq[./Build --install_base $ENV{HOME}/local]
'urllist' => [q[ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/], q[ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/]]



・ライブラリのパス設定(~/.cshrc)
setenv PATH $HOME/local/bin:$PATH
setenv PERL5LIB $HOME/local/lib/perl5:$HOME/local/lib/perl5/site_perl



・BSDPANエラー回避。(引き続き ~/.cshrc)
setenv PKG_DBDIR $HOME/local/var/db/pkg
setenv PORT_DBDIR $HOME/local/var/db/pkg
setenv INSTALL_AS_USER
setenv LD_LIBRARY_PATH $HOME/local/lib
で下記ディレクトリ作成
mkdir -p ~/local/var/db/pkg




・設定を反映
source ~/.cshrc


・cpanの最新版へアップデート
cpan -i Bundle::CPAN



後は、cpanでインストールする際依存関係で質問をするかどうかで
'prerequisites_policy' => q[ask], を q[follow]に変えるとか・・・
直接MyConfig.pmをいじってもいいし
cpanを実行して
cpan > o conf prerequisites_policy follow
cpan > o conf commit
で書き換えてもおk。

2010年2月20日土曜日

vb.netの正規表現をメモ。
やりたいことはperlで言うとこの以下の内容。

use strict;
use warnings;
use utf8;
use Encode;
sub debug{ print encode("shiftjis", (join "", @_)) }; #winOSコマンドプロンプト用

$_ = "ab_CD_ef_GH";
while(m/[a-z]+/g){
debug($&, "\n");
}
debug("-----------\n");
while(m/[a-z]+/ig){
debug($&, "\n");
}



Imports System.Text.RegularExpressions
Module Module1

Sub Main()
Dim str As String = "ab_CD_ef_GH"
Dim reg As New Regex("[a-z]+")
Dim match As Match = reg.Match(str)

While match.Success
Console.WriteLine(match.Value)
match = match.NextMatch()
End While

Console.WriteLine("-----------")

reg = New Regex("[a-z]+", RegexOptions.IgnoreCase)
match = reg.Match(str)
While match.Success
Console.WriteLine(match.Value)
match = match.NextMatch()
End While
End Sub

End Module