小物ソフトのソースプログラムのページ。
ちょっとアレだけど, 切り取ってお使いくらはい。
各々の先頭にある(ラベルの横の)日付は, 公開した時の日付れす。
◇
/* draw2.js: お手軽 Graphics パート2, みたいな */ importPackage(java.lang, Packages.javax.swing) importClass(java.awt.Dimension, java.awt.Color) importClass(Packages.org.mozilla.javascript.Context) function createComponents(cx) { var draw = new JPanel() draw.background = Color.WHITE draw.setPreferredSize(new Dimension(200, 200)) var scope = cx.initStandardObjects() scope.canvas = draw scope.quit = quit scope.Color = Color var pane = Box.createVerticalBox() pane.add(draw) pane.add(Box.createVerticalStrut(5)) var tx = new JTextArea(7, 30) var box = Box.createHorizontalBox() box.add(Box.createHorizontalStrut(5)) box.add(new JScrollPane(tx)) box.add(Box.createHorizontalStrut(5)) var btn = new JButton('OK') btn.addActionListener(function (event) { var Rc = cx.evaluateString(scope, tx.text, '<cmd>', 1, null) if (Rc != undefined) tx.append('\n// '+Rc+'\n') tx.selectAll(); tx.requestFocus(); }) box.add(btn) box.add(Box.createHorizontalStrut(5)) pane.add(box) return pane } try { UIManager.setLookAndFeel(UIManager.systemLookAndFeelClassName) } catch (e) {} var frame = new JFrame('draw canvas') frame.addWindowListener(function (event, methodName) { if (methodName == 'windowClosing') quit() }) var cx = Context.currentContext // Context.enter() try { frame.contentPane.add(createComponents(cx)) frame.pack() frame.visible = true } finally { //cx.exit() }
/* draw.js: お手軽 Graphics */ importPackage(java.lang, java.awt, Packages.javax.swing) function view(components) { f = new JFrame('image') var o = { windowClosing: function (evt) { f.dispose() } } f.addWindowListener(java.awt.event.WindowAdapter(o)) f.contentPane.add(components) f.pack() f.visible = true } var c = new Canvas() // JPanel() c.setSize(new Dimension(200, 200)) c.background = Color.white view(c) f.setLocation(50, 50) var g = c.graphics
load('draw.js') // (↑)のファイル名 /* サンプル */ g.clearRect(0,0,200,200) g.drawOval(30, 50, 60, 80) g.drawOval(110, 50, 60, 80) g.drawLine(30,170,170,160) g.drawLine(30,90,170,80)
/* newDiv.erx ・・・ DIVタグ生成(日時属性含む) -- 2003-04-09 */
/* なんだか あまりにも機能が貧弱すぎるよーな気がするんだけど (^^; */
'extract /getline/line'
n = verify(getline.1, ' ')
if n == 0 then n = 2; else n = n +1;
parse value date('S') with y +4 m +2 d +2
tz = '+09:00'
cur = y'-'m'-'d'T'time()tz
call etksetfilefield 'line', line.1 +1
call etkinserttext copies(' ', n)'<div title="" cite="" datetime="'cur'">'
call etkinserttext ''
call etkinserttext copies(' ', n)'</div>'
call etksetfilefield 'line', line.1 +2
call etksetfilefield 'col', 9
/* NameFaker:代理(proxy) DNS */ options translate('ETmode') True = 1; False = 0; call RxFuncAdd 'SockLoadFuncs', 'rxsock', 'SockLoadFuncs' call SockLoadFuncs SelectWait = 1 NServerPort = 53 MX_RecvLimit = 1500 Svr_TimeLimit = 60*60 NameServerAddr = '192.168.0.1' /* ← ホントのNameServerを指定してちょ */ /* -- Start */ signal on halt socket = SockSocket('AF_INET', 'SOCK_DGRAM', 0) sklist = socket locaddr.family = 'AF_INET' locaddr.addr = 'INADDR_ANY' locaddr.port = NServerPort if SockBind(socket, 'locaddr.') < 0 then do say '#Bind ('locaddr.port') error='errno signal Halt end /* -- Main loop */ do forever r.0 = words(sklist) do i = 1 to r.0 r.i = word(sklist, i) end Rc = SockSelect('r.',,, SelectWait) if Rc < 0 then leave if Rc == 0 then do if DBG == 1 then call CharOut , '*' if time('Elapsed') < Svr_TimeLimit then iterate say 'タイムアウト … 終了' leave end Rc = time('Reset') /* -- 受信処理 */ do i = 1 to r.0 Rc = SockRecvFrom(r.i, 'txt', MX_RecvLimit, 'remaddr.') if r.i == socket then do sk = SockSocket('AF_INET', 'SOCK_DGRAM', 0) sklist = sklist sk request.sk._REMOTE = remaddr.family remaddr.addr remaddr.port request.sk._TIME = time('Seconds') /* ホントのサーバーへ要求 */ svraddr.family = 'AF_INET' svraddr.addr = NameServerAddr svraddr.port = NServerPort Rc = SockSendTo(sk, txt, 'svraddr.') end else do sk = r.i /* クライアントへ応答を返す */ parse var request.sk._REMOTE remaddr.family remaddr.addr remaddr.port drop request.sk._REMOTE request.sk._TIME Rc = SockSendTo(socket, txt, 'remaddr.') /* 資源を開放 */ n = wordpos(sk, sklist) if n > 0 then sklist = space(delword(sklist, n, 1)) if SockSoClose(sk) < 0 then say '#Close error='errno end end end SIGL = 0 /* -- 後処理 */ Halt: if SIGL > 0 then say 'stop at' SIGL do i = 1 to words(sklist) if SockSoClose(word(sklist, i)) < 0 then say '#Close error='errno end exit
/* 引数で指定されたDLLを探す */ call RxFuncAdd 'SysLoadFuncs', 'rexxutil', 'SysLoadFuncs' call SysLoadFuncs parse source . cmd . if value('LPATH',, 'OS2ENVIRONMENT') == '' then call SetLPath parse arg dll p = pos('.', dll) if p == 0 then dll = dll'.dll' path = SysSearchPath('LPATH', dll) if cmd = 'COMMAND' then say path exit path SetLPath: procedure call SysFileSearch 'LibPath', GetBootDrive()'\Config.sys', 'lpath.' do i = 1 to lpath.0 if translate(word(lpath.i, 1)) == 'REM' then iterate parse var lpath.i '=' txt call value 'LPATH', txt, 'OS2ENVIRONMENT' say 'SET LPATH ...' end return GetBootDrive: /* from RXTT16.INF */ Rc = SysIni('BOTH', 'FolderWorkareaRunningObjects', 'ALL:', 'Objects') return left(Objects.1, 2)
/* file分割 第二版 */ options translate('ETmode') call RxFuncAdd 'SysLoadFuncs', 'rexxutil', 'SysLoadFuncs' call SysLoadFuncs parse arg orgfile drv if \datatype(left(drv, 1), 'M') then drv = 'A:' if substr(drv, 2) \== ':' then drv = left(drv, 1)':' parse value FileSpec('N', orgfile) with base'.' size = chars(orgfile) fpos = 0 do i = 1 while fpos < size fname = drv''base'.'right(i, 3, 0) msg = 'FDを用意して下さい ("!" Utility mode)' do forever n = size -fpos say fname '... 残り:' n 'Bytes ('n%1024 'KB)' call charout , msg'0d'x ch = SysGetKey() if ch == '!' then call DiskUtil drv if ch \= '0d'x then iterate if stream(fname, 'c', 'query exists') \== '' then msg = 'ファイル' fname 'は, 既に存在します。' else if word(SysDriveInfo(drv), 2) == 0 then msg = 'ディスクスペースが足りません。' else leave end call charout , '書き込み中 ・・' '1b'x'[K' '0d'x free = word(SysDriveInfo(drv), 2) len = min(size -fpos, free) val = charin(orgfile, fpos +1, len) rln = charout(fname, val) call charout fname if rln == 0 then fpos = fpos +len else say '書き出し失敗。残り' rln end say 'ファイル分割完了' exit DiskUtil: procedure parse arg drv do forever say 'd' '09'x'ディレクトリ表示' say 'F' '09'x'フォーマット' say '?' '09'x'ディスク情報 (ドライブ 空き容量 全体容量)' say say '[ESC]' '09'x'終了' ch = SysGetKey() say select when ch == '1b'x then return when ch == '?' then say SysDriveInfo(drv) when ch == 'd' then 'dir' drv when ch == 'F' then 'format' drv otherwise say '07'x end end
これらのソフトは基本的に無保証です。
また, これらソフトを利用したことで何らかの被害を被ったとしても,
作者は責任を負いません。あらかじめご了承下さい。