MW211 EXIT

devlog
C言語/落とし穴シリーズ(1)
2013年12月16日
┌──────────────────────────────────────┐
│if (!(変数 == 値)) {                                                        │
└──────────────────────────────────────┘
という条件文を書こうとしたけど、うっかり括弧を書き損ねた場合。
┌──────────────────────────────────────┐
│if (!変数 == 値) {                                                          │
└──────────────────────────────────────┘

優先順位の関係で、以下のように解釈されるらしい。
┌──────────────────────────────────────┐
│if ((!変数) == 値) {                                                        │
└──────────────────────────────────────┘

変数が「int型」だったりした場合、「!」演算で「bool型」扱いとなるため
キャストが発生する(Warningが発生するかも)。
分類:C/C++
ExcelVBA/ファイルにデータがあるかチェック
2013年12月10日
「C:\data\excel.xls」ってファイルを判定する場合を例にする。

まず、ファイル自体があるかの判定は「Dir()」関数を使う。
この関数は、ファイルが存在すればファイル名を返すので
返り値が空文字であることでファイル不存在を確認できる。
┌──────────────────────────────────────┐
│If Dir("C:\data\excel.xls") = "" Then                                       │
│    Msgbox "ファイルが存在しない"                                           │
│End If                                                                      │
└──────────────────────────────────────┘

続いてファイルサイズの判定には「FileLen()」関数を使う。
この関数は、ファイルサイズを返すので、ずばり「0」であれば空っぽと判定できる。
┌──────────────────────────────────────┐
│If FileLen("C:\data\excel.xls") = 0 Then                                    │
│    Msgbox "ファイルが空っぽ"                                               │
│End If                                                                      │
└──────────────────────────────────────┘
分類:ExcelVBA
JavaScript/他のjsファイルを読み込む方法
2013年12月05日
あるjsファイルにて、他のjsファイルをインクルードみたいにして読み出す方法。

「document.write()」でインクルードを書いてしまえばよい。
┌───────────────────────────────── [ある.js]┐
│document.write('<script type="text/javascript" src="他の.js"></script>');   │
└──────────────────────────────────────┘

上記のようにすることにより
┌──────────────────────────────────────┐
│<script type="text/javascript" src="ある.js"></script>                      │
└──────────────────────────────────────┘
だけで、
┌──────────────────────────────────────┐
│<script type="text/javascript" src="ある.js"></script>                      │
│<script type="text/javascript" src="他の.js"></script>                      │
└──────────────────────────────────────┘
と同じになる。
分類:JavaScript
IT知識/Adobe_Flash_Player
2013年12月03日
Adobe_Flash_Playerってよくバージョンアップしてその告知を受けるけど
ひょっとしてブラウザ毎に違うPlayerがインストールされていて
それぞれを最新にしていかなければならない?などと思ってしまった。

というのも、IEとChromeのバージョンが違うからだ。

で、調べてみたら、Chromeだけ特別で、Playerが直接統合されているということだった。

つまり、Chrome版のPlayerはChromeを最新にすれば自ずと最新となり
それ以外の(普通の?)Playerは独自でバージョンアップが必要ということだ。

ちなみにChromeで、統合されているPlayerプラグインを解除したら
他のブラウザと同じように(普通の?)Playerを使用するらしい。
分類:IT全般
DOSバッチ/ループとゼロパディング
2013年12月02日
「2011年01月~2014年12月」を表示するバッチは以下の通り。
┌──────────────────────────────────────┐
│@echo off                                                                   │
│setlocal enabledelayedexpansion                                             │
│for /L %%i in (2011, 1, 2014) do (                                          │
│    for /L %%j in (1, 1, 12) do (                                           │
│        set mm=00%%j                                                        │
│        echo %%i年!mm:~-2!月                                                │
│    )                                                                       │
│)                                                                           │
│pause;                                                                      │
└──────────────────────────────────────┘

for文は「for /L %%i in (開始,増分,終了) do ()」で表す。

ゼロパディングの方法はご覧の通り(う~んよくわからん)。
分類:Windows
PHP配列/改造array_diff()
2013年11月30日
配列['a', 'b', 'b']と配列['b']の差分を比較したい場合。

「array_diff(array('a', 'b', 'b'), array('b'))」ってやると
結果が、配列['a']のみとなってしまう。

要素が複数ある場合には、その数に応じて差分を取りたいという場合
つまり、結果が配列['a', 'b']であって欲しい場合には「array_diff()」は使えない。

ということで、自前でそれを実現する関数を作ってみた
┌──────────────────────────────────────┐
│function array_diff2($return, $delete) {                                    │
│    if (is_array($return) && is_array($delete)) {                           │
│        foreach ($delete as $data1) {                                       │
│            foreach ($return as $key2 => $data2) {                          │
│                if ($data2 === $data1) {                                    │
│                    unset($return[$key2]);                                  │
│                    break;                                                  │
│                }                                                           │
│            }                                                               │
│        }                                                                   │
│    }                                                                       │
│    return $return;                                                         │
│}                                                                           │
└──────────────────────────────────────┘
分類:PHP配列
jQuery/Ajaxサブ画面からのダウンロード
2013年11月28日
Ajaxでサブ画面をはめ込んだとして、そこにファイルダウンロードボタンが
あったならば、このボタンを使えるものとできるのか?

答えは簡単にできる

呼び出される側で、以下を最初に出力してファイルの中身をその次に標準出力する。
┌──────────────────────────────────────┐
│header('Content-Disposition: attachment; filename="ダウンロード.txt"');     │
│header('Content-Type: application/octet-stream');                           │
└──────────────────────────────────────┘
一種の盲腸線みたいなもんだから画面表示はせずexit()で終わらせてしまう。

で、ダウンロードボタンでは「location.href=」でそれを指定するだけでよい。

Ajaxでダウンロードファイルを取ってきて、それを渡してみたいな仲介はいらない。

紐づけてやれば(紹介してやれば)、それでOK。バッファはいらない。

┌──────────────────────────────[download1.htm]┐
<html>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/>
<meta http-equiv="Content-Script-Type" content="text/javascript"/>
<script type="text/javascript" src="jquery.js"></script><!-- ★jQuery -->
<script type="text/javascript">
$(function() {
    $.get(
        'download2.php',
        function(data) {
            $('#sub').html(data);
        }
    );
});
</script>
<title>ダウンロード画面</title>
</head>
<body>
<div id="sub"></div>
</body>
</html>
└──────────────────────────────────────┘
┌──────────────────────────────[download2.php]┐
<?php
if (isset($_GET['dl'])) {
    header('Content-Disposition: attachment; filename="download.txt"');
    header('Content-Type: application/octet-stream');
    echo 'ダウンロードファイルの中身です';
} else {
    echo <<<___HTML___
<input type="button" value="ダウンロード実行"
 onClick="location.href='download2.php?dl';"/><br/>

___HTML___;
}
└──────────────────────────────────────┘
分類:jQuery
PHP/ダウンロード画面の雛型
2013年11月27日
PHPにてダウンロード画面を実装する場合のシンプルな雛型。
┌──────────────────────────────────────┐
<?php
if (@$_POST['command'] == 'ダウンロード実行') {
    header('Content-Disposition: attachment; filename="download.txt"');
    header('Content-Type: application/octet-stream');
    echo 'ダウンロードファイルの中身です';
} else {
    echo <<<___HTML___
<html>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/>
<title>ダウンロード画面</title>
</head>
<body>
<form method="post" action="">
<input type="submit" name="command" value="ダウンロード実行"/><br/>
</form>
</body>
</html>

___HTML___;
}
└──────────────────────────────────────┘

実はPOSTを使わなくても実現できたりする。
┌──────────────────────────────────────┐
<?php
if (isset($_GET['dl'])) {
    header('Content-Disposition: attachment; filename="download.txt"');
    header('Content-Type: application/octet-stream');
    echo 'ダウンロードファイルの中身です';
} else {
    echo <<<___HTML___
<html>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/>
<title>ダウンロード画面</title>
</head>
<body>
<a href="?dl">ダウンロード実行</a><br/>
</body>
</html>

___HTML___;
}
└──────────────────────────────────────┘
分類:PHP
ExcelVBA/行着色・列着色
2013年11月25日
セル「A1」が属する行を赤に着色。
┌──────────────────────────────────────┐
│Cells(y, 1).EntireRow.Interior.Color = RGB(255, 0, 0)                       │
└──────────────────────────────────────┘

セル「A1」が属する列を赤に着色。
┌──────────────────────────────────────┐
│Cells(y, 1).EntireColumn.Interior.Color = RGB(255, 0, 0)                    │
└──────────────────────────────────────┘
分類:ExcelVBA
ExcelVBA/行削除・列削除
2013年11月24日
セル「A1」が属する行を削除。
┌──────────────────────────────────────┐
│Cells(1, 1).EntireRow.Delete                                                │
└──────────────────────────────────────┘

セル「A1」が属する列を削除。
┌──────────────────────────────────────┐
│Cells(1, 1).EntireColumn.Delete                                             │
└──────────────────────────────────────┘
分類:ExcelVBA
前へ 1 … 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 … 156 次へ