MW211 EXIT

devlog
ExcelVBA/代入の基本
2013年08月19日
┌──────────────────────────────────────┐
│Cells(y, x).Value   = "abc"     →値                                        │
│Cells(y, x).Formula = "=a1+b2"  →数式                                      │
│Cells(y, x).Text    = "001"     →表示された状態(書式付)                    │
└──────────────────────────────────────┘
分類:ExcelVBA
ExcelVBA/乱数設定
2013年08月18日
選択した範囲に、適当な値を入力するマクロ。
┌──────────────────────────────────────┐
│Sub 乱数設定()                                                              │
│    Randomize                                                               │
│    Dim i As Range                                                          │
│    For Each i In Selection                                                 │
│        i.Value = Int(Rnd * 10)                                             │
│    Next i                                                                  │
│End Sub                                                                     │
└──────────────────────────────────────┘
分類:ExcelVBA
JavaScript/一文字ずつ処理
2013年08月17日
文字列を一文字ずつ切り出して処理をする場合には、「.substr()」メソッドを使う。
┌──────────────────────────────────────┐
│for (var i = 0; i < 文字列.length; i++) {                                   │
│    一文字 = 文字列.substr(i, 1);                                           │
│}                                                                           │
└──────────────────────────────────────┘

裏技的には、「.split('')」メソッドを使って配列に分割してしまう手もある。
┌──────────────────────────────────────┐
│var 配列 = 文字列.split('');                                                │
│for (var i = 0; i < 配列.length; i++) {                                     │
│    一文字 = 配列[i];                                                       │
│}                                                                           │
└──────────────────────────────────────┘
分類:JavaScript
PostgreSQL/前後のIDを取得
2013年08月14日
昇順の一意ID(列)を基準として、前後のIDを調べる場合のSQL文。

先頭および末尾においては、その先がNULLになるパターン。
┌──┬───────────────────────────────────┐
│前へ│SELECT 列                                                             │
│    │    FROM 表                                                           │
│    │    WHERE 列 < 値                                                     │
│    │    ORDER BY 列 DESC                                                  │
│    │    LIMIT 1;                                                          │
├──┼───────────────────────────────────┤
│次へ│SELECT 列                                                             │
│    │    FROM 表                                                           │
│    │    WHERE 列 > 値                                                     │
│    │    ORDER BY 列 ASC                                                   │
│    │    LIMIT 1;                                                          │
└──┴───────────────────────────────────┘

先頭および末尾においては、一周するパターン。
┌──┬───────────────────────────────────┐
│前へ│SELECT coalesce((SELECT 列                                            │
│    │                     FROM 表                                          │
│    │                     WHERE 列 < 値                                    │
│    │                     ORDER BY 列 DESC                                 │
│    │                     LIMIT 1),                                        │
│    │                (SELECT max(列)                                       │
│    │                     FROM 表));                                       │
├──┼───────────────────────────────────┤
│次へ│SELECT coalesce((SELECT 列                                            │
│    │                     FROM 表                                          │
│    │                     WHERE 列 > 値                                    │
│    │                     ORDER BY 列 ASC                                  │
│    │                     LIMIT 1),                                        │
│    │                (SELECT min(列)                                       │
│    │                     FROM 表));                                       │
└──┴───────────────────────────────────┘
分類:PostgreSQL
JavaScript/inArray関数
2013年08月13日
jQueryの…
┌──────────────────────────────────────┐
│$.inArray(要素, 配列);                                                      │
└──────────────────────────────────────┘
上記をJavaScript関数で代用する方法。
┌──────────────────────────────────────┐
│function inArray(要素, 配列) {                                              │
│    for (var key in 配列) {                                                 │
│        if (key == 要素) {                                                  │
│            return true;                                                    │
│        }                                                                   │
│    }                                                                       │
│    return false;                                                           │
│}                                                                           │
└──────────────────────────────────────┘
分類:JavaScript
JavaScript/10進と16進の変換
2013年08月12日
10進を16進に変換する場合には、「.toString(16)」を使う。
┌──────────────────────────────────────┐
│16進数小文字 = 10進数.toString(16);                                         │
├──────────────────────────────────────┤
│16進数小文字 = 10進数.toString(16).toLowerCase();                           │
│16進数大文字 = 10進数.toString(16).toUpperCase();                           │
└──────────────────────────────────────┘

