MW211 EXIT

devlog
PostgreSQL/使用できない文字の捜査
2014年05月31日
テーブル(表)上に、シフトJISで使用できない文字が含まれるか確認する方法。
┌──────────────────────────────────────┐
│SET CLIENT_ENCODING TO 'SJIS';                                              │
│SELECT * FROM 表;                                                           │
└──────────────────────────────────────┘
クライアントエンコードをシフトJISにしてから、データを呼び出し
エラーとなれば含まれていると判明。
┌──────────────────────────────────────┐
│ERROR:  character 0x■ of encoding "UTF8" has no equivalent in "SJIS"       │
└──────────────────────────────────────┘
分類:PostgreSQL
Excel/CSV数値項目の裏技
2014年05月30日
数値に何らかの記号を付加したい場合、
普通に「※」とかを付加する(例「※1.2」)と、文字列になってしまう

しかし「$」をつけると数値のままにできる。(例「$1.2」)
分類:Excel
JavaScript/配列定義
2014年05月29日
┌──────────────────────────────────────┐
│var 配列 = ['A','B','C'];                                                   │
└──────────────────────────────────────┘
上記は、下記のようにも書ける。
┌──────────────────────────────────────┐
│var 配列 = 'A B C'.split(' ');                                              │
└──────────────────────────────────────┘
分類:JavaScript
Excel/連番をふる
2014年05月28日
テスト一覧表なんかを作成する場合に、項番を連番でふる場合がある。
この時に使用できそうなExcel数式をまとめた。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【前の行の値をインクリメントする】
┌────────────┐  ┌────┐
│             A          │  │        │
│  ┌─────────┐│  │┌──┐│
│ 1│1                 ││  ││   1││
│  ├─────────┤│→│├──┤│
│ 2│=A1+1             ││  ││   2││
│  ├─────────┤│  │├──┤│
│ 3│=A2+1             ││  ││   3││
│  └─────────┘│  │└──┘│
└────────────┘  └────┘
  最も単純な関数。上の行に+1していく。
  上の行を指すセル番号はコピペすれば自動でスライドする。
  但し、間に空行が挟まった場合には、調整が必要。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【行番号を取得する】
┌────────────┐  ┌────┐
│             A          │  │        │
│  ┌─────────┐│  │┌──┐│
│ 1│                  ││  ││    ││
│  ├─────────┤│→│├──┤│
│ 2│=ROW()-1          ││  ││   1││
│  ├─────────┤│  │├──┤│
│ 3│=ROW()-1          ││  ││   2││
│  └─────────┘│  │└──┘│
└────────────┘  └────┘
  一件目も含め、同じ内容の数式となる。
  但しこちらも、間に空行が挟まった場合には弱い。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【前の範囲のデータ件数を集計する】
┌────────────┐  ┌────┐
│             A          │  │        │
│  ┌─────────┐│  │┌──┐│
│ 1│1                 ││  ││   1││
│  ├─────────┤│  │├──┤│
│ 2│=COUNT($A$1:A1)+1 ││→││   2││
│  ├─────────┤│  │├──┤│
│ 3│                  ││  ││    ││
│  ├─────────┤│  │├──┤│
│ 4│=COUNT($A$1:A3)+1 ││  ││   3││
│  └─────────┘│  │└──┘│
└────────────┘  └────┘
  間に空行が挟まっても問題なし。
  上の行を指すセル番号はコピペすれば自動でスライドする。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
