Posts from the ‘Tcl’ Category

2009/10/04

フォルダ内を再帰的に検索

by ctrans

再帰的にフォルダ内を検索して条件に合うファイルを取得するための関数。
引数のdirには検索対象のフォルダのパス、masksには「*.txt *.exe」のように取得したいファイルの種類をリストで渡します。
返り値はファイル名のリストです。

proc globRecursive {dir masks} {
  set result [list]
  foreach cur [lsort [glob -nocomplain -dir $dir *]] {
    if {[file type $cur] == "directory"} {
      eval lappend result [globRecursive $cur $masks]
    } else {
      foreach mask $masks {
        if {[string match $mask $cur]} {
          lappend result $cur
          break
        }
      }
    }
  }
  return $result
}
2009/10/01

次のウィジェットにフォーカス

by ctrans

いつもやり方を忘れるTkのフォーカスまわり。
エンターキーを押下した際、次のウィジェットにフォーカスを移動させたい場合は、tk_focusNextを使います。

bind $w <Return> {
	focus [tk_focusNext [focus]]
	break
}

自分のためにメモφ(。_。)メモ

2009/09/01

Pinconv 4.00α

by ctrans

中国語にかかわる各種変換機能とオンライン辞書の編集検索機能を備えたPinconv 4.00(アルファ版)を公開します。

ダウンロード

iconpinconv.zip

Screenshot

ピンイン変換 北辞郎の検索

Pinconvの主な機能

  • 漢字の変換
    • 簡体字中国語と日本語の漢字の相互変換
    • 簡体字中国語と繁体字中国語の相互変換
    • 簡体字中国語から発音記号(簡易ピンイン)への変換
    • 簡易ピンインから声調記号付きのピンインへの変換
    • 上記変換は対訳形式で出力することができ、処理結果をHTMLなどに変換することも可能です。
  • オンライン辞書「北辞郎」の検索と編集
    • 北辞郎APIを利用し、検索と編集を行うことができます。
  • Unicode対応のエディタ
    • エディタ部分は複数の文字コードに対応しています。
  • WEB検索
    • 選択した文字列をGoogleやwikipediaなどで手軽に検索することができます。
  • 全画面表示
    • 雑音をシャットアウトして物書きに集中したい時に便利な全画面表示機能を備えています。
  • 正規表現に対応した検索と置換機能
  • などなど

read more…

2009/05/08

Tcl拡張 – edit 1.00

by ctrans
edit
a text widget with highlighting support for Tcl/Tk

NAME

edit (version 1.02 – 2010-01-21)
download: edit.zip
screenshot: demo1, demo2

REQUIREMENT

hashtrie 1.0
unicodeblock 1.1

SYNOPSIS

package require Tk
package require hashtrie 1.0
package require  unicodeblock 1.1
package require edit  ? 1.0 ? 
edit pathName  ? options ? 
edit::addHighlightWord pathName word class
edit::deleteHighlightWord pathName word
edit::generateHighlightRule sourcefile rulefile
edit::addHighlightRgx pathName pattern tagname
edit::deleteHighlightRgx pathName pattern
edit::defineBrackets pathName brackets
edit::defineTextTag filename
edit::applyTextTags pathName tags
edit::linemapPopup X Y menu
edit::getAllMarkedIndex pathName startIndex endIndex
edit::getMarkedLine pathName index direction
pathName highlight startIndex endIndex
pathName copy
pathName cut
pathName paste
pathName append
pathName configure option value  ? ... ?
pathName refresh

read more…

2009/05/07

Tcl拡張 – hashtrie

by ctrans

一括置換やLongest Common Prefix Searchなどを行うためのtrie風データ構造です。
今のところ、渡されるtrieの中身などはチェックしていません。そのうち直します。
拡張名:hashtrie
ダウンロード:hashtrie.zip
使い方は下記参照:

% package require hashtrie
1.0
% set trie [hashtrie::new]
{} {} 0 {}
% set trie [hashtrie::add $trie test テスト]
{t-0 1 e-1 2 s-2 3 t-3 4} {4 テスト} 4 {4 test}
% set trie [hashtrie::add $trie check チェック]
{t-0 1 e-1 2 s-2 3 t-3 4 c-0 5 h-5 6 e-6 7 c-7 8 k-8 9} {4 テスト 9 チェック} 9 {4 test 9 check}
% set d [dict create 今日 きょう 明日 あした 明後日 あさって]
今日 きょう 明日 あした 明後日 あさって
% set trie [hashtrie::import $trie $d]
{t-0 1 e-1 2 s-2 3 t-3 4 c-0 5 h-5 6 e-6 7 c-7 8 k-8 9 今-0 10 日-10 11 明-0 12 日-12 13 後-12 14 日-14 15} {4 テスト 9 チェック 11 きょう 13 あした 15 あさって} 15 {4 test 9 check 11 今日 13 明日 15 明後日}
% hashtrie::exists $trie 今日
1
% hashtrie::replace $trie "今日と明日はtestで忙しい。"
きょうとあしたはテストで忙しい。
% hashtrie::remove trie check
1
% puts $trie
{t-0 1 e-1 2 s-2 3 t-3 4 c-0 5 h-5 6 e-6 7 c-7 8 k-8 9 今-0 10 日-10 11 明-0 12 日-12 13 後-12 14 日-14 15} {4 テスト 11 きょう 13 あした 15 あさって} 15 {4 test 11 今日 13 明日 15 明後日}

read more…

2009/03/11

Tcl拡張 – unicodeblock

by ctrans

与えられた文字のUnicode Block名を返すTcl用の拡張です。

拡張名:unicodeblock
ダウンロード:unicodeblock.zip
使い方:

set blockname [unicodeblock::getblock "字"]
2008/03/24

Full Screen Editor – Wu

by ctrans

wu

Wu はフルスクリーンエディタです。WriteroomDark Roomのように集中して文章を書くための環境を提供します。起動すると黒い画面にカーソルだけが浮かび、文章を書く以外のことができなくなります。
Wu is a full screen editor that offers a distraction-free writing environment such as Writeroom or Dark Room. Only black screen and a cursor are shown when starting Wu. All you can do is to write text.

wuDownLoad: wu.zip (1.59MB)

注意:フルスクリーンエディタですので、「閉じる」ボタンなども表示されません。Wu を終了する際は、Ctrl+Qを押します。フルスクリーン表示をやめる時は「Escape」キーを押して下さい。

read more…

2008/02/26

翻訳エディタ Xin

by ctrans

Xinは、一括置換を利用して効率よく翻訳作業を行うためのテキストエディタです。

logo xin.zip

ダウンロードとインストールの詳細はこちらをご覧下さい。
詳しい使い方については、こちらのサポートブログをご覧下さい。
質問や要望はこちらの掲示板までお寄せください。
動作画面はこちらのScreencastをどうぞ。

read more…

2006/06/20

urlencode

by ctrans

Tcl版のurlencode

#urlencode
#文字コードはUTF-8
proc urlencode {text} {
    set url ""
    foreach byte [split [encoding convertto utf-8 $text] ""] {
        scan $byte %c i
        if {[string match {[%<>"]} $byte] || $i <= 32 || $i > 127} {
            append url [format %%%02X $i]
        } else {
            append url $byte
        }
    }
    return $url
}

関連:Tcl – http manual page
関連:tcllib:ncgi