16進を10進に変換する場合には、「parseInt(,16)」を使う。
┌──────────────────────────────────────┐
│10進数 = parseInt(16進数, 16);                                              │
└──────────────────────────────────────┘
分類:JavaScript
PHP/BOMコードとPHPソース
2013年08月11日
PHPソースファイルをうっかりメモ帳で開いて保存してしまうと大変なことが起きる。
#UTF-8で作成している場合の話ね

メモ帳はBOM付きで保存してしまうのだ。

では、BOM付きPHPソースファイルの影響はというと…。

┌──────────────────────────────────────┐
│あ<?php                                                                     │
└──────────────────────────────────────┘
単純な話、上記のようにうっかりPHPソースの外に
変な文字を混入させてしまった場合と同じだと考えていい。
┌──────────────────────────────────────┐
│(BOM)<?php                                                                  │
└──────────────────────────────────────┘

【画面表示の場合】
作成されるHTMLソースの先頭にBOMコードが付加されるので、
UTF-8(BOM無し)ソースではなく、UTF-8(BOM付き)ソースとなる。
但し、これは何の問題もない。
しかしながら、インクルードするファイルが二つ以上BOMに侵されていると
BOMが二重に付加された方にになり、二つ目のBOMが半角スペースのようになり
悪さをしてしまう。

【ダウンロード機能の場合】
画面表示ではなくダウンロードに使う場合、出力されるデータの先頭に
BOMが付加されてしまう。
UTF-8のデータとしてダウンロードするなら影響はないが、
シフトJISのCSVファイルとかに変換してダウンロードする場合は、
シフトJISの中(正確には先頭)にBOMが混在するので文字化けを誘発する。
もちろん、UTF-8のデータだとしても、前述のように二重にBOMがあれば
二つ目が悪さをしてしまう。
分類:PHP
BOMコードと空っぽ
2013年08月10日
(UTF-8の)BOM付きで空っぽのファイルを保存すると、
「EF BB BF」のみの3バイトの空ファイル(?)が作成される。

つまり、0バイトの空ファイルではない。

この挙動は、メモ帳、秀丸エディタ、サクラエディタで確認した。
分類:設計
BOMコードとエディタ
2013年08月09日
各エディタにおけるファイル保存時のBOM指定を調べてみた。

メモ帳の場合、BOM指定がない。つまり強制的にBOM付きになってしまう。
┌──────────────────────────────────────┐
│                  ┌────┬─┐                                          │
│文字コード        │UTF-8   │▼│                                          │
│                  └────┴─┘                                          │
└──────────────────────────────────────┘

秀丸エディタの場合、チェックボックスがある。
┌──────────────────────────────────────┐
│                  ┌────────┬─┐                                  │
│エンコードの種類  │Unicode(UTF-8)  │▼│  □BOMを付ける                   │
│                  └────────┴─┘                                  │
└──────────────────────────────────────┘

サクラエディタの場合も、チェックボックスがある。
┌──────────────────────────────────────┐
│                  ┌────┬─┐              ┌─────┬─┐          │
│文字コードセット  │UTF-8   │▼│  改行コード  │変換なし  │▼│  □BOM   │
│                  └────┴─┘              └─────┴─┘          │
└──────────────────────────────────────┘
分類:設計
Linux/timeコマンド
2013年08月08日
「time」コマンドを使うと、コマンドの実行時間を計測することができる。
┌──────────────────────────────────────┐
│$ time コマンド                                                             │
│real    0m 00.00s                                                           │
│user    0m 00.00s                                                           │
│sys     0m 00.00s                                                           │
└──────────────────────────────────────┘

例えば、「ls」コマンドの実行時間を測る場合にはこんな感じ。
┌──────────────────────────────────────┐
│$ time ls                                                                   │
└──────────────────────────────────────┘

結果をログに記録したい場合には、括弧で括って、「2>」で出力すればよい。
#「>>」であれば追加出力(「>」は上書出力)
┌──────────────────────────────────────┐
│(time ls) 2>> log.txt                                                       │
└──────────────────────────────────────┘
「2>」の指定は標準エラー出力の向き先の指定を行うものだから、
実行時間は標準エラー出力に出力されるってことらしい。
分類:Linuxシェル
前へ 1 2 3 次へ