文字コード

今更だけどなんかちょっと曖昧に理解してたのでまとめ。 私はWindows使いなので、SJISとUTF8といったりきたりすることが頻繁にあるので、それだけに絞ってまとめてみた。 utf8.txt と cp932.txt というファイルを作成しておく(中身はそれぞれファイル名と同…

google.script.run の罠3

GAS

戻り値Dateオブジェクトだとエラーになっちゃいます。たぶんこれ、内部的にはJSONでデータをやりとりしてるので、JSONであらわせないオブジェクトはダメなんだと予想。なので、formatDate 関数で文字列化する必要があります。

ダイアログボタンのenable/disable制御

特に説明を要しないのでコードだけ $(".ui-dialog-buttonpane button:contains('登録')")).button("disable"); // 押せないようにする $(".ui-dialog-buttonpane button:contains('登録')")).button("enable"); // 押せるようにする 参考URL) http://stackov…

google.script.run の罠2

GAS

皆さん知ってましたか、GASで作ったhtml内では console.dir が使えないんです。独自のconsoleが定義されてるようです。 for( var p in console ) { console.log(p); } // debug // error // log // info // warn なので、こんな風にするとキレイに出力されま…

google.script.run の罠

GAS

いやー、これは嵌った。2時間嵌った。 何に嵌ったかと言うと、戻り値が思い通り返ってこないんです。 client側から呼ばれるAPI /* * 単に、キーが数値となるオブジェクトを返すだけ */ function api() { return {"1":"data1"}; } client側でこれを呼んでデー…

スプレッドシートの最終行について

GAS

何らかの値が入力されている最後の行はgetLastRow関数で取得できる もちろんまっさらなスプレッドシートだと 0 が返る getMaxRows関数は現在のスプレッドシートの記入できる行数を返す(まだ何も書き込まれていない行があっても) ただし、getLastRow()+1行目…

正規表現