分類:Excel
WSH/ZIP解凍(2)
2014年05月27日
入力元ZIPファイルを解凍とともに空にするWSH。
┌──────────────────────────────────────┐
│Set objShell = CreateObject("Shell.Application")                            │
│Set inputZip = objShell.NameSpace(入力元ZIPファイル).items                  │
│Set outputFolder = objShell.NameSpace(出力先フォルダ)                       │
│outputFolder.MoveHere inputZip                                              │
└──────────────────────────────────────┘
「outputFolder.CopyHere」を「outputFolder.MoveHere」に変更すればよい。
分類:WSH・VBS
WSH/ZIP解凍(1)
2014年05月26日
入力元ZIPファイルの内容を出力先フォルダに解凍する最も単純なWSH。
┌──────────────────────────────────────┐
│Set objShell = CreateObject("Shell.Application")                            │
│Set inputZip = objShell.NameSpace(入力元ZIPファイル).items                  │
│Set outputFolder = objShell.NameSpace(出力先フォルダ)                       │
│outputFolder.CopyHere inputZip                                              │
└──────────────────────────────────────┘
分類:WSH・VBS
PHP/代理関数
2014年05月24日
例えば「hex2bin」は、PHP5.4以降でのみ実装されており、それ以前はない。
でも、それ以前でも動作させたい場合には、自前で定義してあげればよい。
┌──────────────────────────────────────┐
│//==========================================================================│
│//  代理関数                                                                │
│//==========================================================================│
│if (!function_exists('hex2bin')) {                                          │
│    function hex2bin($data) {                                               │
│        $bin = '';                                                          │
│        $i = 0;                                                             │
│        do {                                                                │
│            $bin .= chr(hexdec($data{$i} . $data{($i + 1)}));               │
│            $i += 2;                                                        │
│        } while ($i < strlen($data));                                       │
│        return $bin;                                                        │
│    }                                                                       │
│}                                                                           │
└──────────────────────────────────────┘
この場合「function_exists()」で関数が定義されているか確認の上
関数を定義する形となる。
分類:PHP
PHP/POST内容の確認
2014年05月23日
「var_dump()」「var_export()」「print_r()」などで、
「$_POST」を出力してあげればよい。
┌──────────────────────────────────────┐
│<?php                                                                       │
│var_dump($_POST);                                                           │
└──────────────────────────────────────┘

ブラウザの既定文字コードがシフトJISの場合、UTF-8だと文字化けしてしまうが、
文字コードは以下のように宣言することができる。
┌──────────────────────────────────────┐
│<?php                                                                       │
│header('Content-type: text/plain; charset=UTF-8');                          │
│var_dump($_POST);                                                           │
└──────────────────────────────────────┘

「var_dump()」の改行を活かすには「pre」タグで囲うのが一番いいみたいだ。
┌──────────────────────────────────────┐
│<?php                                                                       │
│header('Content-type: text/html; charset=UTF-8');                           │
│echo '<pre>';                                                               │
│var_dump($_POST);                                                           │
│echo '</pre>';                                                              │
└──────────────────────────────────────┘
「nl2br」(\n→<br/>)をそのまま使うのは無理っぽい。
分類:PHP
VC++/CTime型の大小比較
2014年05月22日
「if (CTime型変数 < "2014年01月02日12時34分50秒")」的なことをしたい場合は、
CTime型の定数を作ってもよいが、以下のようにベタで書くこともできる。
┌──────────────────────────────────────┐
│if (CTime型変数 < CTime(2014, 1, 2, 12, 34, 50)) {                          │
│    // 2014年01月02日12時34分50秒より前の場合                               │
│} else {                                                                    │
│    // 2014年01月02日12時34分50秒以降の場合                                 │
│}                                                                           │
└──────────────────────────────────────┘
分類:C/C++
CSS/tableタグと余白
2014年05月21日
┬──────────────────────────────────────┬
│概要                                                                        │
┴──────────────────────────────────────┴
  tableタグの場合、既定だと余白が開いてしまう
  ┌────────────────────────────────────┐
  │table {                                                                 │
  │    border          :1px solid #000000;                                 │
  │}                                                                       │
  │td {                                                                    │
  │    border          :1px solid #000000;                                 │
  │}                                                                       │
  ├────────────────────────────────────┤
  │<table>                                                                 │
  │  <tr><td>■</td><td>■</td></tr>                                       │
  │  <tr><td>■</td><td>■</td></tr>                                       │
  │</table>                                                                │
  ├──────────────────┬─────────────────┤
  │「border-collapse:separate;」の場合 │┌──────┐                  │
  │                              (既定)││┌─┐┌─┐│                  │
  │                                    │││■││■││                  │
  │                                    ││└─┘└─┘│                  │
  │                                    ││┌─┐┌─┐│                  │
  │                                    │││■││■││                  │
  │                                    ││└─┘└─┘│                  │
  │                                    │└──────┘                  │
  ├──────────────────┼─────────────────┤
  │「border-collapse:collapse;」の場合 │┌─┬─┐                        │
  │                                    ││■│■│                        │
  │                                    │├─┼─┤                        │
  │                                    ││■│■│                        │
  │                                    │└─┴─┘                        │
  └──────────────────┴─────────────────┘
