SCRAP

measure_text_width, measure_text_height

function measure_text_width(text) { var width = 0; var lines = text.split(/\x0d\x0a|\x0d|\x0a/); for(var i=0; i

ディレクトリのエントリを取得

function hello(){ var obj = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); obj.initWithPath("c:\\"); var a = []; var ite = obj.directoryEntries; while(ite.hasMoreElements()) { var e = i…

XMLHttpRequestをとりあえず使う

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> function hello(){ var req = new XMLHttpRequest(); req.open("GET", "file:///C:/lan.log/", false); req.send(null); alert(req.res…</window>

XMLをパース(DOM)

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> <bar> <zoo>ZOOZOO</zoo> <baz>BAZBAZ</baz> </bar> </foo>; var parser = new DOMParse…

XPath

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> <bar> <zoo>ZOOZOO</zoo> <baz>BAZBAZ</baz> </bar> </foo>; var parser = new DOMParse…

動的にXMLElementを追加

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> function hello() { var hbox = document.getElementById("hb"); var t = document.createElement("textbox"); hbox.appendChild(t); }…</window>

ファイルを読み込む

function hello(){ var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath("C:\\lan.log"); var fis = Components.classes["@mozilla.org/network/file-input-stream;1"] .c…

クリップボードから取得

function hello(){ var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard); var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interface…

HTTPのレスポンスを取得

function hello(){ var uri = Components.classes["@mozilla.org/network/standard-url;1"] .createInstance(Components.interfaces.nsIURI); uri.spec = "http://www.google.com/"; var ios = Components.classes["@mozilla.org/network/io-service;1"] .ge…

HTTPのレスポンスを取得 その2

function hello(){ var uri = Components.classes["@mozilla.org/network/standard-url;1"] .createInstance(Components.interfaces.nsIURI); uri.spec = "http://www.google.com/"; var ios = Components.classes["@mozilla.org/network/io-service;1"] .ge…

ZIPのエントリを出力

function hello(){ var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath("C:\\foo.zip"); var zip = Components.classes["@mozilla.org/libjar/zip-reader;1"] .createIns…

クラスをダンプする

id:masanobuimaiさんのメモを参考にして。 public class Foo { public static void main(String args) { try { Foo foo = new Foo(); foo.dump(String.class); } catch (Exception e) { e.printStackTrace(); } } public void dump(Class clazz) throws IOEx…

引数を参照する

#!/usr/bin/env rhino for(var i=0; i

jsファイルを実行する

サンプルだとprint()とかが定義されていなかったりするので。 public class RhinoRunner { public static void main(String[] args) { try { RhinoRunner runner = new RhinoRunner(); runner.run(); } catch (Exception e) { e.printStackTrace(); } } publ…

RhinoでJUnit

テストスクリプトがこんな感じ。 importPackage(Packages.foo);function assertEquals(executed, actual) { Packages.junit.framework.Assert.assertEquals(executed, actual); }var calc = new Calc(); assertEquals(3, calc.add(2, 2));テストランナーとテ…

すべてのクラスを取得する

public static void main(String args) { List interfaces = getAllClasses(HashMap.class); for (int i = 0; i System.out.println(interfaces.get(i)); }public static List getAllClasses(Class clazz) { List classes = new ArrayList(); return getAllC…

結果セットを表形式で表示

#!/usr/bin/env ruby require 'dbi' DBI.connect('DBI:OCI8:oracle', 'scott', 'tiger') {|dbh| dbh.execute("select * from tab") {|sth| rows = sth.fetch_all DBI::Utils::TableFormatter.ascii(sth.column_names, rows) } }

表のツリーを書く

まともに動くかな? 追記 一応、動いた。管理者で動かしたら、動かないかも… #!/usr/bin/env ruby require "dbi"class Table attr_reader :name, :parent, :children def initialize(name=nil) @name = name @children = end def set_parent(parent) @parent…

出力のリダイレクト

ByteArrayOutputStream in = new ByteArrayOutputStream(); PrintStream pin = new PrintStream(in); System.setErr(pin); System.err.println("あいうえお"); byte[] bs = in.toByteArray(); System.out.print("->" + new String(bs));全然関係ないけど、下…

SQLから文字列リテラルを抜き出す

private static final Pattern pattern = Pattern.compile("'(?:[^\']|'')*'");private List getStringLiterals(String sql) { List literals = new ArrayList(); Matcher matcher = pattern.matcher(sql); while (matcher.find()) literals.add(matcher.gro…

SQLを文字列リテラルとその他の部分に分ける

private static final Pattern pattern = Pattern.compile("'([^\']|'')*'");private List getStringLiterals(String sql, List others) { List literals = new ArrayList(); int i = 0; for (Matcher matcher = pattern.matcher(sql); matcher.find(); i = …

jarファイルからクラスをロードする その2

カレントスレッドのクラスローダに定義するように修正。すこしはマシかな… package jarjar;import java.io.*; import java.lang.reflect.*; import java.util.*; import java.util.jar.*;public class JarJar { public static void main(String args) { try …

jarファイルからクラスをロードする。

カレントスレッドのクラスローダにロードする方法わからず。これでいいのかなぁ… package jarjar;import java.io.*; import java.util.*; import java.util.jar.*;public class JarClassLoader extends ClassLoader { public static void main(String args) …

Hashの配列を表にする

うまい書き方ができない…orz ソース #!/usr/local/bin/rubyclass TableWriter def initialize(rows) return if rows.size @rows = rows set_names set_sizes end def to_s return "Empty set" unless @rows buf = "" puts_line(buf) puts_names(buf) puts_li…

入出力をつなげる

public void pipe(InputStream in, OutputStream out) throws IOException { byte[] buf = new byte[256]; while (in.available() > 0) { int len = in.read(buf); out.write(buf, 0, len); } }ByteArrayInputStream/ByteArrayOutputStreamではうまくいった…

tree.rb

Rubyの練習。しかし、センスないなぁ… #!/usr/local/ruby/bin/ruby class Node attr_accessor :name, :depth def initialize(path) @path = File.expand_path(path) @name = File.basename(@path) @depth = @path.count("/") end def get_children unless @c…

psコマンドの出力フォーマットの指定

年中忘れてしまうのでメモ。 コマンド ps -eo コード1,コード2,コード3… 標準フォーマット指定子 %cpu %CPU fsuid FSUID rgid RGID suid SUID %mem %MEM fsuser FSUSER rgroup RGROUP suser SUSER alarm ALARM fuid FUID rss RSS svgid SVGID args COMMAN…

Picoでセッター・インジェクション

Picoはシンプルでいいなー。jarは1個だけだし。 メイン。 package piconano;import org.picocontainer.MutablePicoContainer; import org.picocontainer.defaults.DefaultPicoContainer; import org.picocontainer.defaults.SetterInjectionComponentAdapte…

拡張日付クラス

どのプロジェクトでも、大体便利に使えるので。 package exdt;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;public class ExDate extends Date { /////////////////////////////…

JavaのソースからJavaDocを直接呼び出す

package foo; import com.sun.tools.javadoc.Main;public class Bar { public static void main(String args) { Main.execute(new String { "-sourcepath", ".../src", "-subpackages", "hoge.hogehoge" }); } }