いっつもわからんようになるので備忘録。 String text = "content://media/external/video/media/10"; Pattern p = Pattern.compile("^content://.*/(\\d+)$"); Matcher m = p.matcher(text); if( m.find() ) { String matchAll = m.group(0); // => content…

スキーマを知らないテーブルのダンプ

Cursor c = db.rawQuery("SELECT * FROM ...", null); Log.d("行数", ""+c.getCount()); Log.d("列数", ""+c.getColumnCount()); if(!c.moveToFirst()) return; for(int col=0; col

1つ前のタグに○○という文字が入っているタグ

例えば以下のようなHTMLの場合に、 <div> <div>...</div> <div>...</div> <div>...</div> <div id="div1">ほげほげ○○ふがふが</div> <div id="div2">このdivタグを取得したい</div> <div>...</div> <div>...</div> <div>...</div> </div> div2のdivタグを取得したい場合のxpath式はこんな風になる(もちろん id が振られていない前提です) //div[preceding-sibling::div[1][contains(tex…

Tips集

■超簡単なサンプル require "mechanize" agent = Mechanize.new agent.get("http://d.hatena.ne.jp/shima111/") ■アクセスしたページを取得する page = agent.page page.uri #<URI::HTTP:0x157f698 URL:http://d.hatena.ne.jp/shima111/> ■リンクをクリックする # 表示されてる文字列にマッチするリンクタグをクリック </uri::http:0x157f698>…

日付に関するメモ

ざっとまとめてみる デフォルトで用意されているのはTimeクラス Time.nowで現在時刻を取得できる Time.local(y,m,d,hour,min,sec,usec) で指定した時刻を取得できる(mは1〜12) 整数との加減算は秒数を加減算してTimeを返す Timeとの加減算は秒数をFloatで返…

色々な例

シートの全選択 sheet.Cells.Select シートの全削除 sheet.Cells.ClearContents セルが空かどうかチェック cell = sheet.Cells.Item(y,x) unless cell.Value.nil? # セルに何かデータがある puts cell.Value end Rangeを使用してセルの値を取得する # 単一セ…

Excelを終了させる方法

rubyからOLE経由でExcelを操作するのはこちらを参考に http://magazine.rubyist.net/?0004-Win32OLE問題はQuitしてもExcelのプロセスが残ってしまうこと。irbで実行すればわかるけど require 'win32ole' xl = WIN32OLE.new('Excel.Application') book = xl.W…

アクセスされたURLを知る

GAS

こういうのってググってもなかなか見つからないんだよねー。検索するキーワードも難しいし。 function doGet() { Logger.log("ScriptApp.getService().getUrl() = " + ScriptApp.getService().getUrl() ); // => ScriptApp.getService().getUrl() = https://…

doGetの引数

GAS

検索してもキーワード的に難しくてすぐ見つかんなかったので実験してみたまとめ。 // 単にparamをダンプするだけのスクリプトを作成 function doGet(param) { Logger.log(param); }このGASアプリに以下のようなクエリパラメータを付けてアクセス ?arg1&arg2=…

キーイベント発行

ググってすぐ見つかるページでは、KeyEvent.ACTION_DOWN を dispatchKeyEvent してるだけなんだけど、それだと上手くいかなかった・・。なので、試しに KeyEvent.ACTION_UP もやってみたら上手くいったのでメモしておく。 dispatchKeyEvent( new KeyEvent(Ke…

スプレッドシートからデータを取得する時の注意事項

ググると、どうやったらスプレッドシートにデータをセットできるか、とかデータを取得するか、という簡単なサンプルは腐るほど見つかるんだが、じゃー一回でどんなけデータを取得できんのよ、とか、大量のデータを更新する最速の方法は?とか、少し突っ込ん…

端末のアカウントでスプレッドシートにアクセスする

# こんななんでもないことで丸2日潰れた。いやー大変だった・・。GoogleスプレッドをAPI経由で操作する方法は、ぐぐればゴマンと記事がひっかかるが、どれもこれもほとんど setUserCredentials でユーザ名、パスワードを設定してアクセスしている。探せばOAu…

Windows版でアイコンを変更する

バージョンとかプラグインとかの関係でプロジェクト毎にeclipse自体を用意している場合、同時に起動させるとアイコンが同じなのでパッと見でどのeclipseがどのプロジェクトか分かり辛くなるという、レアな悩み事でお困りのあなたに必見。 ※私は Pleiades All…

エクスプローラをカスタマイズ

以前こちらの記事でWinodws7におけるエクスプローラのカスタマイズ方法を紹介したが、Windows8でもそのまま使えるみたいです。ただこれ一つ問題があって、ネットワーク共有フォルダとか一部のフォルダでは依然として1行選択になっちゃうんですよね。ちょっと…

ファイル名一覧を表示するには(2)

過去の記事にプラスαファイル名をUTF8で表示するオプションを追加 <Directory "C:/eroero_files"> Options +Indexes IndexOptions +NameWidth=255 Charset=UTF-8 </Directory>

WinXPx64 にインストールすべきjavaとeclipse

普通、64bit版のjavaとeclipseをインストールすると思うじゃないですか。なんかね、動かないんですよ。なんでやねん・・。 正確に言うと、jdk1.7.0_21x64 をインストールして、eclipse4.2x64 は動いたんですが、eclipse3.7x64は動かなかった。 結局全部32bit…

日付の変換方法

日付文字列からdate型かtimestamp型に変換 select to_date('2013-04-21', 'YYYY-MM-DD'); select to_timestamp('2013-04-21 12:34:56', 'YYYY-MM-DD HH24:MI:SS'); date型、timestamp型から日付文字列に変換 select to_char(now(), 'YYYY-MM-DD'); 日付の計…

WindowsXPでパーティションを拡張する

もう何年も前にVMwareでベースとなるイメージを作ったのだが、その時は十分な大きさだと思っていた8GBが今じゃ全然約に立たなくなったので、ベースイメージを作り直すのも面倒なのでHDDの容量だけなんとか大きくできないか探してみたところ、こんなツールが…

extend:オブジェクトの拡張

// objに key1, key2 が追加される。既にあればval1、val2に上書きされる $.extend(obj, {"key1":"val1", "key2":"val2"}); // こうすれば、オブジェクトのコピー var new_obj = $.extend({}, obj);

stop:アニメーションストップ

// stop(true,true) にすると、アニメーションの途中でも強制的に終了して次のアニメーションを開始する // マウスカーソルを目まぐるしく動かすと違いがわかります $("#one").hover( function() { $(this).find("ul").stop().slideDown("slow"); //$(this).…

on、off:イベントの設定、解除

bind、delegate、live がこれに集約された。 // bindの代わり $("button").on("click", function(){...}); $("button").off("click"); // delegateの代わり $("#id1").on("click", ".someClass", function(){...}); // liveの代わり $(document).on("click",…

preventDefault:イベントのキャンセル

$("a").click(function(ev) { if( !confirm("画面遷移しますか?") ) ev.preventDefault(); // return false; でも、同じような挙動を得られるが // 別のイベントもキャンセルされる場合があるので、なるべくpreventDefaultを使用 });

ajaxグローバルイベントフック

// $("body") という例をよく見かけるが、何故か出力されないので注意 $(document) .bind("ajaxStart", function(){ console.log("ajaxStart"); }) .bind("ajaxSend", function(){ console.log("ajaxSend"); }) .bind("ajaxSuccess", function(){ console.lo…

param:オブジェクトを文字列に変換(日本語はちゃんとURLエンコードされる)

$.param({"key1":"val1", "キー":"値"}); // => key1=val1&%E3%82%AD%E3%83%BC=%E5%80%A4