2016年10月14日金曜日

[rebase] windows10のupdateにてMinGWが動かなくなった場合の対処

rebaseを使い、メモリのかちあいを無くした

./rebase -b 0x30000000 /cygdrive/c/MinGW/msys/1.0/bin/msys-1.0.dll

2016年9月21日水曜日

[Excel] 括弧によるマイナス

Excelでは(1)とセルに入力すると-1として判断される。
これはアメリカの経理において負数を()を使って記述するためである。

2016年9月7日水曜日

[ruby] File.unlink

ファイルの削除を行う。
removeも可

[ruby] Open3.popen3

標準入出力管理可能な子プロセス作成処理
ただし、バッファに難有
$instructions.each{|insn|
  printf("--- TEST: %s", insn)
  Tempfile.open(['xxx', '.s']){|fp|
    fp.puts("\torg\t100h")
    fp.puts("\t" + insn)
    fp.puts("\tend")
    fp.flush
   
    # system($assembler + " " + fp.path)
    Open3.capture3($assembler, fp.path)
    hexname = fp.path.sub(%r{\.s$}, ".hex")
    File.open(hexname){|hexfile|
      $results << TestResult.new(insn.chop, hexfile.read)
    }
    File.unlink(hexname)
  }
}

[ruby] JSON

JSON用クラス
文字列を渡してJSONオブジェクトを作ることができる。
print JSON.load("[#{$results.map{|e| e.to_json}.join(",")}]").to_s

[ruby] Tempfile

テンポラリファイルを作成するためのクラス
open()でテンポラリファイルを作成する。配列でプレフィックス、サフィックスを指定することができる。
ブロックを渡した場合はテンポラリファイルはそのブロック内で有効である。


  • 作られた オブジェクトはpathでファイル名を取り出すことができる。
  • ブロックから外れた時にはテンポラリファイルは自動で削除される。

$instructions.each{|insn|
  printf("--- TEST: %s", insn)
  Tempfile.open(['xxx', '.s']){|fp|
    fp.puts("\torg\t100h")
    fp.puts("\t" + insn)
    fp.puts("\tend")
    fp.flush
   
    # system($assembler + " " + fp.path)
    Open3.capture3($assembler, fp.path)
    hexname = fp.path.sub(%r{\.s$}, ".hex")
    File.open(hexname){|hexfile|
      $results << TestResult.new(insn.chop, hexfile.read)
    }
    File.unlink(hexname)
  }
}

[ruby] Array.flatten

配列の平坦化を行う。
変更を反映するflatten!もある。

[[1,2],3].flatten
→[1,2,3]