┬──────────────────────────────────────┬
│既定とは                                                                    │
┴──────────────────────────────────────┴
  ┌────────────────────────────────────┐
  │table {                                                                 │
  │    border          :1px solid #000000;                                 │
  │}                                                                       │
  │td {                                                                    │
  │    border          :1px solid #000000;                                 │
  │}                                                                       │
  └────────────────────────────────────┘
  上記を記述した場合、下のような既定パラメータが付加される感じになる
  ┌────────────────────────────────────┐
  │table {                                                                 │
  │    border          :1px solid #000000;                                 │
  │    border-collapse :separate;                                          │
  │    border-spacing  :2px 2px;                                           │
  │}                                                                       │
  │td {                                                                    │
  │    border          :1px solid #000000;                                 │
  │    padding         :1px 1px;                                           │
  │}                                                                       │
  └────────────────────────────────────┘
┬──────────────────────────────────────┬
│collapse                                                                    │
┴──────────────────────────────────────┴
  「separate」の余白を削りまくっても「collapse」になるわけではない
  ┌────────────────────────────────────┐
  │table {                                                                 │
  │    border          :1px solid #000000;                                 │
  │    border-collapse :separate;                                          │
  │    border-spacing  :0;                                                 │
  │}                                                                       │
  │td {                                                                    │
  │    border          :1px solid #000000;                                 │
  │}                                                                       │
  └────────────────────────────────────┘
    ┏━┳━┓                                                    ┌───  
    ┃■┃■┃太線のようになってしまう                            │  │  │
    ┣━╋━┫これは二重線だからだ          これを回避するためには│─┘─┘
    ┃■┃■┃                          右のように分担させればよい│  │  │
    ┗━┻━┛                                                      ─┘─┘
  つまり、これが「collapse」である
  ┌────────────────────────────────────┐
  │table {                                                                 │
  │    border          :1px solid #000000;                                 │
  │    border-collapse :collapse;                                          │
  │}                                                                       │
  │td {                                                                    │
  │    border          :1px solid #000000;                                 │
  │}                                                                       │
  ├────────────────────────────────────┤
  │table {                                                                 │
  │    border-top      :1px solid #000000;                                 │
  │    border-left     :1px solid #000000;                                 │
  │    border-collapse :separate;                                          │
  │    border-spacing  :0;                                                 │
  │}                                                                       │
  │td {                                                                    │
  │    border-bottom   :1px solid #000000;                                 │
  │    border-right    :1px solid #000000;                                 │
  │}                                                                       │
  └────────────────────────────────────┘
┬──────────────────────────────────────┬
│文字自体の余白(文字の下の余白)                                              │
┴──────────────────────────────────────┴
  「font-size:16px;」と指定しても、実際には縦幅だけ「17px;」となる場合がある
  これは「g、j、p、q、y」といったベースラインを下にはみ出る文字への対策として
  下に「padding」より内側の余白が付加されるイメージだ
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  以下のように指定すれば、上記が解消される
  ┌────────────────────────────────────┐
  │* {                                                                     │
  │    line-height         :100%;                                          │
  │}                                                                       │
  └────────────────────────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  画像についても同様に下余白が付く場合がある
  これは以下のように指定すれば解消できる
  ┌────────────────────────────────────┐
  │img {                                                                   │
  │    vertical-align      :bottom;                                        │
  │}                                                                       │
  └────────────────────────────────────┘
────────────────────────────────────────
分類:CSS
前へ 1 2 3 次へ